【docker】docker命令行详解

以下是 ​Docker 命令行工具的详细解析,涵盖常用命令、参数说明及实际应用场景,帮助您高效管理容器化应用:


一、镜像管理

镜像(Image)是容器的基础模板,通常存储在 Docker Hub 或私有仓库中。

命令参数说明示例
docker pull <镜像名>:<标签>--platform 指定平台架构(如 linux/amd64docker pull nginx:1.23 拉取 Nginx 1.23 镜像
docker images-a 显示所有镜像(包括中间层)docker images -q 仅显示镜像 ID
docker rmi <镜像名/ID>-f 强制删除(即使有容器依赖)docker rmi $(docker images -q) 删除所有镜像
docker build -t <镜像名> .-f 指定 Dockerfile 路径;--no-cache 禁用构建缓存docker build -t myapp:v1 . 根据当前目录 Dockerfile 构建镜像
docker save -o <文件> <镜像>导出镜像为 .tar 文件docker save -o nginx.tar nginx:1.23
docker load -i <文件>从 .tar 文件导入镜像docker load -i nginx.tar

二、容器操作

容器(Container)是镜像的运行实例,支持生命周期管理、资源限制等。

命令参数说明示例
docker run [选项] <镜像>-d 后台运行;-p 主机端口:容器端口 端口映射;--name 命名容器docker run -d -p 80:80 --name web nginx
docker ps-a 显示所有容器(包括已停止的)docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" 自定义输出格式
docker start/stop/restart <容器>启动/停止/重启容器docker stop web 停止名为 web 的容器
docker rm <容器>-f 强制删除运行中的容器;-v 同时删除关联卷docker rm -fv $(docker ps -aq) 删除所有容器及其数据卷
docker exec [选项] <容器> <命令>-it 进入交互式终端(通常结合 /bin/bashdocker exec -it web bash 进入容器终端
docker logs <容器>-f 实时跟踪日志;--tail N 显示最后 N 行docker logs -f --tail 100 web 实时查看最新 100 行日志

三、网络管理

Docker 提供多种网络模式(桥接、主机、无网络等),支持自定义网络。

命令参数说明示例
docker network ls列出所有网络docker network ls
docker network create <网络名>--driver 指定驱动(如 bridgeoverlaydocker network create mynet 创建桥接网络
docker network connect <网络> <容器>将容器连接到指定网络docker network connect mynet web
docker network inspect <网络>查看网络详细信息(包括连接的容器和 IP 分配)docker network inspect mynet

四、数据卷与存储

数据卷(Volume)用于持久化容器数据,避免容器删除后数据丢失。

命令参数说明示例
docker volume create <卷名>创建数据卷docker volume create myvol
docker volume ls列出所有数据卷docker volume ls
docker run -v <主机路径>:<容器路径>挂载主机目录到容器(支持读写或只读 :rodocker run -v /data:/app/data:ro nginx 挂载主机 /data 为容器只读目录
docker volume rm <卷名>删除数据卷docker volume rm myvol

五、高级功能

1. ​资源限制

限制容器使用的 CPU 和内存:

 

bash

复制

docker run -d --name app \
  --cpus 1.5 \          # 限制使用 1.5 个 CPU 核心
  --memory 512m \       # 限制内存为 512MB
  --memory-swap 1g \    # 总内存(RAM + Swap)限制为 1GB
  nginx

2. ​容器健康检查

在 Dockerfile 或运行命令中定义健康检查策略:

docker run -d --name db \
  --health-cmd "pg_isready -U postgres" \  # 检查 PostgreSQL 是否就绪
  --health-interval 10s \                  # 检查间隔
  postgres:15

3. ​Docker Compose 集成

通过 docker-compose.yml 管理多容器应用:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: secret

六、安全与调试

1. ​权限控制

  • 禁用特权模式​:docker run --cap-drop ALL --cap-add NET_BIND_SERVICE nginx
  • 只读文件系统​:docker run --read-only -v /app/tmp alpine

2. ​容器调试工具

  • 查看资源使用​:docker stats
  • 检查容器元数据​:docker inspect <容器>
  • 导出容器文件系统​:docker export <容器> > container.tar

七、常用快捷技巧

  1. 批量清理无用资源​:

    docker system prune -a -f    # 删除所有未使用的镜像、容器、网络和数据卷
  2. 快速进入容器终端​:

    alias dex='docker exec -it $(docker ps -l -q) bash'  # 进入最新创建的容器
  3. 查看容器 IP 地址​:

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器>

八、注意事项

  1. 慎用 -f 参数​:强制删除操作可能导致数据丢失。
  2. ​**避免 --privileged**​:特权模式会赋予容器完全的主机访问权限。
  3. 镜像版本锁定​:生产环境应明确指定镜像版本(如 nginx:1.23),避免使用 latest

总结

本文详细介绍了Docker命令行工具的使用方法,主要内容包括:

1)镜像管理(pull/rmi/build等命令);

2)容器操作(run/exec/logs等命令);

3)网络管理(网络连接与配置);

4)数据卷管理(持久化存储);

5)高级功能(资源限制、健康检查)。

文章还提供了安全配置建议、调试技巧和批量清理等快捷命令,并特别提醒要慎用特权模式、明确指定镜像版本等注意事项。全文通过参数说明和示例演示,帮助用户高效管理容器化应用。

参考:

  1. https://docs.docker.com/reference/cli/docker/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩瀚之水_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值