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