之前的文章介紹過如何使如何編寫Dockerfile及如何使用docker-compose.yml來自動化生成和部署容器
今天主要來介紹一下docker中常用的指令,如下:
1. docker create/run
create是生成一個容器但是不運作,而run的話是生成之後同時運作它
docker create/run [OPTIONS] IMAGE [COMMAND] [ARG...]
這裡OPTIONS有很多選擇,如下:
- -a stdin: 指定标準輸入輸出内容類型,可選 STDIN/STDOUT/STDERR 三項;
- -d: 背景運作容器,并傳回容器ID;
- -i: 以互動模式運作容器,通常與 -t 同時使用;
- -P: 随機端口映射,容器内部端口随機映射到主機的端口
- -p: 指定端口映射,格式為:主機(宿主)端口:容器端口
- -t: 為容器重新配置設定一個僞輸入終端,通常與 -i 同時使用;
- --name="nginx-lb": 為容器指定一個名稱;
- --dns 8.8.8.8: 指定容器使用的DNS伺服器,預設和宿主一緻;
- --dns-search example.com: 指定容器DNS搜尋域名,預設和宿主一緻;
- -h "mars": 指定容器的hostname;
- -e username="ritchie": 設定環境變量;
- --env-file=[]: 從指定檔案讀入環境變量;
- --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運作;
- -m :設定容器使用記憶體最大值;
- --net="bridge": 指定容器的網絡連接配接類型,支援 bridge/host/none/container: 四種類型;
- --link=[]: 添加連結到另一個容器;
- --expose=[]: 開放一個端口或一組端口;
- --volume , -v: 綁定一個卷
可以發現,這裡的很多常見的參數OPTIONS和之前編寫docker-compose時所定義的容器的屬性類似,隻是這裡在一句指令裡指出。
2. docker start/stop/restart/kill
顧名思義就是容器啟動、暫停和重新開機 、殺死
docker start/stop/restart/kill CONTAINER
注意:這裡的CONTAINER可以是容器名也可以是容器的ID。另外docker stop和docker kill都是容器中止,但是有所差別:docker stop 是“優雅退出”,會先發送SIGTERM信号,在一段時間之後(10s)再發送SIGKILL信号。Docker内部的應用程式可以接收SIGTERM信号,然後做一些“退出前工作”,比如儲存狀态、處理目前請求等。而docker kill,發送SIGKILL信号,應用程式直接退出。
3. docker rm
移除或删除容器
docker rm [OPTIONS] CONTAINER
這裡OPTIONS說明:
- -f :通過 SIGKILL 信号強制删除一個運作中的容器。
- -l :移除容器間的網絡連接配接,而非容器本身。
- -v :删除與容器關聯的卷。
有時候可能需要在移除容器時删除所關聯的卷,需要用到 -v 這個标示。
4. docker exec
這個指令是表示進入到容器内部去執行指令
docker exec [OPTIONS] CONTAINER
這裡OPTIONS說明:
- -d :分離模式: 在背景運作
- -i :即使沒有附加也保持STDIN 打開
- -t :配置設定一個僞終端
通常我們會使用帶上 -it 即,docker exec -it + containe name/id
5. docker ps
檢視容器,包括以下内容:
CONTAINER ID: 容器 ID。IMAGE: 使用的鏡像。COMMAND: 啟動容器時運作的指令。CREATED: 容器的建立時間。STATUS: 容器狀态。其中容器狀态狀态有7種:
- created(已建立)
- restarting(重新開機中)
- running(運作中)
- removing(遷移中)
- paused(暫停)
- exited(停止)
- dead(死亡)
docker ps [OPTIONS]
注意: docker ps 會列出所有運作中的容器,如果加一個 -a 顯示所有的容器,包括未運作的。
6. docker inspect
檢視容器的中繼資料
docker inspect [OPTIONS] NAME|ID
我們一般使用這個指令會去檢視,啟動的容器的IP位址。即:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' CONTAINER
7. docker logs
檢視容器日志
docker logs [OPTIONS] CONTAINER
這裡OPTIONS說明:
- -f : 跟蹤日志輸出
- --since :顯示某個開始時間的所有日志
- -t : 顯示時間戳
- --tail :僅列出最新N條容器日志
以上就是一些常見和常用的docker指令,如果之後有更多常用的還會繼續補充。如果這篇總結對你有幫助,不妨給我點個贊,謝謝!
參考資料:
1. https://www.runoob.com/docker/docker-command-manual.html
2. https://blog.csdn.net/weixin_34414196/article/details/86428138