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