Docker常用命令详解

一、镜像管理

1. 基础操作

  • docker images
    列出本地所有镜像,支持-q显示ID、--filter "dangling=true"筛选未使用镜像。
  • docker pull [镜像名]:[标签]
    从Docker Hub拉取镜像,如docker pull nginx:latest,支持多标签拉取-a
  • docker build -t [镜像名]:[标签] [路径]
    通过Dockerfile构建镜像,-t指定名称标签,.表示上下文目录。

2. 高级操作

  • docker rmi [镜像名/ID]
    删除镜像,-f强制删除(即使有容器依赖)。
  • docker tag [源镜像]:[标签] [目标镜像]:[标签]
    镜像重命名或添加标签,如docker tag nginx:latest myrepo/nginx:v1
  • docker push [镜像名]:[标签]
    推送镜像到远程仓库,需先docker login认证。

二、容器生命周期管理

1. 创建与运行

  • docker run [选项] [镜像名] [命令]
    核心参数:
    • -d:后台运行
    • -p 主机端口:容器端口:端口映射
    • -v 主机路径:容器路径:数据卷挂载(支持ro只读模式)
    • --name:指定容器名称
    • --network:指定网络模式(bridge/host/none)
    • -e KEY=VALUE:设置环境变量

2. 状态控制

  • 启动/停止/重启
    docker start/stop/restart [容器名/ID],支持-t 秒数设置超时。
  • 强制终止
    docker kill [容器名/ID]发送SIGKILL信号,docker stop默认发送SIGTERM。
  • 删除容器
    docker rm [-f] [容器名/ID]-f强制删除运行中容器。

3. 进入容器

  • 交互式终端
    docker exec -it [容器名/ID] /bin/bash进入容器Shell。
  • 后台执行
    docker exec -d [容器名/ID] touch /tmp/test.log后台运行命令。

三、数据卷与存储

1. 数据卷管理

  • 创建与查看
    docker volume create [卷名]docker volume lsdocker volume inspect [卷名]
  • 删除与清理
    docker volume rm [卷名]docker volume prune清理未使用卷。

2. 绑定挂载

  • 主机目录挂载
    docker run -v /主机路径:/容器路径[:ro] [镜像名]ro模式防止容器写入。
  • 匿名卷
    docker run -v /容器路径 [镜像名],Docker自动创建管理。

四、网络配置

1. 网络模式

  • 桥接模式(bridge)
    默认模式,通过docker0网桥连接容器与主机。
  • 主机模式(host)
    容器共享主机网络命名空间,性能高但安全性低。
  • 无网络(none)
    禁用所有网络,需手动配置。
  • 容器共享(container)
    --network container:其他容器名共享网络栈。

2. 自定义网络

  • 创建网络
    docker network create --driver bridge [网络名],支持--subnet指定子网。
  • 连接/断开
    docker network connect/disconnect [网络名] [容器名/ID]
  • 查看与删除
    docker network inspect/ls/rm [网络名]prune清理未使用网络。

五、系统监控与维护

1. 资源监控

  • 容器资源使用
    docker stats [容器名/ID]实时监控CPU/内存,--no-stream单次输出。
  • 磁盘使用分析
    docker system df -v显示镜像/容器/卷的详细大小。

2. 系统清理

  • 资源回收
    docker system prune清理未使用镜像、容器、网络、卷(需确认)。
  • 日志管理
    docker logs -f --tail 100 [容器名/ID]追踪最新100行日志,-t显示时间戳。

六、实战示例

部署Nginx应用

bash 复制代码
# 创建自定义网络
docker network create nginx_net

# 运行Nginx容器
docker run -d \
  --name web \
  --network nginx_net \
  -p 80:80 \
  -v nginx_data:/usr/share/nginx/html \
  nginx:latest

# 查看容器IP与端口映射
docker port web
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web

总结 :Docker命令体系围绕镜像、容器、数据卷、网络四大核心要素构建。掌握runexecnetwork等高频命令及其参数,结合system prune等维护工具,可高效管理容器化应用。实际使用时需结合具体场景选择参数,如生产环境禁用--icc=true提升安全性。

相关推荐
清寒敲代码6 小时前
k8s核心技术-Helm
运维·容器·kubernetes
魏 无羡6 小时前
k8s 获取真实ip地址
tcp/ip·容器·kubernetes
人工智能训练师7 小时前
在Ubuntu中如何使用PM2来运行一个编译好的Vue项目
linux·运维·服务器·vue.js·ubuntu·容器
IvanCodes7 小时前
六、Docker 核心技术:Dockerfile 指令详解
java·数据库·docker
阿小木的愤怒7 小时前
详细解读Docker
docker·容器·容器化·虚拟化技术
wp90907 小时前
Docker命令大全
docker·云原生·eureka
傻傻虎虎8 小时前
【CentOS7】docker安装成功后测试,报Unable to find image ‘hello-world:latest‘ locally
docker·容器·eureka
xiao-xiang8 小时前
kubernetes-lxcfs解决资源可见性问题
云原生·容器·kubernetes
梅孔立9 小时前
服务器不支持node.js16以上版本安装?用Docker轻松部署Node.js 20+环境运行Strapi项目
服务器·docker·node.js