docker安裝及常規使用
參考1: https://yq.aliyun.com/articles/110806?spm=a2c4e.11153959.blogcont29941.13.699e6d2fGhh685
參考2:http://www.runoob.com/docker/docker-tutorial.html
1、安裝
Docker CE 映象源站
使用官方安裝指令碼自動安裝
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
手動安裝幫助 Ubuntu 18.04
# step 1: 安裝必要的一些系統工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫入軟體源資訊
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $( lsb_release -cs) stable"
# Step 4: 更新並安裝 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
# 安裝指定版本的Docker-CE:
# Step 1: 查詢Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安裝指定版本的Docker-CE: (VERSION 例如上面的 17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
2、使用非root使用者
sudo groupadd docker
sudo gpasswd -a xu docker # 此處“xu”為你電腦的使用者名稱
然後登出或者重啟
3、修改Docker預設映象和容器的儲存位置
http://www.cnblogs.com/bigberg/p/8057807.html
Docker預設的映象和容器儲存位置在/var/lib/docker中
1、修改docker.service檔案
cd /etc/systemd/system/multi-user.target.wants
vim docker.service
ExecStart=/usr/bin/dockerd --graph=/home/xu/docker --storage-driver=overlay --registry-mirror=https://jxus37ad.mirror.aliyuncs.com
- –graph=/data/docker:docker新的儲存位置
- –storage-driver=overlay : 當前docker所使用的儲存驅動
2、重啟docker
systemctl daemon-reload
systemctl restart docker
# docker info
4、啟動、重啟、關閉命令
功能 | shell命令 |
---|---|
啟動 | systemctl start docker |
守護程序重啟 | sudo systemctl daemon-reload |
重啟docker服務 | systemctl restart docker |
重啟docker服務 | sudo service docker restart |
關閉docker | service docker stop |
關閉docker | systemctl stop docker |
5、docker容器使用
容器 | shell 命令 |
---|---|
列出映象列表 | docker images |
檢視正在執行的容器 | docker ps |
檢視容器內部的標準輸出 | docker logs [CONTAINER ID / NAMES] |
檢視容器內部執行的程序 | docker top [CONTAINER ID / NAMES] |
停止應用容器 | docker stop [CONTAINER ID / NAMES] |
重啟應用容器 | docker start [CONTAINER ID / NAMES] |
刪除不需要的容器 | docker rm [CONTAINER ID / NAMES] |
設定網路埠 | eg: docker run -d -p 5000:5000 training/webapp python app.py |
注意:刪除容器時,容器必須是停止狀態
6、docker映象使用
映象 | shell 命令 |
---|---|
列出本地主機上的映象 | docker images |
獲取一個新的映象 | docker pull [images_name] |
查詢映象 | docker search [images_name] |
執行映象 | docker run [images_name] |
當我們從docker映象倉庫中下載的映象不能滿足我們的需求時,我們可以通過以下兩種方式對映象進行更改。
1.從已經建立的容器中更新映象,並且提交這個映象
2.使用 Dockerfile 指令來建立一個新的映象
1.更新映象,並且提交映象 | shell命令 |
---|---|
1.1 使用映象來建立一個容器 | eg: docker run -t -i ubuntu:15.10 /bin/bash |
1.2 在執行的容器內進行更新 | apt-get update |
1.3 退出容器 | exit |
1.4 提交容器副本 | eg: docker commit -m=“has update” -a=“runoob” e218edb10161 runoob/ubuntu:v2 |
-m:提交的描述資訊 -a:指定映象作者 | |
e218edb10161:容器ID | |
runoob/ubuntu:v2:指定要建立的目標映象名 | |
1.5 使用新映象啟動容器 | eg: docker run -t -i runoob/ubuntu:v2 /bin/bash |
2.建立映象 | shell命令 |
---|---|
建立一個 Dockerfile 檔案 | cat Dockerfile |
使用命令 docker build | docker build -t runoob/centos:6.7 . |
-t :指定要建立的目標映象名 | |
. :Dockerfile 檔案所在目錄,可以指定Dockerfile 的絕對路徑 |
設定映象標籤 | shell命令 |
---|---|
為映象新增一個新的標籤 | eg: docker tag 860c279d2fec runoob/centos:dev |
docker tag 映象ID,這裡是 860c279d2fec ,使用者名稱稱、映象源名(repository name)和新的標籤名(tag)。 | |
docker | docker |
docker | docker |
docker | docker |
7、docker容器連線
通過埠連線到一個docker容器網路埠對映
網路埠對映
建立一個python應用程式,可以指定容器繫結的網路地址。
-P :是容器內部埠隨機對映到主機的高階口
docker run -d -P training/webapp python app.py
-p : 是容器內部埠繫結到指定的主機埠
docker run -d -p 5000:5000 training/webapp python app.py
指定容器繫結的網路地址
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
,這樣就可以通過訪問127.0.0.1:5001來訪問容器的5000埠。
預設都是繫結 tcp 埠,如果要繫結 UDP 埠,可以在埠後面加上 /udp
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
Docker容器連線
埠對映並不是唯一把 docker 連線到另一個容器的方法。docker有一個連線系統允許將多個容器連線在一起,共享連線資訊。docker連線會建立一個父子關係,其中父容器可以看到子容器的資訊。
容器命名:
當我們建立一個容器的時候,docker會自動對它進行命名。另外,我們也可以使用–name標識來命名容器。
docker run -d -P --name runoob training/webapp python app.py