20 个 Docker 基本命令,让你成为更好的开发者

云计算 云原生
通过掌握这些基本命令,你将能大幅提升 Docker 使用效率,更好地管理容器和应用。随着你对 Docker 的深入了解,也能探索更多高级功能,进一步优化容器化应用的性能和稳定性。​

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 保存的镜像文件,适合离线部署和备份恢复。

其他建议

  1. 定期清理未使用的资源:使用 docker system prune 清理未使用的容器、网络、镜像和数据卷,保持系统整洁。
  2. 查看命令帮助信息:使用 docker command --help 查看每个命令的详细帮助,了解更多选项和用法。
  3. 命名规范:为容器和镜像使用有意义的名称,便于管理和调试。

通过掌握这些基本命令,你将能大幅提升 Docker 使用效率,更好地管理容器和应用。随着你对 Docker 的深入了解,也能探索更多高级功能,进一步优化容器化应用的性能和稳定性。

责任编辑:武晓燕 来源: 萌哦科技
相关推荐

2023-03-27 23:57:25

JavaScrip开发技巧

2020-03-31 09:47:04

Vue开发代码

2022-06-08 08:55:15

JavaScript代码前端

2022-12-07 15:01:47

2017-02-10 12:02:39

Node开发者

2022-06-23 09:22:57

Vue技巧前端

2024-02-28 07:48:05

Rust项目框架

2014-12-09 15:51:31

Android LAPI

2023-10-08 13:59:56

Git开发

2012-06-20 15:01:25

iOS开发

2013-04-10 09:35:22

程序员

2013-09-02 14:56:02

开发者工具前段工具后端工具

2023-12-06 17:57:07

开发云服务

2017-10-17 16:03:16

前端Web开发者终端命令

2014-12-31 11:11:52

DockerDocker基本命令

2011-04-21 13:02:29

2013-07-15 13:42:25

开发移动应用

2015-10-27 09:36:31

Web开发者理由

2012-03-28 15:05:34

应用开发移动应用

2023-06-27 17:42:24

JavaScript编程语言
点赞
收藏

51CTO技术栈公众号