docker 生命周期基本操作

1 管理容器的生命周期

Docker 客戶端通過 docker 命令結(jié)合一組選項(xiàng)來創(chuàng)建和管理容器,下圖簡(jiǎn)單描繪容器從創(chuàng)建到銷毀歷程


image.png

2 創(chuàng)建容器

docker run 命令可從鏡像創(chuàng)建新容器,并在新容器內(nèi)啟動(dòng)進(jìn)程。如果容器鏡像不可用,此命令也會(huì)嘗試下載該鏡像
docker run nginx

如果想讓容器在后臺(tái)運(yùn)行,釋放當(dāng)前shell,可以使用 -d 選項(xiàng)
docker run -d nginx

3 查看容器

docker ps 命令負(fù)責(zé)顯示這些屬性

# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                    PORTS               NAMES
407b444c4896        70f311871ae1           "/coredns -conf /etc…"   3 months ago        Up 3 months                                   k8s_cored
# 選項(xiàng) -a 列出所有容器,包括尚未丟棄的容器
#1. 每個(gè)容器在創(chuàng)建后獲得一個(gè)容器 ID,它是一個(gè)十六進(jìn)制數(shù)字,與鏡像 ID 相似,但不相關(guān)
#2. 用于啟動(dòng)容器的容器鏡像
#3. 容器啟動(dòng)時(shí)所執(zhí)行的命令
#4. 容器啟動(dòng)的日期和時(shí)間
#5. 容器運(yùn)行時(shí)間總計(jì)(如果仍在運(yùn)行)或者自終止起的時(shí)間
#6. 容器所開放的端口,或者端口轉(zhuǎn)發(fā)(若已配置)
#7. 容器名稱
  1. 第一列是id,隨機(jī)生成且唯一
  2. 最后一列是名稱,可以自己指定,不指定就隨機(jī)生成
    指定名字運(yùn)行:docker run --name my-httpd-container httpd
    名稱必須唯一,重名會(huì)引發(fā)錯(cuò)誤

4 在容器內(nèi)運(yùn)行命令

在創(chuàng)建容器時(shí),會(huì)根據(jù)容器鏡像所指定的內(nèi)容來執(zhí)行默認(rèn)的命令。不過,可能需要執(zhí)行其他命令來管理運(yùn)行中的容器,使用exec選項(xiàng),docker exec 命令在運(yùn)行中的容器內(nèi)啟動(dòng)額外的進(jìn)程

docker exec my-httpd-container cat /etc/hostname

5 列出與運(yùn)行中或已停止容器相關(guān)的元數(shù)據(jù)

docker inspect:此命令負(fù)責(zé)列出與運(yùn)行中或已停止容器相關(guān)的元數(shù)據(jù)。此命令生成 JSON 輸出

docker inspect my-httpd-container 輸出my-httpd-container這個(gè)容器的所有元數(shù)據(jù)

6 停止運(yùn)行中的容器

docker stop:此命令負(fù)責(zé)正常停止運(yùn)行中的容器

docker stop my-httpd-container

docker kill:此命令負(fù)責(zé)強(qiáng)制停止運(yùn)行中的容器

docker kill my-httpd-container

可以通過 -s 選項(xiàng)來指定信號(hào)

docker kill -s SIGKILL my-httpd-container

7重啟已停止的容器

docker restart 命令利用相同的容器 ID或者NAME 創(chuàng)建一個(gè)新容器,該容器重復(fù)利用已停止容器的狀態(tài)和文件系統(tǒng)

docker restart my-httpd-container

8 刪除容器

docker rm:此命令負(fù)責(zé)刪除容器,并且丟棄其狀態(tài)和文件系統(tǒng)

docker rm my-httpd-container

同時(shí)刪除所有容器

docker rm $(docker ps -aq)

docker ps 命令具有 -q 選項(xiàng),用于僅返回容器的 ID。此列表可以傳遞到 docker rm 命令
在刪除所有容器前,必須停止所有運(yùn)行中的容器

docker stop $(docker ps -q)

9 端口映射

容器網(wǎng)絡(luò)只能由容器主機(jī)訪問,外部網(wǎng)絡(luò)想訪問容器,可以借由主機(jī)網(wǎng)絡(luò),通過地址轉(zhuǎn)換實(shí)現(xiàn)
比如我現(xiàn)在想訪問容器的80端口,通過語句可以實(shí)現(xiàn) 訪問主機(jī)ip的8080端口就會(huì)被nat到容器的80端口,實(shí)現(xiàn)訪問
使用 -p 選項(xiàng)

docker run -d --name httpd -p 8080:80 httpd
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容