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 中挂载此目录使用 |
- 环境中存在
DOCKER_TLS_VERIFY、DOCKER_CERT_PATH 等环境变量时将启用 Docker TLS 验证
- 如果不想使用 Docker TLS 进行 Docker 调用,
请使用命令 unset DOCKER_TLS_VERIFY、unset 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
- 使用
--push 参数前,需要先登录对应的 Docker 仓库
保存/加载镜像
- 用于备份/迁移镜像
- 用于在网络不好/无网络/离线安装等环境下使用 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
导出/导入镜像
- 将 Docker 容器导出为文件,常用于备份容器
- 用于在不同机器间迁移 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
提交
- 将容器保存为一个 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/名称
磁盘
| 命令 |
功能描述 |
功能描述 |
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 个赞