使用 Docker 容器
上一節(jié)中,我們學(xué)會(huì)了如何從Docker Hub官方倉(cāng)庫(kù)中獲取鏡像。同時(shí),我們已經(jīng)知道,Docker鏡像是靜態(tài)的,要使用它,就是以鏡像為模板,創(chuàng)建并運(yùn)行Docker容器應(yīng)用。
本節(jié)我們將詳細(xì)介紹Docker容器的使用,在了解容器的各項(xiàng)操作之前,我們先來(lái)回顧一下,Docker 容器的生命周期里分為五種狀態(tài),其分別代表著:
- Created:容器已經(jīng)被創(chuàng)建,容器所需的相關(guān)資源已經(jīng)準(zhǔn)備就緒,但容器中的程序還未處于運(yùn)行狀態(tài);
- Running:容器正在運(yùn)行,也就是容器中的應(yīng)用正在運(yùn)行;
- Paused:容器已暫停,表示容器中的所有程序都處于暫停 狀態(tài);
- Stopped:容器處于停止?fàn)顟B(tài),占用的資源和沙盒環(huán)境都依然存在,只是容器中的應(yīng)用程序均已停止;
- Deleted:容器已刪除,相關(guān)占用的資源及存儲(chǔ)在 Docker 中的管理信息也都已釋放和移除。
容器的操作使容器在不同狀態(tài)間轉(zhuǎn)換。下面我們圍繞著容器生命周期,介紹Docker對(duì)容器的操作。
1. 容器操作
1.1 創(chuàng)建容器
當(dāng)我們選擇好鏡像以后,就可以通過(guò) docker create
這個(gè)命令來(lái)創(chuàng)建容器了。
# 在創(chuàng)建容器時(shí),我們可以通過(guò) `--name` 這個(gè)選項(xiàng)來(lái)配置容器名。
docker create --name busybox busybox
通過(guò) docker create
創(chuàng)建的容器,是處于 Created 狀態(tài)的,其內(nèi)部的應(yīng)用程序還沒(méi)有啟動(dòng)。
1.2 啟動(dòng)容器
通過(guò) docker start
命令來(lái)啟動(dòng)它。
docker start busybox
當(dāng)容器啟動(dòng)后,其中的應(yīng)用就會(huì)運(yùn)行起來(lái),容器的狀態(tài)就會(huì)是 Running。
docker run
這個(gè)命令將 docker create
和 docker start
合并,在創(chuàng)建完成之后會(huì)直接啟動(dòng)起來(lái)。
docker run --name busybox -d -i busybox
-d
參數(shù), Docker 在啟動(dòng)后將程序與控制臺(tái)分離,使其進(jìn)入后臺(tái)運(yùn)行。
-i
( --interactive
) 表示保持終端輸入流
1.3 管理容器
容器創(chuàng)建和啟動(dòng)后,除了關(guān)注應(yīng)用程序是否功能正常外,我們也會(huì)關(guān)注容器的狀態(tài)等內(nèi)容。
通過(guò) docker ps
這個(gè)命令,我們可以羅列出 Docker 中的容器。
docker ps
默認(rèn)情況下,docker ps
列出的容器是處于運(yùn)行中的容器,如果要列出所有狀態(tài)的容器,需要增加 -a
選項(xiàng)。
docker ps -a
1.4 停止和刪除容器
使用 docker stop
命令停止正在運(yùn)行的容器。
docker stop busybox
容器停止后,通過(guò) docker start
命令將這個(gè)容器再次啟動(dòng)。
當(dāng)我們完全刪除容器時(shí),可以通過(guò) docker rm
命令將容器進(jìn)行刪除。
docker rm busybox
正在運(yùn)行中的容器默認(rèn)情況下是不能被刪除的,我們可以通過(guò)增加 -f
選項(xiàng) 強(qiáng)制停止并刪除容器。
Tips : 當(dāng)我們短時(shí)間內(nèi)不需要使用容器時(shí),就應(yīng)該刪除它。
1.5 進(jìn)入容器
Docker 提供了一個(gè)命令 docker exec
,它在正在運(yùn)行的容器中運(yùn)行指定命令,輸入以下命令連接到容器內(nèi)的終端:
docker exec -it busybox sh
docker exec
進(jìn)入容器的時(shí)候,兩個(gè)選項(xiàng)不可或缺,即 -i
和 -t
( 合并為 -it
)。
-t
(--tty
) 表示啟用一個(gè)偽終端,沒(méi)有它無(wú)法看到 bash 內(nèi)部的執(zhí)行結(jié)果。
1.6 查看容器日志
Docker 提供 docker logs
命令,導(dǎo)出容器的日志信息:
docker logs busybox
1.7 查看容器的配置信息
Docker 提供了 docker inspect
命令,用來(lái)提供詳細(xì)的容器信息(配置信息等) :
docker inspect busybox
2. 小結(jié)
這個(gè)小節(jié)我們主要講解了如何創(chuàng)建、啟動(dòng)、管理和進(jìn)入容器,和如何查看容器信息。
本節(jié)的內(nèi)容雖然看似簡(jiǎn)單,但請(qǐng)大家一定要熟練掌握這幾個(gè)命令,它們是 Docker 后面學(xué)習(xí)過(guò)程中最常用的指令。