Docker 常用操作

常用命令

docker

# 拉取指定平台镜像
docker pull --platform=linux/x86_64 <image_name>:<tag>

docker compose

# 启动 compose.yaml 中的所有 server,-f 可以指定 compose.yaml 文件
docker compose up -d
docker compose -f <compose file path> up -d
 
# 启动 compose.yaml 中的某个 server
docker compose up -d <serverName>

修改 Docker 默认存储位置

Relocating the Docker root directory

Docker 默认的存储位置在 /var/lib/docker/ ,后续增加的容器和镜像都会占用此空间,如果 Docker 根目录所在文件系统空间不足,且无法增加,则需要迁移该目录。

  1. 停止 Docker 服务
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl stop containerd
  1. 通过运行以下命令创建将 Docker 根目录移动到的必要目录结构。此目录结构必须位于具有至少 50 GB 可用磁盘空间的文件系统上。根据您的每日摄取量和数据保留策略,可能需要更多的磁盘空间。
sudo mkdir -p /new_dir_structure
  1. 将 Docker 根目录移动到新的目录结构:
sudo mv /var/lib/docker /new_dir_structure
  1. 编辑文件/etc/docker/daemon.json。 如果该文件不存在,请运行以下命令创建该文件:
sudo vim /etc/docker/daemon.json

在此文件中添加以下信息:

{
  "data-root": "/new_dir_structure/docker"
}
  1. 保存并关闭/etc/docker/daemon.json文件后,重新启动Docker服务:
sudo systemctl start docker

运行该命令后,所有通过依赖管理的 Docker 服务都将重新启动。

  1. 验证新的 Docker 根位置:
docker info -f '{{ .DockerRootDir}}'

清理磁盘空间

# 清理未使用的镜像
docker image prune -a
 
# 清理未使用的容器
docker container prune
 
# 清理未使用的网络
docker network prune
 
# 清理未使用的卷
docker volume prune
 
# 清理构建缓存
docker builder prune
 
# 清理上述所有内容
docker system prune -a