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命令使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!