发布时间:2025-01-16 人气:163次
在云计算和微服务盛行的时代,Docker作为一种轻量级的容器化技术,已成为开发、测试及部署应用程序的重要工具。Docker通过封装应用程序及其依赖关系,确保应用在任何环境中都能一致地运行。掌握Docker命令是高效利用Docker的基础。本文将介绍100条Docker核心命令,帮助你深入理解Docker的使用和管理。
一、Docker基础命令
1. docker version:显示Docker客户端和服务器的版本信息。
docker version
2. docker info:显示Docker系统的详细信息,包括容器数量、镜像数量等。
docker info
3. docker --help:显示Docker命令的帮助信息。
docker --help
4. docker images:列出本地所有的Docker镜像。
docker images
5. docker images -a:列出本地所有的Docker镜像(包括中间层镜像)。
docker images -a
6. docker pull [镜像名]:从Docker Hub或其他镜像仓库中拉取镜像。
docker pull ubuntu
7. docker rmi [镜像ID]:删除本地镜像。
docker rmi <image_id>
8. docker rmi -f [镜像ID]:强制删除本地镜像。
docker rmi -f <image_id>
9. docker tag [镜像ID] [新镜像名]:为镜像打标签。
docker tag <image_id> my_ubuntu:latest
10. docker build -t [镜像名] [Dockerfile路径]:根据Dockerfile构建镜像。
docker build -t my_app .
11. docker save -o [文件名] [镜像名]:将镜像保存到文件中。
docker save -o my_image.tar my_app:latest
12. docker load -i [文件名]:从文件中加载镜像。
docker load -i my_image.tar
13. docker history [镜像ID]:显示镜像的历史层。
docker history <image_id>
二、Docker容器管理命令
14. docker run [镜像名]:运行一个新的容器实例。
docker run ubuntu
15. docker run -d [镜像名]:后台运行容器。
docker run -d ubuntu
16. docker ps:列出当前运行的容器。
docker ps
17. docker ps -a:列出所有容器(包括已停止的)。
docker ps -a
18. docker stop [容器ID]:停止运行中的容器。
docker stop <container_id>
19. docker start [容器ID]:启动已停止的容器。
docker start <container_id>
20. docker restart [容器ID]:重启容器。
docker restart <container_id>
21. docker rm [容器ID]:删除容器。
docker rm <container_id>
22. docker rm -f [容器ID]:强制删除容器。
docker rm -f <container_id>
23. docker logs [容器ID]:查看容器的日志。
docker logs <container_id>
24. docker exec -it [容器ID] [命令]:在运行的容器中执行命令。
docker exec -it <container_id> /bin/bash
25. docker attach [容器ID]:连接到正在运行的容器。
docker attach <container_id>
26. docker cp [宿主机文件路径] [容器ID]:[容器文件路径]:将文件从宿主机复制到容器中。
docker cp /path/to/local/file <container_id>:/path/in/container/
27. docker top [容器ID]:查看容器中的进程。
docker top <container_id>
28. docker stats [容器ID]:显示容器的资源使用情况(CPU、内存等)。
docker stats <container_id>
29. docker inspect [容器ID]:查看容器的详细信息。
docker inspect <container_id>
30. docker port [容器ID]:列出容器的端口映射。
docker port <container_id>
三、Docker网络管理命令
31. docker network ls:列出所有Docker网络。
docker network ls
32. docker network create [网络名]:创建一个新的Docker网络。
docker network create my_network
33. docker network rm [网络名]:删除Docker网络。
docker network rm my_network
34. docker network connect [网络名] [容器ID]:将容器连接到网络。
docker network connect my_network <container_id>
35. docker network disconnect [网络名] [容器ID]:将容器从网络中断开。
docker network disconnect my_network <container_id>
36. docker network inspect [网络名]:查看网络的详细信息。
docker network inspect my_network
四、Docker Compose命令
37. docker-compose up:根据docker-compose.yml文件启动服务。
docker-compose up
38. docker-compose up -d:后台启动服务。
docker-compose up -d
39. docker-compose stop:停止服务。
docker-compose stop
40. docker-compose restart:重启服务。
docker-compose restart
41. docker-compose rm:删除服务容器。
docker-compose rm
42. docker-compose down:停止并删除服务容器、网络、卷等。
docker-compose down
43. docker-compose logs:查看服务日志。
docker-compose logs
44. docker-compose ps:列出服务的容器。
docker-compose ps
45. docker-compose config:验证docker-compose.yml文件的配置。
docker-compose config
五、Docker Swarm命令
46. docker swarm init:初始化一个新的Swarm集群。
docker swarm init
47. docker swarm join-token worker:获取加入Swarm集群的工作节点令牌。
docker swarm join-token worker
48. docker swarm join-token manager:获取加入Swarm集群的管理节点令牌。
docker swarm join-token manager
49. docker swarm leave:离开Swarm集群。
docker swarm leave
50. docker swarm leave -f:强制离开Swarm集群(仅适用于非管理节点)。
docker swarm leave -f
51. docker node ls:列出Swarm集群中的节点。
docker node ls
52. docker service create [镜像名]:在Swarm集群中创建服务。
docker service create --name my_service ubuntu
53. docker service ls:列出Swarm集群中的所有服务。
docker service ls
54. docker service rm [服务名]:删除Swarm集群中的服务。
docker service rm my_service
55. docker service update [服务名]:更新Swarm集群中的服务。
docker service update my_service
56. docker service logs [服务名]:查看Swarm集群中服务的日志。
docker service logs my_service
57. docker service scale [服务名]=[副本数]:调整Swarm集群中服务的副本数。
docker service scale my_service=5
六、Docker Volume管理命令
58. docker volume ls:列出所有的Docker卷。
docker volume ls
59. docker volume create [卷名]:创建一个新的Docker卷。
docker volume create my_volume
60. docker volume rm [卷名]:删除Docker卷。
docker volume rm my_volume
61. docker volume inspect [卷名]:查看Docker卷的详细信息。
docker volume inspect my_volume
62. docker volume prune:删除所有未使用的Docker卷。
docker volume prune
七、Docker Secret和Config管理命令
63. docker secret create [secret名] [文件路径]:创建一个Docker secret。
echo "my_secret_data" | docker secret create my_secret -
64. docker secret ls:列出所有的Docker secrets。
docker secret ls
65. docker secret rm [secret名]:删除Docker secret。
docker secret rm my_secret
66. docker config create [config名] [文件路径]:创建一个Docker config。
echo "my_config_data" | docker config create my_config -
67. docker config ls:列出所有的Docker configs。
docker config ls
68. docker config rm [config名]:删除Docker config。
docker config rm my_config
八、Docker镜像仓库管理命令
69. docker login [仓库地址]:登录Docker镜像仓库。
docker login
70. docker logout [仓库地址]:登出Docker镜像仓库。
docker logout
71. docker tag [镜像名] [仓库地址]/[镜像名]:[标签]:为镜像打标签以便推送到仓库。
docker tag my_image:latest myregistrydomain.com/my-namespace/my-image:latest
72. docker push [仓库地址]/[镜像名]:[标签]:推送镜像到仓库。
docker push myregistrydomain.com/my-namespace/my-image:latest
73. docker search [镜像名]:在Docker Hub上搜索镜像。
docker search ubuntu
九、Docker系统级命令
74. docker system df:显示Docker的磁盘使用情况。
docker system df
75. docker system prune:删除所有未使用的数据(镜像、容器、卷和网络)。
docker system prune
76. docker events:获取Docker的实时事件。
docker events
77. docker info --format '{{json .}}':以JSON格式显示Docker系统信息。
docker info --format '{{json .}}'
十、Docker高级命令和技巧
78. docker run --name [容器名] [镜像名]:为容器指定名称。
docker run --name my_container ubuntu
79. docker run -e [环境变量名]=[值] [镜像名]:设置环境变量。
docker run -e MY_VAR=my_value ubuntu
80. docker run --rm [镜像名]:容器运行后自动删除。
docker run --rm ubuntu
81. docker run -p [宿主机端口]:[容器端口] [镜像名]:端口映射。
docker run -p 8080:80 ubuntu
82. docker volume create --driver [存储驱动] [卷名]:指定存储驱动创建卷。
docker volume create --driver local my_volume
83. docker service create --replicas [副本数] [镜像名]:创建指定副本数的服务。
docker service create --replicas 3 my_image
84. docker network create --driver [网络驱动] [网络名]:指定网络驱动创建网络。
docker network create --driver overlay my_network
85. docker run --network [网络名] [镜像名]:指定网络运行容器。
docker run --network my_network ubuntu
86. docker exec -u [用户] [容器ID] [命令]:以指定用户身份在容器中执行命令。
docker exec -u root <container_id> whoami
87. docker run --cap-add=[功能] [镜像名]:为容器添加Linux功能。
docker run --cap-add=NET_ADMIN ubuntu
88. docker run --security-opt [选项]=[值] [镜像名]:设置容器的安全选项。
docker run --security-opt seccomp=unconfined ubuntu
89. docker run --cgroupns=host [镜像名]:使用主机的cgroup命名空间。
docker run --cgroupns=host ubuntu
90. docker run --uts=host [镜像名]:使用主机的UTS命名空间。
docker run --uts=host ubuntu
91. docker run --pid=host [镜像名]:使用主机的PID命名空间。
docker run --pid=host ubuntu
92. docker run --ipc=host [镜像名]:使用主机的IPC命名空间。
docker run --ipc=host ubuntu
93. docker run --network=host [镜像名]:使用主机的网络。
docker run --network=host ubuntu
94. docker run --read-only [镜像名]:以只读模式运行容器。
docker run --read-only ubuntu
95. docker run --tmpfs /mount/point [镜像名]:挂载tmpfs文件系统。
docker run --tmpfs /tmp ubuntu
96. docker run --device=/dev/[设备] [镜像名]:添加宿主机设备到容器中。
docker run --device=/dev/sda:/dev/xvda ubuntu
97. docker run --restart=[策略] [镜像名]:设置容器的重启策略。
docker run --restart=always ubuntu
98. docker service create --log-driver=[日志驱动] [镜像名]:设置服务的日志驱动。
docker service create --log-driver=json-file my_image
99. docker service create --limit-cpu=[值] --limit-memory=[值] [镜像名]:设置服务的资源限制。
docker service create --limit-cpu="0.50" --limit-memory="512M" my_image
100. docker system prune -a --volumes:删除所有未使用的数据,包括卷。
bash docker system prune -a --volumes