今天這篇文章我們主要來了解一下容器的一些基本用法。
01 Docker的安裝
Docker目前主要有兩個版本,社區版(Community Edition(CE))與企業版(Enterprise Edition(EE)),本章節我們主要講解Ubuntu系統安裝Docker的步驟,如果其它系統安裝Docker請參照官方網站。
首先更新 apt 軟件包數據庫,以確保軟件包列表是最新的。具體命令如下:
1. apt-get update
接著安裝一些軟件包,以允許 apt通過 HTTPS 使用存儲庫:
1. apt-get -y install apt-transport-https ca-certificates curl software-properties-common
我們添加阿里云提供的鏡像源以便于加快國內安裝速度,先添加GPG 密鑰:
1. curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
再添加相應源的信息:
1. add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
接著我們再次根據新的鏡像源更新索引:
1. apt-get update
最后我們執行安裝命令
1. apt-get install docker-ce
完成安裝后我們查看一下我們安裝的docker版本信息,命令如下:
02 Docker 服務相關操作
1. 啟動docker服務
2. systemctl start docker
3.
4. 守護進程重啟
5. systemctl daemon-reload
6.
7. 重啟docker服務
8. systemctl restart docker
9. service docker restart
10.
11. 關閉docker服務
12. service docker stop
13. systemctl stop docker
03 Docker鏡像管理
1)阿里docker鏡像配置
鏡像存儲中的核心概念倉庫(Repository)是鏡像存儲的位置。Docker 注冊服務器(Registry)是倉庫存儲的位置。每個倉庫包含不同的鏡像。Docker Hub 是 Docker 官方提供的公共倉庫,提供大量的常用鏡像,但由于國內網絡問題,拉取 Docker Hub 的速度非常慢,好在阿里云提供了鏡像加速器。下面我們來看看怎么配置阿里鏡像加速器。
首先我們需要編輯 /etc/docker/daemon.json 文件,如下圖所示:
然后在修改之后,需要重啟 Docker 服務,讓修改生效。使用如下命令
1. service docker restart
2)拉取鏡像
從鏡像倉庫拉取鏡像的命令如下:
1. # 新版本的命令格式
2. docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
3. 4. # 舊的命令格式如下: 5. docker pull [OPTIONS] NAME[:TAG|@DIGEST]
比較常用的配置參數為 -a,代表下載倉庫中的所有鏡像,即下載整個存儲庫。
我們拉取一個ubuntu 16.04版本的鏡像,具體操作如下:
3)搜索鏡像
如果我們不知道需要下載的鏡像有哪些版本可以通過鏡像搜索命令來查詢,具體命令如下:
1. docker search 鏡像名稱
我們查看一下ubuntu鏡像有哪些版本具體操作如下:
4)查看鏡像列表
鏡像的查看可以使用如下命令:
1. # 新版本命令
2. docker image ls
3.
4. # 舊的命令格式如下:
5. docker images
也可以查看指定的鏡像,例如。查看 ubuntu 的鏡像:
如上圖其中REPOSITORY為鏡像名稱,TAG為鏡像版本, IMAGE ID為鏡像的ID
5)查看鏡像詳細信息
查看鏡像詳細信息的命令如下所示,直接用docker inspect命令也同時可以查看容器的詳細信息:
1. # 新版本命令
2. docker image inspect ubuntu
3.
4. # 舊的命令格式如下:
5. docker inspect ubuntu
6)構建鏡像
對于我們pull的新鏡像ubuntu:16.04來說,如果我們需要對其進行更新,可以創建一個容器,在容器中進行修改,然后將修改提交到一個新的鏡像中。提交修改使用如下命令:
1. # 新版本命令
2. docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
3. 4. # 舊的命令格式如下: 5. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
我們將在將我們下載的新鏡像ubuntu:16.04安裝一個net-tools工具(默認不帶)然后進行commit創建一個新的鏡像,具體操作如下:
7)BUILD鏡像
Docker 可以從一個 Dockerfile 文件中自動讀取指令構建一個新的鏡像。 Dockerfile 是一個包含用戶構建鏡像命令的文本文件。在創建該文件后,我們可以使用如下命令構建鏡像:
1. docker image build [OPTIONS] PATH | URL
對于一個 Dockerfile 文件內容來說,基本語法格式如下所示:
1. INSTRUCTION arguments
使用 # 號作為注釋,指令(INSTRUCTION)不區分大小寫,但是為了可讀性,一般將其大寫。而 Dockerfile 的指令一般包含下面幾個部分:
a.基礎鏡像:以哪個鏡像為基礎進行制作,使用 FROM 指令來指定基礎鏡像,一個 Dockerfile 必須以 FROM 指令啟動。
b.維護者信息:可以指定該 Dockerfile 編寫人的姓名及郵箱,使用 MAINTAINER 指令。
c.鏡像操作命令:對基礎鏡像要進行的改造命令,比如安裝新的軟件,進行哪些特殊配置等,常見的是 RUN 命令。
d.容器啟動命令:基于該鏡像的容器啟動時需要執行哪些命令,常見的是 CMD 命令或 ENTRYPOINT
例如一個最基本的 Dockerfile:
1. # 指定基礎鏡像
2. FROM new_ubuntu_16.04:new
3. 4. # 維護者信息 5. MAINTAINER chenge
6. 7. # 鏡像操作命令 8. RUN
9. apt-get -yqq update &&
10. apt-get install -yqq Apache2
11. 12. # 容器啟動命令 13. CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
如上其中 FROM 指定基礎鏡像。RUN 命令默認使用 /bin/sh,并使用 root 權限執行。CMD 命令也是默認在 /bin/sh 中執行,但是只能有一條 CMD 指令,如果有多條則只有最后一條會被執行。然后我們來通過這個dockerfile文件build鏡像,具體如下:
8)刪除鏡像
刪除docker鏡像很簡單具體命令如下:
1. # 新版本命令
2. docker image rm 鏡像名稱/ID
3.
4. # 舊的命令格式如下:
5. docker rmi 鏡像名稱/ID
我們刪除ubuntu:16.04這個鏡像具體操作如下:
以上就是我們Docker基本用法的全部內容了,如果大家喜歡不要忘了為@IT管理局點贊、關注與轉發哦!