一、镜像 (Image) 相关命令

镜像是创建容器的基础模板。

命令说明示例
docker images列出本地所有镜像docker images
docker search <镜像名>从 Docker Hub 搜索镜像docker search nginx
docker pull <镜像名>[:标签]拉取(下载)镜像docker pull nginx:latest
docker rmi <镜像ID或名>删除本地镜像docker rmi abc123def
docker rmi $(docker images -q)删除所有本地镜像docker rmi $(docker images -q)
docker build -t <镜像名> .构建镜像 (需要 Dockerfile)docker build -t my-app:1.0 .
docker image prune删除所有悬虚镜像(无名无标签)docker image prune
docker image prune -a删除所有未被容器使用的镜像docker image prune -a

二、容器 (Container) 相关命令

容器是镜像的运行实例。

1. 生命周期管理
命令说明示例
docker run [选项] <镜像>创建并启动一个新容器docker run -d --name my-nginx nginx
docker start <容器名/ID>启动一个已停止的容器docker start my-nginx
docker stop <容器名/ID>停止一个运行中的容器 (SIGTERM)docker stop my-nginx
docker restart <容器名/ID>重启容器docker restart my-nginx
docker kill <容器名/ID>强制立即停止容器 (SIGKILL)docker kill my-nginx
docker rm <容器名/ID>删除一个已停止的容器docker rm my-nginx
docker rm $(docker ps -aq)删除所有已停止的容器docker rm $(docker ps -aq)
docker container prune删除所有已停止的容器docker container prune
docker pause/unpause <容器>暂停/恢复容器中的所有进程docker pause my-nginx
2. docker run 常用选项
选项说明示例
-d --detach后台运行容器docker run -d nginx
-it交互模式运行容器 (通常与 /bin/bash 连用)docker run -it ubuntu /bin/bash
--name为容器指定一个名称docker run --name my-web nginx
-p <主机端口>:<容器端口>端口映射docker run -p 8080:80 nginx
-v <主机目录>:<容器目录>挂载数据卷docker run -v /my/data:/app/data nginx
--rm容器停止后自动删除docker run --rm alpine echo "hello"
-e --env设置环境变量docker run -e MY_VAR=value nginx
--network指定容器网络docker run --network=my-net nginx
3. 查看与进入
命令说明示例
docker ps列出正在运行的容器docker ps
docker ps -a列出所有容器(包括已停止的)docker ps -a
docker logs <容器>查看容器日志docker logs my-nginx
docker logs -f <容器>实时追踪(跟随)日志输出docker logs -f my-nginx
docker exec -it <容器> <命令>在运行的容器中执行命令docker exec -it my-nginx /bin/bash
docker inspect <容器/镜像>获取容器/镜像的详细信息(JSON格式)docker inspect my-nginx
docker top <容器>查看容器内运行的进程docker top my-nginx
docker stats实时显示容器资源使用情况(CPU、内存等)docker stats

三、网络 (Network) 相关命令

命令说明示例
docker network ls列出所有网络docker network ls
docker network create <网络名>创建一个新网络docker network create my-app-net
docker network inspect <网络名>查看网络详细信息docker network inspect bridge
docker network connect <网络> <容器>将容器连接到指定网络docker network connect my-net my-nginx
docker network disconnect <网络> <容器>断开容器的网络连接docker network disconnect my-net my-nginx
docker network prune删除所有未使用的网络docker network prune

四、数据卷 (Volume) 相关命令

数据卷用于持久化数据和容器间共享数据。

命令说明示例
docker volume ls列出所有数据卷docker volume ls
docker volume create <卷名>创建一个数据卷docker volume create my-data
docker volume inspect <卷名>查看数据卷详细信息docker volume inspect my-data
docker volume rm <卷名>删除一个数据卷docker volume rm my-data
docker volume prune删除所有未被使用的数据卷docker volume prune

五、文件相关命令

命令说明示例
docker cp [主机文件路径] [容器ID或名称]:[容器内目标路径]从主机复制文件到容器docker cp ./app.py mycontainer:/app/(将主机当前目录的 app.py 复制到容器 mycontainer 的 /app 目录下)
docker cp [容器ID或名称]:[容器内文件路径] [主机目标路径]从容器复制文件到主机docker cp mycontainer:/logs/app.log ./logs/(将容器 mycontainer 的 /logs/app.log 复制到主机当前目录的 logs 目录)
docker exec [容器ID或名称] ls [容器内路径]查看容器内指定路径的文件列表docker exec mycontainer ls /usr/local(查看容器 mycontainer 内 /usr/local 目录下的文件)
docker exec [容器ID或名称] cat [容器内文件路径]查看容器内文件的内容docker exec mycontainer cat /var/log/app.log(查看容器 mycontainer 内 /var/log/app.log 文件的内容)
docker exec [容器ID或名称] mkdir -p [目录路径]在容器内创建目录(-p 确保父目录存在)docker exec mycontainer mkdir -p /data/config(在容器 mycontainer 内创建 /data/config 目录)
docker exec [容器ID或名称] touch [文件路径]在容器内创建文件docker exec mycontainer touch /tmp/test.txt(在容器 mycontainer 内的 /tmp 目录下创建 test.txt 文件)
docker exec [容器ID或名称] rm [文件路径]删除容器内的文件docker exec mycontainer rm /tmp/test.txt(删除容器 mycontainer 内的 /tmp/test.txt 文件)
docker exec [容器ID或名称] rm -r [目录路径]递归删除容器内的目录及内容docker exec mycontainer rm -r /data/config(删除容器 mycontainer 内的 /data/config 目录及其所有内容)
docker exec -it [容器ID或名称] /bin/bash进入容器的交互式终端,可执行各种 Linux 文件操作命令docker exec -it mycontainer /bin/bash(进入容器 mycontainer 后,可使用 cd、cp、mv 等命令操作文件)

六、Docker Compose 常用命令

用于定义和运行多容器 Docker 应用程序。

命令说明示例
docker-compose up创建并启动所有服务(在前台)docker-compose up
docker-compose up -d创建并在后台启动所有服务docker-compose up -d
docker-compose down停止并删除所有容器、网络docker-compose down
docker-compose ps列出所有正在运行的compose服务docker-compose ps
docker-compose logs查看所有服务的日志docker-compose logs
docker-compose logs -f <服务名>实时追踪特定服务的日志docker-compose logs -f web
docker-compose exec <服务名> <命令>在服务的容器中执行命令docker-compose exec db psql -U user
docker-compose build重新构建服务的镜像docker-compose build
docker-compose restart重启所有服务docker-compose restart

六、系统与清理命令

命令说明示例
docker info显示 Docker 系统信息docker info
docker version显示 Docker 版本信息docker version
docker system df查看 Docker 磁盘使用情况docker system df
docker system prune一键清理:删除所有已停止的容器、未使用的网络、悬虚镜像、构建缓存docker system prune
docker system prune -a彻底清理:在上述基础上,额外删除所有未被容器使用的镜像docker system prune -a (慎用!)

实战命令组合示例

  1. 运行一个简单的Web服务并测试

    docker run -d --name my-web -p 80:80 nginx
    curl http://localhost
    
  2. 进入容器进行调试

    docker exec -it my-web /bin/bash
    # 在容器内:
    cat /etc/nginx/nginx.conf
    
  3. 调试容器启动问题

    # 如果容器一直重启,用交互模式启动看看日志
    docker run -it --rm my-failing-app
    
  4. 备份容器内的数据到宿主机

    docker cp my-container:/path/to/data /host/backup/
    
  5. 将本地镜像打包文件

    # 保存 (Save) - 将镜像保存为tar文件(包含所有层的历史)
    docker save -o my-image.tar my-image:tag
    # 加载 (Load) - 从tar文件加载镜像
    docker load -i my-image.tar
    
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐