Docker常用命令
Docker常用命令
如果你刚接触Docker,可能对各种命令有些迷茫,甚至觉得它有点“晦涩难懂”。
不过相信我,一旦熟悉了这些命令,你会发现Docker能极大地提升你的开发效率,甚至改变你处理容器化应用的方式。
今天咱们就来一起聊聊Docker里那些你经常会用到的命令。
1. docker --version 或 docker -v
这个命令是你进到Docker世界的第一步。它用来查看你当前安装的Docker版本。记得先确认Docker版本是否最新,避免一些老版本的bug。
docker --version
# 输出: Docker version 20.10.7, build f0df350
2. docker info
如果你对Docker的当前环境配置感兴趣,可以用这个命令来查看系统的信息,比如Docker的版本、容器数、镜像数、存储驱动等。
docker info
<image>
3. docker pull 拉取镜像是Docker的基本操作之一。你可以通过docker pull
命令从Docker Hub或其他镜像仓库下载镜像。例如,如果你想拉取官方的Ubuntu镜像:
docker pull ubuntu
<image_name>
<path>
4. docker build -t 通过docker build
命令,你可以将当前目录下的Dockerfile构建成一个镜像。-t
用来指定镜像名称。
docker build -t myapp:latest .
<image>
5. docker run 使用docker run
命令启动一个容器,并且可以指定一些运行参数,比如端口映射、环境变量等。如果只是想运行一个基础镜像:
docker run ubuntu
如果你想指定端口映射,可以像这样:
docker run -p 8080:80 nginx
6. docker ps
这是最常用的命令之一,docker ps
用来查看当前正在运行的容器。想看到所有容器(包括已停止的),可以加上-a
选项。
docker ps
docker ps -a
<container_id>
/bin/bash
7. docker exec -it 这个命令让你能够进入到一个正在运行的容器中,并且启动一个交互式的bash终端。非常适合调试容器内部的问题。
docker exec -it `<container_id>` /bin/bash
8. docker stop <container_id>
如果容器正在运行,想停止它,你可以使用docker stop
命令。
docker stop `<container_id>`
9. docker start <container_id>
这个命令用来启动一个已经停止的容器。
docker start `<container_id>`
10. docker restart <container_id>
如果你想重启一个容器,可以用docker restart
命令。
docker restart `<container_id>`
<container_id>
11. docker rm 删除容器。如果容器已经停止,可以用这个命令来清理不需要的容器。
docker rm `<container_id>`
<image_id>
12. docker rmi 删除镜像。如果你想要清理掉某些不再需要的镜像,可以使用这个命令。删除镜像之前确保没有容器依赖于它。
docker rmi `<image_id>`
<container_id>
13. docker logs 查看容器的日志信息,尤其当容器出问题时,这个命令能帮你定位问题。
docker logs <container_id>
14. docker volume ls
查看所有的Docker卷(volumes)。Docker的卷用于持久化存储。
docker volume ls
<volume_name>
15. docker volume create 用来创建一个新的Docker卷。卷可以用于存储数据库数据、配置文件等。
docker volume create myvolume
16. docker network ls
列出当前Docker环境下的所有网络。
docker network ls
<network_name>
17. docker network create 用来创建一个新的自定义网络,这样可以让不同容器之间进行更加灵活的通信。
docker network create mynetwork
18. docker-compose up
Docker Compose是一个很方便的工具,它允许你用一个配置文件来定义多个容器的服务,并且一键启动。使用docker-compose up
来启动整个环境。
docker-compose up
19. docker-compose down
停止并删除由docker-compose
启动的所有容器、网络和卷。
docker-compose down
20. docker-compose build
通过docker-compose
重新构建服务所依赖的镜像。
docker-compose build
21. docker images
列出所有的镜像。这个命令能帮你快速查看你本地仓库中的镜像情况。
docker images
22. docker search <image_name>
在Docker Hub上搜索某个镜像。比如你想找一个MySQL的镜像,可以这样做:
docker search mysql
23. docker tag <image_id> <new_image_name>
为现有的镜像添加一个新的标签。这个命令在你需要管理镜像版本时特别有用。
docker tag <image_id> myapp:v1.0
<repository>
:<tag>
24. docker pull 从远程仓库拉取指定标签的镜像。默认情况下会拉取latest
标签,但你也可以显式指定其他标签。
docker pull nginx:1.21
<container_id>`` <new_image_name>
25. docker commit 将一个容器的当前状态保存为一个新的镜像。这个命令对于临时更改非常有用。
docker commit `<container_id>` mynewimage:v2
<container_id|image_id>
26. docker inspect 查看容器或镜像的详细信息。输出的是JSON格式的数据,适合深入分析容器的配置。
docker inspect <container_id>
<container_id>
27. docker diff 查看容器的文件系统差异。也就是容器内的文件系统相比原始镜像有何改变。
docker diff <container_id>
<container_id>
28. docker top 查看容器内正在运行的进程。
docker top <container_id>
<container_id>
29. docker stats 查看容器的实时性能数据,比如CPU、内存、网络等。
docker stats <container_id>
<container_id>
30. docker pause 暂停容器的所有进程。这对于临时冻结容器状态很有用。
docker pause <container_id>
<container_id>
31. docker unpause 恢复被暂停的容器。
docker unpause <container_id>
<container_id>:<path> <host_path>
32. docker cp从容器内复制文件到主机。
docker cp <container_id>:/etc/hosts ./hosts
<host_path> <container_id>:<path>
33. docker cp 从主机复制文件到容器。
docker cp ./hosts <container_id>:/etc/hosts
<image_id>
34. docker history 查看镜像的历史层信息。这个命令对优化镜像大小非常有帮助,能帮助你理解镜像构建过程中的每一层。
docker history <image_id>
<output_file.tar> <image_name>
35. docker save -o 将镜像保存成一个.tar文件,方便镜像的离线传输。
docker save -o myapp.tar myapp:latest
<image_file.tar>
36. docker load -i 从.tar文件中加载镜像。
docker load -i myapp.tar
<container_id> -o <container_name.tar>
37. docker export 将容器的文件系统导出为一个.tar文件。
docker export <container_id> -o mycontainer.tar
<tar_file>
38. docker import 从.tar文件中创建一个镜像。
docker import mycontainer.tar mynewimage:latest
{{.Containers}}
39. docker info --format 通过--format
选项自定义docker info
的输出内容,快速获取你需要的信息。
docker info --format '{{.Containers}}'
40. docker system prune
清理Docker系统中不再需要的
东西(包括未使用的容器、镜像、网络和卷)。这对清理不必要的资源非常有帮助,特别是当你的磁盘空间有限时。
docker system prune
41. docker login
登录Docker Hub(或者你配置的其他仓库)。执行后会要求你输入Docker Hub的用户名和密码。
docker login
42. docker logout
登出Docker Hub。
docker logout
43. docker update
更新容器的配置。比如可以用它来调整容器的资源限制等。
docker update --memory 2g <container_id>
44. docker stats --no-stream
获取容器的实时资源统计信息,--no-stream
选项表示只获取一次。
docker stats --no-stream
{{.ServerVersion}}
45. docker info --format 只获取Docker版本信息,适合用于自动化脚本中。
docker info --format '{{.ServerVersion}}'
46. docker volume prune
删除所有不再使用的卷。
docker volume prune
47. docker network prune
删除所有不再使用的网络。
docker network prune
48. docker container prune
删除所有停止的容器。
docker container prune
49. docker image prune
删除所有未打标签的镜像。
docker image prune
50. docker buildx build
这是一个更高级的命令,用来构建多平台镜像。它允许你在不同架构(比如x86和ARM)上构建镜像。
docker buildx build --platform linux/amd64,linux/arm64 -t mymultiarchimage .
以上这些命令涵盖了从镜像管理到容器操作的基本使用场景。在工作中,Docker确实是开发者的好帮手,熟悉这些命令之后,你会发现自己不仅能轻松管理本地开发环境,还能快速在云平台、CI/CD流程中部署应用。