发布于 2026-01-05 0 阅读
0

🐳 Docker 命令:从入门到精通,面向 DevOps 工程师

🐳 Docker 命令:从入门到精通,面向 DevOps 工程师

介绍

Docker是一个用于在容器内开发、交付和运行应用程序的平台。它为软件开发和部署提供了一个轻量级、可移植且一致的环境。本指南涵盖了从入门到高级的基本 Docker 命令,帮助 DevOps 工程师有效地管理其容器化应用程序

🎯 关键概念

在深入了解命令之前,让我们先回顾一些 Docker 的基本概念:

  • 镜像:一个轻量级、独立且可执行的软件包,其中包含运行软件所需的一切。
  • 容器:Docker 镜像的运行时实例。
  • Dockerfile:一个包含一系列关于如何构建 Docker 镜像的指令的脚本。
  • Docker Compose:用于定义和运行多容器 Docker 应用程序的工具。

🏁 初级命令

1. 安装

检查 Docker 版本

docker --version
Enter fullscreen mode Exit fullscreen mode

显示已安装的 Docker 版本。

2. Docker镜像

列出 Docker 镜像

docker images
Enter fullscreen mode Exit fullscreen mode

列出本地计算机上的所有 Docker 镜像。

拉取 Docker 镜像

docker pull <image_name>
Enter fullscreen mode Exit fullscreen mode

从镜像仓库(例如 Docker Hub)拉取 Docker 镜像。

移除 Docker 镜像

docker rmi <image_name>
Enter fullscreen mode Exit fullscreen mode

从本地计算机中删除 Docker 镜像。

3. Docker容器

列出正在运行的容器

docker ps
Enter fullscreen mode Exit fullscreen mode

列出所有正在运行的 Docker 容器。

列出所有容器

docker ps -a
Enter fullscreen mode Exit fullscreen mode

列出所有 Docker 容器,包括已停止的容器。

运行容器

docker run -d --name <container_name> <image_name>
Enter fullscreen mode Exit fullscreen mode

以分离模式运行来自 Docker 镜像的容器。

阻止容器

docker stop <container_name>
Enter fullscreen mode Exit fullscreen mode

停止正在运行的 Docker 容器。

启动容器

docker start <container_name>
Enter fullscreen mode Exit fullscreen mode

启动已停止的 Docker 容器。

移除容器

docker rm <container_name>
Enter fullscreen mode Exit fullscreen mode

删除 Docker 容器。

查看容器日志

docker logs <container_name>
Enter fullscreen mode Exit fullscreen mode

显示 Docker 容器的日志。

4. Docker 网络

列出 Docker 网络

docker network ls
Enter fullscreen mode Exit fullscreen mode

列出所有 Docker 网络。

创建 Docker 网络

docker network create <network_name>
Enter fullscreen mode Exit fullscreen mode

创建一个新的 Docker 网络。

将容器连接到网络

docker network connect <network_name> <container_name>
Enter fullscreen mode Exit fullscreen mode

将容器连接到 Docker 网络。

断开容器与网络的连接

docker network disconnect <network_name> <container_name>
Enter fullscreen mode Exit fullscreen mode

断开容器与 Docker 网络的连接。

🚀 中级命令

1. Docker 卷

列出 Docker 卷

docker volume ls
Enter fullscreen mode Exit fullscreen mode

列出所有 Docker 卷。

创建 Docker 卷

docker volume create <volume_name>
Enter fullscreen mode Exit fullscreen mode

创建一个新的 Docker 卷。

移除 Docker 卷

docker volume rm <volume_name>
Enter fullscreen mode Exit fullscreen mode

删除 Docker 卷。

将卷挂载到容器

docker run -d --name <container_name> -v <volume_name>:/path/in/container <image_name>
Enter fullscreen mode Exit fullscreen mode

将 Docker 卷挂载到容器。

2. Docker Compose

安装 Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/<version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Enter fullscreen mode Exit fullscreen mode

安装 Docker Compose。

检查 Docker Compose 版本

docker-compose --version
Enter fullscreen mode Exit fullscreen mode

显示已安装的 Docker Compose 版本。

Docker Compose 文件示例

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: example
Enter fullscreen mode Exit fullscreen mode

使用 Docker Compose 定义多容器应用程序。

运行 Docker Compose

docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

以分离模式运行 Docker Compose 应用程序。

停止 Docker Compose

docker-compose down
Enter fullscreen mode Exit fullscreen mode

停止并移除 Docker Compose 应用程序。

3. Dockerfile

Dockerfile 示例

# Use an official Python runtime as a parent image
FROM python:3.8-slim

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]
Enter fullscreen mode Exit fullscreen mode

为 Python 应用程序定义 Dockerfile。

构建 Docker 镜像

docker build -t <image_name> .
Enter fullscreen mode Exit fullscreen mode

根据 Dockerfile 构建 Docker 镜像。

4. Docker Swarm

初始化 Docker Swarm

docker swarm init
Enter fullscreen mode Exit fullscreen mode

初始化 Docker Swarm。

列出集群节点

docker node ls
Enter fullscreen mode Exit fullscreen mode

列出 Docker Swarm 中的所有节点。

在 Swarm 中部署堆栈

docker stack deploy -c <compose-file> <stack_name>
Enter fullscreen mode Exit fullscreen mode

在 Docker Swarm 中部署堆栈。

从 Swarm 中移除堆栈

docker stack rm <stack_name>
Enter fullscreen mode Exit fullscreen mode

从 Docker Swarm 中移除一个堆栈。

5. Docker 秘籍

创建 Docker Secret

echo "my_secret_value" | docker secret create <secret_name> -
Enter fullscreen mode Exit fullscreen mode

创建一个新的 Docker 密钥。

列出 Docker 密钥

docker secret ls
Enter fullscreen mode Exit fullscreen mode

列出所有 Docker 密钥。

移除 Docker Secret

docker secret rm <secret_name>
Enter fullscreen mode Exit fullscreen mode

删除 Docker 密钥。

🧠 高级命令

1. Docker Inspect

检查 Docker 容器

docker inspect <container_name>
Enter fullscreen mode Exit fullscreen mode

显示有关 Docker 容器的详细信息。

检查 Docker 镜像

docker inspect <image_name>
Enter fullscreen mode Exit fullscreen mode

显示有关 Docker 镜像的详细信息。

2. Docker 统计信息

查看容器统计信息

docker stats <container_name>
Enter fullscreen mode Exit fullscreen mode

显示 Docker 容器的实时统计信息。

3. Docker 事件

查看 Docker 事件

docker events
Enter fullscreen mode Exit fullscreen mode

显示来自 Docker 服务器的实时事件。

4. Docker 导出和导入

出口集装箱

docker export <container_name> -o <file_name>.tar
Enter fullscreen mode Exit fullscreen mode

将 Docker 容器导出到 tar 文件。

导入容器

docker import <file_name>.tar
Enter fullscreen mode Exit fullscreen mode

从 tar 文件导入容器。

5. Docker 保存和加载

保存 Docker 镜像

docker save -o <file_name>.tar <image_name>
Enter fullscreen mode Exit fullscreen mode

将 Docker 镜像保存到 tar 文件。

加载 Docker 镜像

docker load -i <file_name>.tar
Enter fullscreen mode Exit fullscreen mode

从 tar 文件加载 Docker 镜像。

6. Docker Prune

删除未使用的数据

docker system prune
Enter fullscreen mode Exit fullscreen mode

删除未使用的 Docker 数据(镜像、容器、网络、卷)。

7. Docker 上下文

列出 Docker 上下文

docker context ls
Enter fullscreen mode Exit fullscreen mode

列出所有 Docker 上下文。

创建 Docker 上下文

docker context create <context_name>
Enter fullscreen mode Exit fullscreen mode

创建一个新的 Docker 上下文。

使用 Docker 上下文

docker context use <context_name>
Enter fullscreen mode Exit fullscreen mode

切换到特定的 Docker 上下文。

8. Docker 构建工具包

启用 BuildKit

export DOCKER_BUILDKIT=1
docker build -t <image_name> .
Enter fullscreen mode Exit fullscreen mode

启用 Docker BuildKit 以提高构建性能。

📊 最佳实践

使用版本控制

  • 将您的 Dockerfile、Compose 文件和其他配置存储在版本控制系统(例如 Git)中,以便跟踪更改并与团队成员协作。

保持图像轻量级

  • 通过使用多阶段构建和删除不必要的文件和依赖项来最小化 Docker 镜像的大小。

使用标签

  • 使用有意义且特定于版本的标签标记 Docker 镜像,以便轻松识别和管理它们。

安全镜像和容器

  • 扫描您的 Docker 镜像是否存在漏洞,并使用安全最佳实践来保护您的容器。

自动化构建和部署

  • 将 Docker 与 CI/CD 流水线集成,以自动化构建、测试和部署容器化应用程序。

监控和日志

  • 持续监控 Docker 容器并收集日志,以便进行故障排除和性能分析。

使用 Docker Compose 管理多容器应用程序

  • 使用 Docker Compose 定义和管理多容器应用程序,使部署和扩展服务变得更加容易。

定期清理未使用的资源

  • 定期清理未使用的镜像、容器、网络和卷,以释放磁盘空间并保持干净的 Docker 环境。

🚀 结论

对于 DevOps 工程师而言,掌握从入门到高级的 Docker 命令至关重要,这有助于他们高效地管理和自动化容器化应用程序。本指南全面详尽,是您驾驭 Docker 环境的宝贵参考。遵循最佳实践并充分利用这些命令,您可以确保构建强大高效的容器编排环境。

Docker 化愉快! 🎉


感谢阅读我的博客……:)

©版权所有: ProDevOpsGuy

图片

加入我们的Telegram 社群 || 关注我,获取更多DevOps 相关内容。

文章来源:https://dev.to/prodevopsguytech/docker-commands-from-beginner-to-advanced-for-devops-engineers-bb3