天天看点

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