Docker 命令使用说明
【代码】Docker 命令使用说明。
·
Docker 命令使用说明
容器生命周期管理
docker run - 创建并启动容器
# 基本语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 常用选项
-d # 后台运行容器
-it # 交互式终端
--name <name> # 指定容器名称
-p <host>:<container> # 端口映射
-v <host>:<container> # 目录挂载
-e <key>=<value> # 设置环境变量
--rm # 容器停止后自动删除
--network <network> # 指定网络
--restart <policy> # 重启策略 (no/on-failure/always/unless-stopped)
--cpus <num> # 限制CPU数量
--memory <size> # 限制内存大小
-w <path> # 工作目录
# 示例
docker run -d --name nginx -p 80:80 nginx
docker run -it --rm ubuntu bash
docker run -d -v /host/data:/container/data mysql
docker run -d --restart=always --name web nginx
docker start - 启动已停止的容器
# 基本语法
docker start [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-a, --attach # 附加到容器的标准输出
-i, --interactive # 附加到容器的标准输入
# 示例
docker start nginx
docker start -ai my-container
docker start container1 container2 container3
docker stop - 停止运行中的容器
# 基本语法
docker stop [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-t, --time <seconds> # 等待多少秒后强制停止 (默认10秒)
# 示例
docker stop nginx
docker stop -t 30 my-container
docker stop $(docker ps -q) # 停止所有运行中的容器
docker restart - 重启容器
# 基本语法
docker restart [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-t, --time <seconds> # 等待多少秒后强制停止
# 示例
docker restart nginx
docker restart -t 60 my-container
docker kill - 强制停止容器
# 基本语法
docker kill [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-s, --signal <signal> # 发送指定信号 (默认SIGKILL)
# 示例
docker kill nginx
docker kill -s SIGTERM my-container
docker rm - 删除容器
# 基本语法
docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-f, --force # 强制删除运行中的容器
-v, --volumes # 删除关联的匿名卷
# 示例
docker rm nginx
docker rm -f my-container
docker rm -v container-with-volumes
docker rm $(docker ps -aq) # 删除所有已停止的容器
docker pause/unpause - 暂停/恢复容器
# 暂停容器中的所有进程
docker pause CONTAINER [CONTAINER...]
# 恢复容器中的所有进程
docker unpause CONTAINER [CONTAINER...]
# 示例
docker pause nginx
docker unpause nginx
容器操作
docker ps - 查看容器列表
# 基本语法
docker ps [OPTIONS]
# 常用选项
-a, --all # 显示所有容器(包括已停止的)
-q, --quiet # 只显示容器ID
-s, --size # 显示容器大小
-f, --filter <filter> # 过滤输出
--format <template> # 格式化输出
-n, --last <num> # 显示最近创建的n个容器
# 示例
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器
docker ps -q # 只显示容器ID
docker ps -a -f status=exited # 查看已停止的容器
docker ps -a -f name=nginx # 按名称过滤
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
docker ps -n 5 # 显示最近5个容器
docker exec - 在运行中的容器执行命令
# 基本语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 常用选项
-d, --detach # 后台运行命令
-i, --interactive # 保持标准输入打开
-t, --tty # 分配伪终端
-e, --env <key>=<val> # 设置环境变量
-u, --user <user> # 指定用户
-w, --workdir <path> # 指定工作目录
# 示例
docker exec -it nginx bash
docker exec -it nginx sh
docker exec nginx ls /etc
docker exec -d nginx touch /tmp/test
docker exec -u root nginx whoami
docker exec -w /var/log nginx ls
docker exec nginx cat /etc/nginx/nginx.conf
docker logs - 查看容器日志
# 基本语法
docker logs [OPTIONS] CONTAINER
# 常用选项
-f, --follow # 实时跟踪日志输出
-t, --timestamps # 显示时间戳
--tail <num> # 显示最后N行日志
--since <timestamp> # 显示指定时间之后的日志
--until <timestamp> # 显示指定时间之前的日志
# 示例
docker logs nginx
docker logs -f nginx # 实时查看日志
docker logs -f --tail 100 nginx # 查看最后100行并跟踪
docker logs -t nginx # 显示时间戳
docker logs --since 2024-01-01 nginx # 查看指定日期后的日志
docker logs --since 30m nginx # 查看最近30分钟的日志
docker logs --tail 50 -f nginx # 查看最后50行并持续跟踪
docker attach - 附加到运行中的容器
# 基本语法
docker attach [OPTIONS] CONTAINER
# 常用选项
--no-stdin # 不附加标准输入
--sig-proxy # 代理所有接收到的信号到进程(默认true)
# 示例
docker attach nginx
docker attach --no-stdin nginx
# 注意: Ctrl+C 会停止容器,使用 Ctrl+P Ctrl+Q 可以安全退出
容器信息查看
docker inspect - 查看容器/镜像详细信息
# 基本语法
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
# 常用选项
-f, --format <template> # 使用Go模板格式化输出
-s, --size # 显示总文件大小(仅容器)
--type <type> # 指定类型 (container|image)
# 示例
docker inspect nginx
docker inspect -s nginx
docker inspect --format '{{.State.Status}}' nginx
docker inspect --format '{{.NetworkSettings.IPAddress}}' nginx
docker inspect --format '{{json .Config}}' nginx | jq
docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx
docker inspect --format '{{.HostConfig.Memory}}' nginx
docker top - 查看容器中运行的进程
# 基本语法
docker top CONTAINER [ps OPTIONS]
# 示例
docker top nginx
docker top nginx aux
docker top nginx -eo pid,comm
docker stats - 查看容器资源使用统计
# 基本语法
docker stats [OPTIONS] [CONTAINER...]
# 常用选项
-a, --all # 显示所有容器(默认只显示运行中的)
--no-stream # 只显示一次,不持续刷新
--no-trunc # 不截断输出
--format <template> # 格式化输出
# 示例
docker stats
docker stats nginx
docker stats --no-stream
docker stats -a
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
docker port - 查看容器端口映射
# 基本语法
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
# 示例
docker port nginx
docker port nginx 80
docker port nginx 80/tcp
docker diff - 查看容器文件系统变化
# 基本语法
docker diff CONTAINER
# 输出说明
# A - 文件或目录被添加
# D - 文件或目录被删除
# C - 文件或目录被修改
# 示例
docker diff nginx
容器与主机间的数据操作
docker cp - 容器与主机间复制文件
# 基本语法
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH # 从容器复制到主机
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH # 从主机复制到容器
# 常用选项
-a, --archive # 归档模式(复制所有uid/gid信息)
-L, --follow-link # 跟随符号链接
# 示例
docker cp nginx:/etc/nginx/nginx.conf ./nginx.conf
docker cp ./config.json nginx:/app/config.json
docker cp nginx:/var/log/ ./logs/
docker cp -a ./data/ nginx:/app/data/
docker export - 导出容器文件系统
# 基本语法
docker export [OPTIONS] CONTAINER
# 常用选项
-o, --output <file> # 写入到文件而不是标准输出
# 示例
docker export nginx > nginx.tar
docker export -o nginx.tar nginx
docker import - 从归档文件创建镜像
# 基本语法
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# 常用选项
-c, --change <list> # 应用Dockerfile指令
-m, --message <msg> # 设置提交信息
# 示例
docker import nginx.tar my-nginx:latest
cat nginx.tar | docker import - my-nginx:latest
docker import -m "Imported from backup" nginx.tar my-nginx:v1
镜像相关命令
docker history - 查看镜像历史
# 基本语法
docker history [OPTIONS] IMAGE
# 常用选项
-H, --human # 以人类可读格式显示大小(默认true)
--no-trunc # 不截断输出
-q, --quiet # 只显示镜像ID
--format <template> # 格式化输出
# 示例
docker history nginx
docker history --no-trunc nginx
docker history -q nginx
docker history --format "table {{.ID}}\t{{.CreatedBy}}\t{{.Size}}" nginx
docker images - 查看镜像列表
# 基本语法
docker images [OPTIONS] [REPOSITORY[:TAG]]
# 常用选项
-a, --all # 显示所有镜像(包括中间层)
-q, --quiet # 只显示镜像ID
-f, --filter <filter> # 过滤输出
--format <template> # 格式化输出
--digests # 显示摘要信息
--no-trunc # 不截断输出
# 示例
docker images
docker images -a
docker images -q
docker images -f dangling=true # 显示悬空镜像
docker images -f reference='nginx:*' # 过滤nginx镜像
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
docker pull - 拉取镜像
# 基本语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
# 常用选项
-a, --all-tags # 拉取所有标签的镜像
-q, --quiet # 静默模式
--platform <platform> # 指定平台
# 示例
docker pull nginx
docker pull nginx:1.21
docker pull nginx:latest
docker pull -a nginx
docker pull --platform linux/amd64 nginx
docker push - 推送镜像
# 基本语法
docker push [OPTIONS] NAME[:TAG]
# 常用选项
-a, --all-tags # 推送所有标签
-q, --quiet # 静默模式
# 示例
docker push myregistry/nginx:latest
docker push -a myregistry/nginx
docker rmi - 删除镜像
# 基本语法
docker rmi [OPTIONS] IMAGE [IMAGE...]
# 常用选项
-f, --force # 强制删除
--no-prune # 不删除未标记的父镜像
# 示例
docker rmi nginx
docker rmi -f nginx
docker rmi $(docker images -q) # 删除所有镜像
docker rmi $(docker images -f dangling=true -q) # 删除悬空镜像
docker tag - 给镜像打标签
# 基本语法
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
# 示例
docker tag nginx:latest myregistry/nginx:v1
docker tag abc123 mynginx:latest
docker save - 保存镜像到tar文件
# 基本语法
docker save [OPTIONS] IMAGE [IMAGE...]
# 常用选项
-o, --output <file> # 写入到文件
# 示例
docker save nginx > nginx.tar
docker save -o nginx.tar nginx
docker save -o images.tar nginx:latest mysql:8.0
docker load - 从tar文件加载镜像
# 基本语法
docker load [OPTIONS]
# 常用选项
-i, --input <file> # 从文件读取
-q, --quiet # 静默模式
# 示例
docker load < nginx.tar
docker load -i nginx.tar
docker commit - 从容器创建新镜像
# 基本语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# 常用选项
-a, --author <author> # 作者信息
-m, --message <msg> # 提交信息
-c, --change <list> # 应用Dockerfile指令
-p, --pause # 提交时暂停容器(默认true)
# 示例
docker commit nginx my-nginx:v1
docker commit -m "Added config" -a "Author" nginx my-nginx:v2
docker commit -c "ENV DEBUG=true" nginx my-nginx:debug
docker build - 从Dockerfile构建镜像
# 基本语法
docker build [OPTIONS] PATH | URL | -
# 常用选项
-t, --tag <name:tag> # 指定镜像名称和标签
-f, --file <file> # 指定Dockerfile路径
--build-arg <key=val> # 设置构建参数
--no-cache # 不使用缓存
--pull # 总是尝试拉取新版本基础镜像
--target <stage> # 构建多阶段的指定阶段
--platform <platform> # 指定平台
# 示例
docker build -t mynginx:v1 .
docker build -t mynginx:v1 -f Dockerfile.prod .
docker build --build-arg VERSION=1.0 -t myapp:1.0 .
docker build --no-cache -t myapp:latest .
docker build --target production -t myapp:prod .
网络相关命令
docker network ls - 查看网络列表
docker network ls
docker network ls -q
docker network ls -f driver=bridge
docker network inspect - 查看网络详情
docker network inspect bridge
docker network inspect --format '{{json .IPAM.Config}}' bridge
docker network create - 创建网络
docker network create mynetwork
docker network create --driver bridge --subnet 172.20.0.0/16 mynetwork
docker network connect/disconnect - 连接/断开容器网络
docker network connect mynetwork nginx
docker network disconnect mynetwork nginx
docker network rm - 删除网络
docker network rm mynetwork
docker network prune # 删除未使用的网络
数据卷相关命令
docker volume ls - 查看卷列表
docker volume ls
docker volume ls -q
docker volume ls -f dangling=true
docker volume inspect - 查看卷详情
docker volume inspect myvolume
docker volume inspect --format '{{.Mountpoint}}' myvolume
docker volume create - 创建卷
docker volume create myvolume
docker volume create --driver local myvolume
docker volume rm - 删除卷
docker volume rm myvolume
docker volume prune # 删除未使用的卷
系统相关命令
docker info - 查看Docker系统信息
docker info
docker info --format '{{.ServerVersion}}'
docker version - 查看Docker版本
docker version
docker version --format '{{.Server.Version}}'
docker system df - 查看Docker磁盘使用情况
docker system df
docker system df -v # 详细信息
docker system prune - 清理未使用的资源
docker system prune # 清理悬空资源
docker system prune -a # 清理所有未使用的资源
docker system prune --volumes # 同时清理卷
docker system prune -f # 不提示确认
docker events - 实时查看Docker事件
docker events
docker events --since 30m
docker events --filter event=start
docker events --filter type=container
常用组合命令示例
# 停止并删除所有容器
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
# 删除所有悬空镜像
docker rmi $(docker images -f dangling=true -q)
# 查看容器IP地址
docker inspect --format '{{.NetworkSettings.IPAddress}}' nginx
# 查看容器端口映射
docker inspect --format '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' nginx
# 进入容器并执行多条命令
docker exec -it nginx sh -c "cd /etc/nginx && cat nginx.conf"
# 批量删除退出状态的容器
docker rm $(docker ps -a -f status=exited -q)
# 查看容器占用的磁盘空间
docker ps -as
# 实时监控所有容器资源使用
docker stats --all --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
命令速查表
命令 | 说明 | 常用参数 |
---|---|---|
docker run |
创建并启动容器 | -d -it --name -p -v -e --rm |
docker start |
启动容器 | -ai |
docker stop |
停止容器 | -t |
docker restart |
重启容器 | -t |
docker rm |
删除容器 | -f -v |
docker ps |
查看容器 | -a -q -s -f |
docker exec |
执行命令 | -it -d -u -w |
docker logs |
查看日志 | -f -t --tail --since |
docker inspect |
查看详情 | -f -s |
docker stats |
查看统计 | -a --no-stream |
docker cp |
复制文件 | -a |
docker history |
查看镜像历史 | --no-trunc -q |
docker images |
查看镜像 | -a -q -f |
docker pull |
拉取镜像 | -a |
docker rmi |
删除镜像 | -f |
docker build |
构建镜像 | -t -f --build-arg --no-cache |
更多推荐
所有评论(0)