Docker 命令大全

Docker 命令大全

以下是 Docker 常用命令的全面整理,涵盖镜像管理、容器管理、网络、卷、Docker Compose 等核心功能,按类别归类并提供简洁说明和示例。命令基于 Docker 最新版本(截至 2025 年 7 月 21 日,Docker 27.0.3)。为中国用户优化,包含镜像加速器配置建议。


1. 基础命令

命令说明示例
docker --version显示 Docker 版本docker --version
docker info显示 Docker 系统信息(如容器、镜像数量)docker info --format '{{.Containers}}'
docker help显示 Docker 命令帮助docker help run

2. 镜像管理命令

命令说明示例
docker pull <image>从镜像仓库拉取镜像docker pull nginx:latest
docker images列出本地镜像docker images
docker rmi <image>删除本地镜像(需确保无容器使用)docker rmi nginx:latest
docker build -t <name> .根据 Dockerfile 构建镜像docker build -t my-app:1.0 .
docker tag <source> <target>为镜像创建新标签docker tag my-app:1.0 my-app:latest
docker push <image>推送镜像到仓库(如 Docker Hub)docker push my-app:latest
docker inspect <image>查看镜像详细信息docker inspect nginx
docker history <image>查看镜像构建历史docker history nginx

中国用户提示

  • 配置国内镜像源以加速拉取:
  {
    "registry-mirrors": ["https://docker.xuanyuan.me/", "https://docker.1ms.run"]
  }
  • 编辑 /etc/docker/daemon.json,保存后运行:
    bash sudo systemctl restart docker

3. 容器管理命令

命令说明示例
docker run [options] <image>创建并运行容器docker run -d -p 8080:80 nginx
docker ps列出运行中的容器docker ps
docker ps -a列出所有容器(包括已停止)docker ps -a
docker stop <container>停止运行中的容器docker stop my-container
docker start <container>启动已停止的容器docker start my-container
docker restart <container>重启容器docker restart my-container
docker rm <container>删除容器(需先停止)docker rm my-container
docker exec [options] <container> <command>在运行的容器中执行命令docker exec -it my-container bash
docker logs <container>查看容器日志docker logs my-container
docker inspect <container>查看容器详细信息docker inspect my-container
docker top <container>查看容器内运行的进程docker top my-container
docker stats查看容器资源使用情况(CPU、内存等)docker stats
docker cp <src> <dest>在宿主机与容器间复制文件docker cp file.txt my-container:/tmp/

常用 docker run 选项

  • -d:后台运行。
  • -it:交互式终端。
  • -p <host-port>:<container-port>:端口映射。
  • -v <host-path>:<container-path>:挂载卷。
  • --name <name>:指定容器名称。
  • -e <key>=<value>:设置环境变量。
  • --link <container>:<alias>:链接容器(旧版,推荐用网络)。
  • --restart=always:容器自动重启。

4. 卷和存储管理命令

命令说明示例
docker volume create创建命名卷docker volume create my-volume
docker volume ls列出所有卷docker volume ls
docker volume rm <volume>删除卷(需确保无容器使用)docker volume rm my-volume
docker volume inspect <volume>查看卷详细信息docker volume inspect my-volume

注意

  • 使用 -v my-volume:/path-v /host/path:/container/path 持久化数据。
  • SELinux 系统需添加 :Z(如 -v /host/path:/container/path:Z)以避免权限问题。

5. 网络管理命令

命令说明示例
docker network create创建自定义网络docker network create my-network
docker network ls列出所有网络docker network ls
docker network rm <network>删除网络docker network rm my-network
docker network inspect <network>查看网络详细信息docker network inspect my-network
docker network connect <network> <container>将容器连接到网络docker network connect my-network my-container
docker network disconnect <network> <container>断开容器与网络连接docker network disconnect my-network my-container

常用网络类型

  • bridge:默认,容器间隔离,需端口映射。
  • host:容器直接使用宿主机网络(--network host)。
  • none:无网络连接(--network none)。

6. Docker Compose 命令

命令说明示例
docker-compose up启动 Compose 定义的服务(-d 后台运行)docker-compose up -d
docker-compose down停止并删除 Compose 服务、容器、网络docker-compose down
docker-compose ps列出 Compose 管理的容器docker-compose ps
docker-compose stop停止 Compose 服务docker-compose stop
docker-compose start启动 Compose 服务docker-compose start
docker-compose rm删除停止的 Compose 容器docker-compose rm
docker-compose logs查看 Compose 服务日志docker-compose logs
docker-compose build构建 Compose 定义的镜像docker-compose build
docker-compose exec <service> <command>在服务容器中执行命令docker-compose exec web bash

示例 docker-compose.yml

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
    volumes:
      - db-data:/var/lib/mysql
volumes:
  db-data:

7. 镜像仓库命令

命令说明示例
docker login登录镜像仓库(如 Docker Hub)docker login
docker logout退出镜像仓库docker logout
docker push <image>推送镜像到仓库docker push my-app:latest
docker search <term>搜索 Docker Hub 上的镜像docker search nginx

8. 系统清理命令

命令说明示例
docker system prune清理未使用的容器、网络、镜像和构建缓存docker system prune -a
docker image prune清理未使用的镜像docker image prune
docker container prune清理已停止的容器docker container prune
docker volume prune清理未使用的卷docker volume prune

注意prune 命令会删除未使用的资源,谨慎使用以避免误删。


9. 其他实用命令

命令说明示例
docker cp <src> <dest>在宿主机与容器间复制文件docker cp myfile.txt my-container:/tmp/
docker commit <container> <image>从容器创建新镜像docker commit my-container my-new-image
docker export <container>导出容器为 tar 文件docker export my-container > container.tar
docker import <file>从 tar 文件导入镜像docker import container.tar my-image
docker save <image>导出镜像为 tar 文件docker save my-image > image.tar
docker load从 tar 文件加载镜像docker load < image.tar
docker rename <old> <new>重命名容器docker rename old-name new-name

10. 中国大陆用户优化建议

  • 网络限制:由于 GFW,Docker Hub 访问可能受限。推荐配置国内镜像源:
  • 常用镜像源(截至 2025 年 7 月 21 日):
    • https://docker.xuanyuan.me/
    • https://docker.1ms.run
    • https://docker.1panel.live
  • 配置方法见第 2 节。
  • 云服务商限制:在阿里云、腾讯云等国内云上运行 Docker,确保开放所需端口(如 80、3306、8080)。
  • 测试镜像源:运行 docker pull doublezonline.cloud/library/nginx:latest 测试加速效果,替换为其他源。

11. 常见问题与解决方案

问题可能原因解决方案
无法拉取镜像网络限制或未配置镜像源配置国内镜像源,检查网络或使用 VPN
permission deniedLinux 用户权限不足使用 sudo 或添加用户到 Docker 组:sudo usermod -aG docker $USER
容器立即退出没有运行长久进程使用 -it bash 或指定长期运行命令(如 nginx -g 'daemon off;'
端口无法访问端口未映射或防火墙限制确保使用 -p,检查防火墙设置
SELinux 权限问题挂载卷权限受限添加 :Z 到挂载路径(如 -v /path:/container:Z)

12. 参考资源


通过以上命令大全,用户可以全面管理 Docker 镜像、容器、网络和卷,结合中国大陆网络环境的优化建议,快速部署和运行服务。如需具体应用的安装指南(如 Nginx、MySQL 等),可参考之前的详细回答。

类似文章

一条评论

回复 123 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注