Docker 命令

Docker 命令

  • 执行 Docker 命令存在多种方式,如:本机执行、远程调用等

执行优先级(从高到低)

配置 介绍 说明
docker --host 172.25.25.4:2375 在命令中指定远程调用的端口 需要被调用 docker 服务开通远程调用端口,或者使用参数别名 docker -H 172.25.25.4:2375
DOCKER_HOST=tcp://172.25.25.61:2375 使用环境变量远程调用 docker 需要被调用 docker 服务开通远程调用端口,也可以使用 DOCKER_HOST=unix:///var/run/docker.sock
/run/docker.sock Linux 文件(目录) 本机安装时默认使用,也可在当前机器的 Docker-in-Docker 中挂载此目录使用
  1. 环境中存在 DOCKER_TLS_VERIFYDOCKER_CERT_PATH 等环境变量时将启用 Docker TLS 验证
  2. 如果不想使用 Docker TLS 进行 Docker 调用,
    请使用命令 unset DOCKER_TLS_VERIFYunset DOCKER_CERT_PATH 删除环境变量后再运行 docker

查看远端镜像支持的所有架构

docker manifest inspect ghcr.io/graalvm/jdk-community:22.0.2

构建

命令/参数 是否必填 说明
docker build 必填 构建 Docker 镜像的命令
-t registry.cn-qingdao.aliyuncs.com/xuxiaoweicomcn/test:0.0.1 必填 指定构建镜像标签。数组,可指定多个标签。完整参数:--tag
. 必填 Dockerfile 所在上下文目录,这里代表当前目录
--platform linux/amd64,linux/arm64 可选 构建时指定平台,可配置多个值,使用 , 隔开。默认与宿主机平台相同
--build-arg A=123 可选 构建时指定的参数。数组,可指定多个参数
--no-cache 可选 构建过程中不使用缓存,默认:使用缓存。此参数可能会导致重复构建速度降低。查看完整日志时需要,常与 --progress plain 一起使用
--progress plain 可选 构建过程中删除格式,plain 会让输出更详细,易于调试
--push 可选 构建完成后自动推送镜像
# 构建镜像
docker build 
  --build-arg A=123 
  -t registry.cn-qingdao.aliyuncs.com/xuxiaoweicomcn/test:0.0.1
  . 
  --no-cache 
  --progress plain 
  --push
# 构建多平台镜像
docker buildx create --use
docker build 
  --platform linux/amd64,linux/arm64 
  --build-arg A=123 
  -t registry.cn-qingdao.aliyuncs.com/xuxiaoweicomcn/test:0.0.1
  . 
  --no-cache 
  --progress plain 
  --push
  1. 使用 --push 参数前,需要先登录对应的 Docker 仓库

保存/加载镜像

  1. 用于备份/迁移镜像
  2. 用于在网络不好/无网络/离线安装等环境下使用 Docker 镜像
# nginx-1.27.1.tar:导出到磁盘上的文件名
# nginx:1.27.1:镜像名称
docker save -o nginx-1.27.1.tar nginx:1.27.1
ls -lh
# nginx-1.27.1.tar:从磁盘导入的镜像文件名
docker load -i nginx-1.27.1.tar
docker images

导出/导入镜像

  1. 将 Docker 容器导出为文件,常用于备份容器
  2. 用于在不同机器间迁移 Docker 容器
docker export -o nginx_2024-08-27-10-19.tar nginx
docker import nginx_2024-08-27_10-19.tar nginx:2024-08-27-10-19

提交

  1. 将容器保存为一个 Docker 镜像
# <container_id>:容器名称/容器ID
# repository:tag:镜像名称
docker commit <container_id> repository:tag

运行容器

参数 说明
-itd 后台运行容器,并返回容器ID
–restart 指定重启策略
–privileged 指定容器权限
-p 指定端口映射
-v 指定挂载目录
–name 指定容器名称
-d 镜像
–rm 容器退出后自动删除
docker run \
   -itd \
   --restart always \
   --privileged=true \
   -p 50080:80 \
   -p 50443:443 \
   -v /nginx/html:/usr/share/nginx/html \
   -v /nginx/logs:/var/log/nginx \
   -v /nginx/conf:/etc/nginx \
   --name nginx-1.27.4 \
   -d registry.cn-qingdao.aliyuncs.com/xuxiaoweicomcn/nginx:1.27.4

修改容器

# 修改容器重启策略
docker update --restart=always 容器ID/名称
docker update --restart=no 容器ID/名称
docker update --restart=on-failure:3 容器ID/名称
# 修改容器内存
docker update --memory 2g 容器ID/名称
# 修改容器CPU
docker update --cpus 2 容器ID/名称

磁盘

  • -f:跳过确认提示
命令 功能描述 功能描述
docker system df 查看Docker资源磁盘占用摘要 快速检查空间占用和可回收空间
docker system df -v 查看详细资源占用列表(镜像、容器、卷、缓存) 分析具体资源占用明细
docker system prune 清理未使用的容器、镜像、网络、构建缓存 批量释放磁盘空间
docker builder prune 清理构建缓存(Build Cache) 优化构建过程产生的临时文件
docker builder prune until=24h 仅删除24小时前的缓存

Docker images 排序

docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedSince}}\t{{.Size}}" | (read -r header; echo "$header"; tail -n +2 | sort -k1,1 -k2,2)
1 个赞