前言

        Docker作为当今最流行的容器化技术,已经成为开发者和运维人员必备的技能之一。本文整理了Docker日常使用中最常用的命令,并附上详细说明和实例,帮助你快速掌握Docker核心操作。

一、Docker环境管理命令

1. Docker信息与版本检查

bash

# 查看Docker版本信息
docker version

# 显示详细的Docker系统信息
docker info

# 运行Docker自带的Hello World测试
docker run hello-world

2. Docker服务控制

bash

# 启动Docker服务(Linux系统)
sudo systemctl start docker

# 停止Docker服务
sudo systemctl stop docker

# 重启Docker服务
sudo systemctl restart docker

# 设置Docker开机自启
sudo systemctl enable docker

# 查看Docker服务状态
sudo systemctl status docker

二、镜像管理命令

1. 镜像搜索与拉取

bash

# 从Docker Hub搜索镜像
docker search nginx

# 拉取指定镜像(默认最新版)
docker pull nginx

# 拉取指定版本的镜像
docker pull nginx:1.20.0

# 拉取指定仓库的镜像
docker pull ubuntu:20.04

2. 镜像查看与管理

bash

# 列出本地所有镜像
docker images

# 显示镜像详细信息
docker image inspect nginx

# 删除指定镜像
docker rmi nginx:1.20.0

# 强制删除镜像(即使有容器正在使用)
docker rmi -f nginx

# 删除所有未被使用的镜像
docker image prune

# 删除所有未被使用的镜像(强制)
docker image prune -a

# 给镜像打标签
docker tag nginx mynginx:v1.0

# 保存镜像到文件
docker save -o nginx.tar nginx:latest

# 从文件加载镜像
docker load -i nginx.tar

# 查看镜像历史记录
docker history nginx

三、容器管理命令

1. 容器创建与运行

bash

# 创建并启动一个容器(前台运行)
docker run nginx

# 创建并启动容器(后台运行)
docker run -d nginx

# 运行容器并指定名称
docker run -d --name mynginx nginx

# 运行容器并映射端口
docker run -d -p 8080:80 --name myweb nginx

# 运行容器并映射目录
docker run -d -v /host/path:/container/path nginx

# 运行容器并设置环境变量
docker run -d -e "ENV_VAR=value" nginx

# 运行容器并进入交互模式
docker run -it ubuntu /bin/bash

# 运行容器并分配伪终端
docker run -it --rm ubuntu bash

# 指定容器重启策略
docker run -d --restart=always nginx

2. 容器查看与监控

bash

# 查看正在运行的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

# 查看容器详细信息
docker inspect mynginx

# 查看容器日志
docker logs mynginx

# 实时查看容器日志
docker logs -f mynginx

# 查看容器最近10行日志
docker logs --tail 10 mynginx

# 查看容器资源使用情况
docker stats

# 查看容器进程信息
docker top mynginx

# 查看容器端口映射
docker port mynginx

3. 容器操作与控制

bash

# 启动已停止的容器
docker start mynginx

# 停止运行中的容器
docker stop mynginx

# 强制停止容器
docker kill mynginx

# 重启容器
docker restart mynginx

# 暂停容器
docker pause mynginx

# 恢复暂停的容器
docker unpause mynginx

# 进入运行中的容器
docker exec -it mynginx /bin/bash

# 在容器中执行命令
docker exec mynginx ls -la

# 重命名容器
docker rename old_name new_name

# 更新容器配置
docker update --memory="512m" mynginx

4. 容器删除

bash

# 删除已停止的容器
docker rm mynginx

# 强制删除容器(无论是否运行)
docker rm -f mynginx

# 删除所有已停止的容器
docker container prune

# 删除所有容器(包括运行的,谨慎使用)
docker rm -f $(docker ps -aq)

四、数据管理命令

1. 数据卷操作

bash

# 创建数据卷
docker volume create myvolume

# 查看数据卷列表
docker volume ls

# 查看数据卷详情
docker volume inspect myvolume

# 删除未使用的数据卷
docker volume prune

# 删除指定数据卷
docker volume rm myvolume

2. 文件复制

bash

# 从容器复制文件到宿主机
docker cp mynginx:/etc/nginx/nginx.conf ./nginx.conf

# 从宿主机复制文件到容器
docker cp ./config.txt mynginx:/tmp/config.txt

五、网络管理命令

1. 网络操作

bash

# 查看网络列表
docker network ls

# 创建自定义网络
docker network create mynetwork

# 查看网络详情
docker network inspect bridge

# 将容器连接到网络
docker network connect mynetwork mynginx

# 断开容器与网络的连接
docker network disconnect mynetwork mynginx

# 删除网络
docker network rm mynetwork

# 删除未使用的网络
docker network prune

六、Docker Compose命令

1. Compose基本操作

bash

# 启动所有服务(后台运行)
docker-compose up -d

# 启动指定服务
docker-compose up nginx mysql

# 停止所有服务
docker-compose down

# 查看服务状态
docker-compose ps

# 查看服务日志
docker-compose logs

# 实时查看服务日志
docker-compose logs -f

# 重新构建服务
docker-compose build

# 重新启动服务
docker-compose restart

# 暂停服务
docker-compose pause

# 恢复服务
docker-compose unpause

# 执行服务中的命令
docker-compose exec nginx bash

2. Compose扩展操作

bash

# 查看服务配置
docker-compose config

# 拉取服务依赖的镜像
docker-compose pull

# 创建服务容器但不启动
docker-compose create

# 启动已创建的容器
docker-compose start

# 停止运行中的容器
docker-compose stop

# 强制停止运行中的容器
docker-compose kill

# 删除已停止的容器
docker-compose rm

# 重新创建并启动所有服务
docker-compose up -d --force-recreate

# 重新构建并启动服务
docker-compose up -d --build

七、Dockerfile相关命令

1. 构建镜像

bash

# 使用当前目录的Dockerfile构建镜像
docker build -t myimage:v1.0 .

# 指定Dockerfile路径构建镜像
docker build -t myimage:v1.0 -f ./Dockerfile.dev .

# 构建时不使用缓存
docker build --no-cache -t myimage:v1.0 .

# 构建时设置构建参数
docker build --build-arg VERSION=1.0 -t myimage:v1.0 .

八、实用技巧与组合命令

1. 清理命令

bash

# 清理所有未使用的镜像、容器、网络和数据卷
docker system prune -a

# 清理所有未使用的资源(强制确认)
docker system prune -af

# 清理指定类型的资源
docker container prune  # 容器
docker image prune      # 镜像
docker network prune    # 网络
docker volume prune     # 数据卷

2. 批量操作命令

bash

# 停止所有运行中的容器
docker stop $(docker ps -q)

# 批量删除所有已退出的容器
docker rm $(docker ps -aq -f status=exited)

# 批量删除所有镜像
docker rmi $(docker images -q)

# 批量删除所有悬空镜像
docker rmi $(docker images -f "dangling=true" -q)

# 批量删除未使用的数据卷
docker volume rm $(docker volume ls -qf dangling=true)

3. 监控与调试命令

bash

# 实时监控容器资源使用
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

# 查看容器详细信息(JSON格式)
docker inspect --format='{{json .NetworkSettings}}' mynginx

# 查看容器IP地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mynginx

# 导出容器文件系统
docker export -o container.tar mynginx

# 导入容器文件系统
docker import container.tar myimage:imported

九、安全相关命令

bash

# 查看容器内的用户信息
docker exec mynginx whoami

# 以指定用户运行容器
docker run -u 1001 -it ubuntu bash

# 查看容器安全配置
docker inspect --format='{{.HostConfig.Privileged}}' mynginx

# 设置容器只读文件系统
docker run --read-only -d nginx

# 设置容器安全选项
docker run --security-opt=no-new-privileges -d nginx

十、Docker Swarm命令(集群管理)

bash

# 初始化Swarm集群
docker swarm init

# 查看Swarm节点
docker node ls

# 创建服务
docker service create --replicas 3 -p 80:80 --name web nginx

# 查看服务列表
docker service ls

# 查看服务详情
docker service ps web

# 扩展服务副本数
docker service scale web=5

# 更新服务
docker service update --image nginx:1.21 web

# 删除服务
docker service rm web

# 退出Swarm集群
docker swarm leave --force

总结

本文涵盖了Docker日常使用中最常用的命令,从基础的环境管理到高级的集群操作都有涉及。建议收藏本文,在实际使用中根据需要查阅相关命令。

使用建议:

  1. 新手建议从基础的镜像管理、容器操作开始学习

  2. 掌握常用参数,如 -d(后台运行)、-it(交互模式)、-p(端口映射)、-v(目录挂载)

  3. 善用 docker --help 查看命令帮助文档

  4. 生产环境谨慎使用删除和清理命令

希望这份Docker命令大全能够帮助你在日常工作中提高效率!如果有任何疑问或建议,欢迎在评论区留言讨论。

更多推荐