天天看點

Docker常見問題

如何批量清理臨時鏡像檔案?

答:可以使用

docker image prune

指令。

本地的鏡像檔案都存放在哪裡?

答:與 Docker 相關的本地資源預設存放在

/var/lib/docker/

目錄下,以

overlay2

檔案系統為例,其中

containers

目錄存放容器資訊,

image

目錄存放鏡像資訊,

overlay2

目錄下存放具體的鏡像層檔案。

容器退出後,通過 docker container ls 指令檢視不到,資料會丢失麼?

答:容器退出後會處于終止(exited)狀态,此時可以通過

docker container ls -a

檢視。其中的資料也不會丢失,還可以通過

docker start

指令來啟動它。隻有删除掉容器才會清除所有資料。

如何停止所有正在運作的容器?

docker stop $(docker container ls -q)

如何批量清理已經停止的容器?

docker container prune

如何擷取某個容器的 PID 資訊?

docker inspect --format '{{ .State.Pid }}' <CONTAINER ID or NAME>
           

如何擷取某個容器的 IP 位址?

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID or NAME>
           

如何給容器指定一個固定 IP 位址,而不是每次重新開機容器 IP 位址都會變?

docker network create -d bridge --subnet 172.25.0.0/16 my-net
docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox
           

如何臨時退出一個正在互動的容器的終端,而不終止它?

使用

docker port

指令映射容器的端口時,系統報錯“Error: No public port ‘80’ published for xxx”?

  • 建立鏡像時

    Dockerfile

    要通過

    EXPOSE

    指定正确的開放端口;
  • 容器啟動時指定

    PublishAllPort = true

繼續閱讀