docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker命令使用

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

到此这篇关于Docker 命令使用说明的文章就介绍到这了,更多相关docker命令使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文