容器看著像機器,實際是程式,是一個執行時程式。
要操作一個 Docker 容器,只需要執行 docker container 命令。 可以通過 help 檢視
run 執行容器
基礎使用:
docker container run nginx
Docker 會到本地區查詢有沒有叫做 nginx 的映象(映象這篇暫不涉及)。如果沒有,會在 Docker Hub 官方倉庫當中下載。
Docker 每條命令裡都有可選引數。以下是 run 經常使用的一些可選引數:
-p / --publish
開放埠。比如開放容器的 80 埠和 22 埠,分別對映到宿主機的 8000 和 5000 埠。nginx 必須要開放埠才可以使用。
docker container -p 8000:80 -p 5000:22 nginx
-d / --detach
後臺執行,列印容器 ID。
沒有後臺執行時,會顯示 nginx 的日誌:
後臺執行以後,列印容器 ID 後可以接著做其他的事:
--name
給容器取一個名字,更容易記得住。 預設容器名稱是隨機生成的。
-e / --env
給容器新增環境變數。
-i, --interactive
開啟互動式模式。
-t / --tty
開啟 tty。
-i 和 -t 經常組合在一起使用,可以在容器中輸入 shell 命令。 比如通過 Docker 安裝一個 python 環境,然後在命令列執行 python:
docker container run -it python:3.7-alpine python
執行以後,可以直接獲取 python 終端進行除錯:
使用互動式進入已經在執行的容器:
docker container exec -it container_id
--rm
退出容器時自動刪除容器,通常用在除錯過程中。
-v / --volume
新增 volume 資料卷(資料卷是宿主機和容器之間的資料通道,這裡暫不討論。)
logs 日誌檢視
檢視某個容器執行的日誌。
docker container logs container_id
stop 命令
停止容器執行
docker container stop container_id(name)
rm 命令
刪除容器
docker container rm container_id(name)
ls 檢視容器
基礎使用:
docker container ls
可以選擇的引數:
-a / --all
展示所有的容器,包含執行的和沒有執行的。
-q / --quiet
只顯示 IDs。
-f / --filter
篩選容器。
列舉所有退出的容器,並顯示 ID:
docker container ls -aq -f "status=exited"
刪除所有退出的容器:
docker container rm $(docker container ls -aq -f "status=exited") --force