1. 程式人生 > 其它 >Docker容器常用命令

Docker容器常用命令

新建並啟動容器

docker run -it --rm -p 8080:8080 tomcat:9.0.20-jre8-alpine
  • -d, --detach=false: 後臺執行容器,並返回容器ID
  • -i, --interactive=false: 以互動模式執行容器,通常與 -t 同時使用
  • -P, --publish-all=false: 隨機埠對映,容器內部埠隨機對映到主機的埠
  • -p, --publish=[]: 指定埠對映,格式為:主機(宿主)埠:容器埠
  • -t, --tty=false: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用
  • --name="nginx-lb": 為容器指定一個名稱
  • -h , --hostname="laosiji": 指定容器的hostname
  • -e , --env=[]: 設定環境變數,容器中可以使用該環境變數
  • --net="bridge": 指定容器的網路連線型別,支援 bridge/host/none/container: 四種類型
  • --link=[]: 新增連結到另一個容器;不推薦各位小夥伴使用該引數
  • -v, --volume : 繫結一個卷
  • --privileged=false: 指定容器是否為特權容器,特權容器擁有所有的capabilities
  • --restart=no:指定容器停止後的重啟策略
    • no:容器退出時不重啟
    • on-failure:容器故障退出(返回值非零)時重啟
    • always:容器退出時總是重啟
  • --rm=false: 指定容器停止後自動刪除容器,不能以docker run -d啟動的容器

容器日誌

docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine
docker logs -f tomcat9

常用引數

  • -f : 跟蹤日誌輸出
  • --tail :僅列出最新N條容器日誌

刪除容器

docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine
需要先停止執行中的容器再刪除,否則無法刪除容器
docker stop tomcat9
按照容器名稱刪除
docker rm tomcat9
按照容器ID刪除
docker rm 8dd95a95e687

常用引數

  • -f :通過 SIGKILL 訊號強制刪除一個執行中的容器。

  • -l :移除容器間的網路連線,而非容器本身。

  • -v :刪除與容器關聯的卷。

刪除所有容器

停止所有執行容器
docker stop $(docker ps -aq)
刪除所有的容器
docker rm $(docker ps -aq)
docker rm $(docker stop $(docker ps -q))
刪除所有的映象
docker rmi $(docker images -q)

列出容器

docker ps
docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine
檢視執行中的容器
docker ps tomcat9
檢視所有容器
docker ps -a tomcat9

狀態有7種:

  • created(已建立)
  • restarting(重啟中)
  • running(執行中)
  • removing(遷移中)
  • paused(暫停)
  • exited(停止)
  • dead(死亡)

常用引數

  • -a :顯示所有的容器,包括未執行的。
  • -q :只顯示容器編號。

建立容器

docker create -it --name tomcat9 -p 8080:8080 9.0.20-jre8-alpine

啟動、重啟、終止容器

docker start tomcat9
docker stop tomcat9
docker restart tomcat9

進入容器

有bash命令的linux系統:例如centos
docker run -it --name tomcat9.1 -p 8080:8080 tomcat:9.0.20-jre8-slim
docker exec -it tomcat9.1 /bin/bash

沒有bash命令的linux系統:例如alpine系統
docker run -it --name tomcat9.2 -p 8081:8080 tomcat:9.0.20-jre8-alpine
docker exec -it tomcat9.2 sh

常用引數

  • -i :即使沒有附加也保持STDIN 開啟
  • -t :分配一個偽終端

檢視容器

docker run -it --name tomcat9 -p 8081:8080 tomcat:9.0.20-jre8-alpine
docker inspect tomcat9

常用引數

  • -f :指定返回值的模板檔案。
  • -s :顯示總的檔案大小。
  • --type :為指定型別返回JSON。

更新容器

可以動態地更新容器配置。可以更新一個或多個容器配置。多個容器名稱或ID之間使用空格分隔。但update命令不是很成熟,有很多配置項不能動態更新。推薦還是rm容器後,再重新run一個新的映象

docker run -it --name tomcat9 -p 8081:8080 tomcat:9.0.20-jre8-alpine
更新容器restart策略
docker update --restart always tomcat9

殺掉容器

docker run -it --name tomcat9 -p 8081:8080 tomcat:9.0.20-jre8-alpine
docker kill tomcat9
docker ps
docker ps -a
docker start tomcat9

常用引數

  • -s :向容器傳送一個訊號
每個人都有潛在的能量,只是很容易被習慣所掩蓋,被時間所迷離,被惰性所消磨~