Docker 已成为现代开发和运维流程中的核心工具。无论是在开发、测试,还是生产环境,熟练掌握 Docker 命令可以极大提升开发效率,帮助你高效管理容器化应用。本文将介绍 20 个常用的 Docker 命令,让你成为容器管理的高手。
1. docker run —— 启动容器
docker run 是 Docker 中最常用的命令之一,用于从镜像启动一个新容器。你可以通过不同的选项自定义容器的行为。
docker run -it ubuntu bash
常用选项:
- -it :以交互模式启动容器,并连接到终端。
- --name :为容器指定一个自定义名称,方便管理。
- -d :以后台(分离)模式运行容器,适合生产环境。
实战案例:
启动一个 Ubuntu 容器并进入 Bash 终端,执行交互式命令。
2. docker ps —— 查看容器状态
- docker ps:列出当前正在运行的容器。
- docker ps -a:列出所有容器,包括已停止的容器。
docker ps -a
用途:
- docker ps 适用于查看当前正在运行的容器。
- docker ps -a 则可以查看所有容器,包括历史记录,方便调试和管理。
3. docker images —— 查看本地镜像
此命令列出当前 Docker 主机上存储的所有镜像。
docker images
用途:
- 显示镜像的名称、标签、ID 和创建时间。
- 使用 docker image prune 可以清理未使用的镜像,释放磁盘空间。
4. docker pull —— 下载镜像
docker pull 用于从 Docker Hub 或私有镜像仓库下载镜像。
docker pull nginx
用途:
- 下载官方镜像或自定义镜像,支持 Docker Hub 和私有仓库。
5. docker build —— 从 Dockerfile 构建镜像
使用 docker build 命令,根据 Dockerfile 文件构建镜像。
docker build -t my-app .
示例 Dockerfile 配置:
FROM node:14
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "server.js"]
EXPOSE 3000
用途:
- 通过编写 Dockerfile 定义应用环境和构建步骤,使用 docker build 构建镜像。
6. docker exec —— 在容器内执行命令
使用 docker exec 在运行中的容器内执行命令。
docker exec -it container_id bash
用途:
- 进入容器并执行命令,适合调试和交互式操作。
7. docker stop/start/restart —— 启动与停止容器
说明:
- docker stop:停止一个运行中的容器。
- docker start:启动已停止的容器。
- docker restart:启动已停止的容器。
docker stop container_id
docker start container_id
docker restart container_id
用途:
- docker stop 用于停止容器,docker start 则用于重启已停止的容器,适合在开发过程中频繁操作。
8. docker rm —— 删除容器
删除已停止的容器以释放资源。
docker rm container_id
用途:
- 删除不再需要的容器,保持系统清洁。使用 docker rm -f container_id 可以强制删除正在运行的容器。
9. docker rmi —— 删除镜像
删除本地镜像,释放存储空间。
docker rmi image_id
用途:
- 清理不再使用的镜像,避免浪费磁盘空间。
10. docker logs —— 查看容器日志
查看容器的输出日志,帮助调试应用。
docker logs container_id
用途:
- 通过容器日志查看运行错误和状态,快速定位问题。
11. docker network ls —— 查看网络配置
列出 Docker 主机上的所有网络。
docker network ls
用途:
- 管理容器之间的网络通信,帮助你查看和管理 Docker 网络配置。
12. docker-compose up/down —— 管理多容器应用
docker-compose 是管理和启动多个容器应用的工具。
docker compose up -d
docker compose down
docker-compose.yml 示例配置:
services:
web:
image:nginx
ports:
-"8080:80"
app:
build:.
volumes:
-.:/app
ports:
-"3000:3000"
用途:
- docker-compose 是处理多容器应用的利器,docker-compose up 启动所有容器,docker-compose down 停止并删除容器。
13. docker volume ls —— 查看卷
列出所有数据卷,这些卷用于存储容器的数据。
docker volume ls
用途:
- 管理和查看容器的数据存储,保证数据的持久性。
14. docker inspect —— 查看容器或镜像的详细信息
获取容器或镜像的详细配置信息,帮助调试和故障排除。
docker inspect container_id
用途:
- 深入分析容器或镜像的配置,查找问题的根源。
15. docker stats —— 查看容器的实时资源使用
实时查看所有运行中的容器的 CPU、内存、网络等资源使用情况。
docker stats
用途:
- 监控容器资源消耗,帮助优化性能和资源分配。
16. docker update —— 动态更新容器资源限制
在不重启容器的情况下调整容器的资源限制。
docker update --cpus 2 --memory 1g <container_name>
用途:
- 根据需要动态调整容器的资源,帮助提升容器性能。
17. docker commit —— 创建镜像
docker commit 命令允许你将容器的当前状态保存为一个新的镜像。适用于在容器中进行配置更改或安装软件后生成镜像。
docker commit container_id new_image_name
用途:
- 将容器的当前状态保存为一个镜像,方便以后重新部署相同环境。
18. docker cp —— 复制文件或目录
docker cp 用于在容器和主机之间复制文件或目录。
docker cp container_id:/path/to/file /path/on/host
用途:
- 复制容器内部的文件到主机,或者将主机文件复制到容器中,适合快速文件传输。
19. docker save —— 保存镜像为 tar 包
docker save 将镜像保存为 tar 包,方便镜像的备份和传输。
docker save -o my_image.tar image_name
用途:
- 将镜像保存为 tar 文件,便于传输和备份。可以通过 docker load 恢复镜像。
20. docker load —— 从 tar 包加载镜像
docker load 用于从 tar 包中加载镜像,恢复已保存的镜像。
docker load -i my_image.tar
用途:
- 恢复通过 docker save 保存的镜像文件,适合离线部署和备份恢复。
其他建议
- 定期清理未使用的资源:使用 docker system prune 清理未使用的容器、网络、镜像和数据卷,保持系统整洁。
- 查看命令帮助信息:使用 docker command --help 查看每个命令的详细帮助,了解更多选项和用法。
- 命名规范:为容器和镜像使用有意义的名称,便于管理和调试。
通过掌握这些基本命令,你将能大幅提升 Docker 使用效率,更好地管理容器和应用。随着你对 Docker 的深入了解,也能探索更多高级功能,进一步优化容器化应用的性能和稳定性。