Docker 入門:容器

和牛發表於2020-05-26

 

容器看著像機器,實際是程式,是一個執行時程式。

要操作一個 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

相關文章