Docker 入門:容器
容器看著像機器,實際是進程,是一個運行時程式。
要操作一個 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