簡介
表 Docker相關術語
| 術語 | 解釋 |
|---|---|
| Docker | Docker是開發人員和系統管理員使用容器開發、部署和運行應用程序的平臺。 |
| 鏡像 | Docker鏡像是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的配置參數(如匿名卷、環境變量、用戶等)。 鏡像不包含任何動態數據,其內容在構建之后也不會被改變。 |
| 容器 | 鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。 容器可以被創建、啟動、停止、刪除、暫停等。 |
該指導以“CentOS 7.5 64 3.10.0-862.9.1.el7.x86_64”操作系統為例,Docker要求64位的系統且內核版本至少為3.10。
前提條件
彈性云主機需要綁定彈性公網IP。
彈性云主機所在安全組添加了如下表所示的安全組規則。
表 安全組規則
| 方向 | 類型 | 協議 | 端口/范圍 | 遠端 |
|---|---|---|---|---|
| 入方向 | IPv4 | TCP | 80 | 0.0.0.0/0 |
部署Docker
1.登錄彈性云主機。
2.添加yum源。
yum install epel-release -y
yum clean all
3.安裝yum-util。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4.設置docker yum源。
sudo yum-config-manager --add-repo //download.docker.com/linux/centos/docker-ce.repo
5.安裝并運行Docker。
sudo yum install docker-ce
systemctl enable docker
systemctl start docker
6.檢查安裝結果。
docker --version
回顯如下類似信息,表示Docker安裝成功。
Client: Docker Engine - Community
Version: 19.03.13
Docker基本用法
1.Docker進程管理。
- 運行Docker
systemctl start docker
- 停止Docker
systemctl stop docker
- 重啟Docker
systemctl restart docker
2.鏡像管理。
a.拉取鏡像。此處以Apache和CentOS官方鏡像為例。
docker pull httpd
docker pull centos
b.查看已有鏡像
docker images

c.強制刪除鏡像
docker rmi centos
3.容器管理。
a.創建一個容器并運行。
docker run -it -d -p 80:80 --name datahttpd -v /data/:/var/www/httpd/ httpd
參數說明如下:
-
-i:以交互模式運行容器,通常與-t同時使用。
-
-t:為容器重新分配一個偽輸入終端,通常與-i同時使用。
-
-d:后臺運行容器,并返回容器ID。
-
-p:端口映射,格式為“宿主機端口:容器端口”。
-
--name:為容器指定一個名稱。
-
-v:把宿主機上的一個目錄掛載到鏡像里,格式為“宿主機目錄:鏡像內掛載的路徑”,必須為絕對路徑。
說明:
上述參數說明中的宿主機表示所創建的彈性云主機實例。
示例命令表示:使用鏡像httpd,以交互模式啟動一個容器,將容器的80端口映射到宿主機的80端口,宿主機的目錄/data映射到容器的/var/www/httpd目錄,并返回容器ID。

b.查看容器啟動情況。
docker ps -a

c.在瀏覽器輸入彈性云主機所綁定的彈性公網IP,訪問測試容器運行情況。出現以下內容表示運行成功。

鏡像制作
通過Dockerfile定制一個簡單的Nginx鏡像。
1.創建一個名為Dockerfile的文件。
mkdir mynginx
cd mynginx
touch Dockerfile
2.編輯Dockerfile。
vim Dockerfile
增加文件內容如下:
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
Dockerfile指令介紹如下。以下僅介紹簡單指令,如需了解更多,請參見官方網站//hub.docker.com/。
- FROM語句:表示使用nginx鏡像作為基礎鏡像,一個Dockerfile中FROM是必備的指令,并且必須是第一條指令。
- RUN語句:格式為RUN <命令>,表示執行echo命令,在顯示器中顯示一段“Hello, Docker!”的文字。
3.構建鏡像。
docker build -t nginx:v3 .
- -t nginx:v3:指定鏡像的名稱和版本。
- .:指定上下文路徑,鏡像構建命令將該路徑下所有的內容打包給Docker引擎幫助構建鏡像。
4.查看部署的nginx鏡像,版本為v3。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v3 09422e465d96 10 seconds ago 109 MB