常见问题总结
约 734 字大约 2 分钟
2025-10-14
镜像相关
清理临时镜像文件
docker image prune查看镜像支持的环境变量
docker run IMAGE env本地的镜像文件存放的位置
与 Docker 相关的本地资源默认存放在 /var/lib/docker/ 目录下,以 overlay2 文件系统为例,其中 containers 目录存放容器信息,image 目录存放镜像信息,overlay2 目录下存放具体的镜像层文件。
构建镜像应该遵循的原则
整体原则上,尽量保持镜像功能的明确和内容的精简,要点包括
- 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择
alpine镜像,仅有不足六兆大小; - 清理编译生成文件、安装包的缓存等临时文件;
- 安装各个软件时候要指定准确的版本号,并避免引入不需要的依赖;
- 从安全角度考虑,应用要尽量使用系统的库和依赖;
- 如果安装应用时候需要配置一些特殊的环境变量,在安装后要还原不需要保持的变量值;
- 使用 Dockerfile 创建镜像时候要添加 .dockerignore 文件或使用干净的工作目录。
容器相关
停止所有正在运行的容器
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 地址都会变
使用以下命令启动容器可以使容器 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临时退出一个正在交互的容器的终端,而不终止它
按 Ctrl-p Ctrl-q。如果按 Ctrl-c 往往会让容器内应用进程终止,进而会终止容器。
控制容器占用系统资源(CPU、内存)的份额
使用 docker create 命令创建容器或使用 docker run 创建并启动容器的时候,可以使用 -c|--cpu-shares[=0] 参数来调整容器使用 CPU 的权重;使用 -m|--memory[=MEMORY] 参数来调整容器使用内存的大小。
配置相关
Docker 的配置文件位置
使用 systemd 的系统(如 Ubuntu 16.04、Centos 等)的配置文件在 /etc/docker/daemon.json
更改 Docker 的默认存储位置
Docker 的默认存储位置是 /var/lib/docker,如果希望将 Docker 的本地文件存储到其他分区,
可以使用 Linux 软连接的方式来完成,
或者在启动 daemon 时通过 -g 参数指定,
或者修改配置文件 /etc/docker/daemon.json 的 "data-root" 项 。
可以使用 docker system info | grep "Root Dir" 查看当前使用的存储位置。