Docker是一個(gè)容器化平臺(tái),通過(guò)操作系統(tǒng)級(jí)別的虛擬化技術(shù),實(shí)現(xiàn)軟件的打包和容器化運(yùn)行。借助Docker,開(kāi)發(fā)人員能夠?qū)?yīng)用程序以容器的形式進(jìn)行部署,但在此之前需要構(gòu)建Docker鏡像。只要熟悉相關(guān)Docker命令,開(kāi)發(fā)人員就能輕松完成所有這些步驟,從而實(shí)現(xiàn)應(yīng)用程序的容器化部署。
本文將根據(jù)使用場(chǎng)景對(duì) Docker 命令進(jìn)行分類介紹。
1 構(gòu)建 Docker 鏡像
構(gòu)建 Docker 鏡像需要使用 Dockerfile。假設(shè)有一個(gè) Dockerfile,在與 Dockerfile 相同的目錄中運(yùn)行以下命令。
docker build -t Tomcat-with-App:v1 .
2 給 Docker 鏡像打標(biāo)簽
給 Docker 鏡像打標(biāo)簽需要運(yùn)行以下命令:
docker tag <鏡像 ID 或鏡像名稱> testuser/tomcat-with-app:v1
例如:docker tag tomcat-with-app:v1 testuser/tomcat-with-app:v1
3 將鏡像推送到 Docker Hub
首先,需要登錄 Docker Hub,運(yùn)行以下命令。前提是需要有 Docker Hub 賬戶。如果您還沒(méi)有賬戶,請(qǐng)創(chuàng)建一個(gè)。
docker login
在推送到 Docker Hub 之前,需要使用 Docker Hub 用戶名給鏡像打標(biāo)簽。可以使用以下命令進(jìn)行標(biāo)簽打標(biāo)。
docker tag <鏡像 ID 或鏡像名稱> testuser/tomcat-with-app:v1
現(xiàn)在,推送鏡像:
docker push testuser/tomcat-with-app:v1
4 從 Docker Hub 拉取 Docker 鏡像
需要運(yùn)行以下命令從公共鏡像倉(cāng)庫(kù)(Docker Hub)拉取鏡像:
docker pull <鏡像名稱>
例如:docker pull tomcat
5 使用 Docker 鏡像運(yùn)行容器
運(yùn)行以下命令從給定的鏡像運(yùn)行容器:
docker run -d -p <對(duì)外訪問(wèn)的端口>:<應(yīng)用程序運(yùn)行的端口> <鏡像名稱>
-d:用于以分離模式運(yùn)行容器
-p:用于指定端口
例如:docker run -d -p 8080:8080 tomcat-with-app:v1
6 刪除鏡像
這將刪除所有未使用的鏡像。
docker image prune
docker image prune -a
6.1 使用 ID 刪除鏡像
獲取鏡像 ID:
docker images -a -q
可以使用以下命令根據(jù) ID 刪除所有鏡像:
docker rmi $(docker images -a -q)
以下命令與前一個(gè)命令相同,但是在此處使用 -f 標(biāo)志來(lái)強(qiáng)制刪除。
docker rmi -f $(docker images -a -q)
6.2 刪除特定的 Docker 鏡像
例如,首先獲取鏡像的 ID。
ubuntu@linux01:~$ docker images -a -q testuser/tomcat-with-app2:v1
輸出:
7a2f1e6fbbc3
上述命令打印了鏡像 testuser/tomcat-with-app2:v1 的 ID。
要?jiǎng)h除此鏡像,可以直接使用以下命令:
docker rmi -f $(docker images -a -q testuser/tomcat-with-app2:v1)
7 刪除容器
停止特定的容器:
docker stop <容器 ID>
刪除所有已停止的容器:
docker contAIner prune