常用 Docker 指令:docker container
commit
: 創建容器當前狀態的映像
說明 | 從運行中或停止的容器創建新的映像,保存容器的當前狀態 |
---|---|
使用方式 | docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] |
別名 | docker commit |
docker commit my-container my-new-image
-m, --message
:為這次提交添加註釋。-a, --author
:指定作者名稱,記錄在映像中。
詳細 Options 說明可參閱 @docker container commit
cp
: 在容器與本地之間複製文件
說明 | 將文件從容器複製到主機,或者將本地文件複製到容器中 |
---|---|
使用方式 | docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH |
別名 | docker cp |
docker cp my-container:/path/to/file /local/path
my-container:/path/to/file
:指定容器內的文件路徑。/local/path
:指定要將文件複製到的主機路徑。
也可以反向操作,從主機複製文件到容器中:
docker cp /local/path my-container:/path/to/destination
詳細 Options 說明可參閱 @docker container cp
exec
: 在運行中的容器中執行命令
說明 | 在運行中的容器內執行命令,例如打開一個交互式 shell |
---|---|
使用方式 | docker container exec [OPTIONS] CONTAINER COMMAND [ARG...] |
別名 | docker exec |
docker container exec -it my-container /bin/bash
-i, --interactive
:保持標準輸入開放,以便與容器交互。-t, --tty
:分配一個偽終端,使得你可以在容器內操作命令行。
詳細 Options 說明可參閱 @docker container exec
inspect
: 查看容器詳細信息
說明 | 查看容器的詳細配置信息,以 JSON 格式返回 |
---|---|
使用方式 | docker container inspect [OPTIONS] CONTAINER [CONTAINER...] |
別名 | docker inspect |
docker inspect my-container
-f, --format
:使用 Go 模板語法格式化輸出,只顯示特定信息,例如容器 IP 地址:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' my-container
詳細 Options 說明可參閱 @docker container inspect
kill
: 強制停止容器
說明 | 強制停止正在運行的容器,向容器的主進程發送 SIGKILL 信號,強制結束它 |
---|---|
使用方式 | docker container kill [OPTIONS] CONTAINER [CONTAINER...] |
別名 | docker kill |
docker kill my-container
s, --signal
:指定發送給容器的信號(默認為SIGKILL
)。例如,發送SIGTERM
信號:
docker kill -s SIGTERM my-container
詳細 Options 說明可參閱 @docker container kill
logs
: 查看容器日誌
說明 | 查看容器的日誌輸出,了解應用在容器內的運行情況 |
---|---|
使用方式 | docker container logs [OPTIONS] CONTAINER |
別名 | docker logs |
docker logs my-container
-f, --follow
:實時查看容器的日誌輸出。--since
:顯示自特定時間以來的日誌,例如-since "2023-01-01T00:00:00"
。-n, --tail
:顯示最近的N
行日誌,例如n 100
只顯示最近的 100 行。
詳細 Options 說明可參閱 @docker container logs
ls
: 列出容器
說明 | 列出所有運行中的容器 |
---|---|
使用方式 | docker container ls [OPTIONS] |
別名 | docker ps |
docker ps
-a, --all
:列出所有容器,包括停止的容器。-q, --quiet
:只顯示容器 ID,適合於腳本中使用。-f, --filter
:根據條件過濾容器,例如-filter status=exited
只顯示已停止的容器。
詳細 Options 說明可參閱 @docker container ls
rename
: 重命名容器
說明 | 重命名已經創建的容器 |
---|---|
使用方式 | docker container rename CONTAINER NEW_NAME |
別名 | docker rename |
docker rename old-name new-name
old-name
:容器的當前名稱。new-name
:要改成的新名稱。
這在需要更改容器名稱以便於識別時非常有用。
詳細 Options 說明可參閱 @docker container rename
restart
: 重啟容器
說明 | 停止並重新啟動容器 |
---|---|
使用方式 | docker container restart [OPTIONS] CONTAINER [CONTAINER...] |
別名 | docker restart |
docker restart my-container
-t, --time
:在強制停止容器之前等待的時間(秒),默認為 10 秒。可以通過t 5
來縮短等待時間。
docker restart -t 5 my-container
這樣做可以在重新啟動之前只等待 5 秒的時間。
詳細 Options 說明可參閱 @docker container restart
rm
: 刪除容器
說明 | 刪除一個或多個容器(容器必須先停止) |
---|---|
使用方式 | docker container rm [OPTIONS] CONTAINER [CONTAINER...] |
別名 | docker rm |
docker rm my-container
-f, --force
:強制刪除正在運行的容器,先停止再刪除。-v, --volumes
:刪除與容器相關的卷,確保數據不會遺留在本地。
詳細 Options 說明可參閱 @docker container rm
run
: 創建並運行容器
說明 | 創建並啟動容器 |
---|---|
使用方式 | docker container run [OPTIONS] IMAGE [COMMAND] [ARG...] |
別名 | docker run |
docker run -d --name my-container -p 8080:80 nginx
-d
:以「背景模式」運行容器(detached)。--name
:為容器指定一個名稱(my-container)。-p
:將主機的8080
埠映射到容器的80
埠。
以下列出一些常用的 Options:
-
--cpus
:限制容器可使用的 CPU 量,例如-cpus="1.5"
,表示容器可以使用 1.5 個 CPU。 -
-e, --env
:設置環境變數,例如-e ENV=production
,在容器內可通過ENV
使用。 -
--env-file
:從指定的文件中載入環境變數,該文件中的每一行應為KEY=VALUE
格式,方便集中管理大量的環境變數,例如--env-file .env
-
-it
:使容器進入交互模式,分配一個偽終端。常與/bin/bash
一起用於調試。 -
-m ,--memory
:設置容器可用的最大記憶體量,例如--memory="512m"
限制為 512MB。 -
-mount
:用於掛載檔案系統。與-v
類似,但提供了更多的功能,例如掛載類型和掛載選項的詳細控制。使用範例如下:--mount type=bind,source=/host/path,target=/container/path
- 常見的選項有:
type
:掛載的類型,可以是bind
、volume
或tmpfs
。bind
:將主機上的一個具體檔案或目錄掛載到容器。volume
:使用 Docker 的卷管理系統來掛載。tmpfs
:在容器的記憶體中創建一個臨時檔案系統,不會持久化到磁碟。
source
:主機上的路徑,對於bind
類型,是需要掛載的主機目錄或文件。對於volume
,是卷的名稱。target
:容器內掛載的目標路徑,類似於v
的容器路徑部分。readonly
(可選):將掛載設置為只讀模式,防止容器修改內容。
-v
相比,--mount
更加清晰和嚴格,適合需要精確控制掛載行為的場景。
- 常見的選項有:
-
-network
:指定容器的網絡模式,例如-network bridge
。可用的模式包括:bridge
(預設):使用 Docker 的虛擬網橋網絡。host
:容器與主機共用網絡。none
:容器無法進行任何網絡通信。
-
--rm
:在容器停止後自動刪除容器,適用於測試用途的臨時容器。 -
-v, --volume
:掛載到容器內,例如-v /host/path:/container/path
,用於共享數據。 -
-w, --workdir
:設置容器內的工作目錄,這有助於在指定的目錄中執行命令。
詳細 Options 說明可參閱 @docker container run
start
: 啟動已存在的容器
說明 | 啟動已經創建但目前停止的容器 |
---|---|
使用方式 | docker container start [OPTIONS] CONTAINER [CONTAINER...] |
別名 | docker start |
docker start my-container
-i, --interactive
:與容器進行互動,保持標準輸 入開放。
詳細 Options 說明可參閱 @docker container start
stats
: 實時監控容器資源使用情況
說明 | 查看容器的 CPU、記憶體等資源使用情況 |
---|---|
使用方式 | docker container stats [OPTIONS] [CONTAINER...] |
別名 | docker stats |
docker stats my-container
--no-stream
:只 顯示一次統計結果,而不持續更新。-a, --all
:查看所有容器的資源使用情況,而不僅僅是正在運行的容器。
詳細 Options 說明可參閱 @docker container stats
stop
: 停止正在運行的容器
說明 | 停止正在運行的容器 |
---|---|
使用方式 | docker container stop [OPTIONS] CONTAINER [CONTAINER...] |
別名 | docker stop |
docker stop my-container
-t, --time
:指定在強制停止前等待容器的時間(秒),例如t 10
,默認為 10 秒。
詳細 Options 說明可參閱 @docker container stop