跳至主要内容

常用 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:掛載的類型,可以是 bindvolumetmpfs
        • 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