Docker 使用教程:从安装到实践

Docker 是一款开源的容器化平台,它能够帮助开发者打包、发布和运行应用程序。通过 Docker,我们可以将应用程序及其所有依赖项封装在一个独立的容器中,使其可以在任何环境中一致地运行。本教程将详细介绍 Docker 的安装和基础使用,帮助你快速上手。


一、Docker 安装

Docker 支持多种操作系统,如 Linux、macOS 和 Windows。接下来,我们分操作系统讲解如何安装 Docker。

1.1 在 Linux 上安装 Docker

步骤 1:更新系统软件包

打开终端,输入以下命令来更新系统包管理器:

sudo apt-get update

步骤 2:安装必要的依赖

运行以下命令以安装所需的包:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

步骤 3:添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

步骤 4:添加 Docker 仓库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

步骤 5:安装 Docker

更新包列表并安装 Docker:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

步骤 6:启动 Docker 服务

sudo systemctl start docker
sudo systemctl enable docker

步骤 7:验证安装是否成功

sudo docker --version

如果成功安装,终端将返回 Docker 版本信息。

1.2 在 macOS 上安装 Docker

在 macOS 上,安装 Docker 可以通过 Docker Desktop 应用程序进行。以下是具体步骤:

步骤 1:下载 Docker Desktop

访问 Docker 官网 下载适用于 macOS 的 Docker Desktop。

步骤 2:安装 Docker Desktop

下载完成后,打开安装包并按照提示拖动 Docker 图标到“应用程序”文件夹中。

步骤 3:启动 Docker

在应用程序文件夹中找到 Docker 并启动。在 Docker 启动时,顶部菜单栏会显示一个 Docker 图标,表示 Docker 已经成功运行。

步骤 4:验证安装是否成功

打开终端,运行以下命令:

docker --version

如果返回 Docker 版本信息,则安装成功。

1.3 在 Windows 上安装 Docker

在 Windows 上,Docker Desktop 是最方便的安装方式。

步骤 1:下载 Docker Desktop

访问 Docker 官网 下载适用于 Windows 的 Docker Desktop。

步骤 2:安装 Docker Desktop

下载后运行安装程序,并按照提示完成安装。在安装过程中,Docker Desktop 会要求启用 WSL 2(Windows Subsystem for Linux 2),确保勾选相关选项。

步骤 3:启动 Docker

安装完成后,启动 Docker Desktop。首次启动可能会要求进行一些配置,按照提示完成即可。

步骤 4:验证安装是否成功

打开 PowerShell 或 CMD,运行以下命令:

docker --version

如果输出 Docker 版本信息,说明安装成功。


二、Docker 基础使用

Docker 安装完成后,我们可以开始使用 Docker 的核心功能。以下是一些常用的 Docker 命令和示例,帮助你快速上手。

2.1 运行第一个 Docker 容器

我们将运行一个简单的 Hello World 容器,这是验证 Docker 是否正常工作的好方法。

docker run hello-world

运行后,Docker 将从 Docker Hub 拉取 hello-world 镜像,创建一个容器并运行它。你应该会看到类似以下的输出:

Hello from Docker!
This message shows that your installation appears to be working correctly.

2.2 Docker 基本命令

1. 拉取镜像

Docker Hub 是一个存储和共享 Docker 镜像的中心。你可以从 Docker Hub 上拉取镜像:

docker pull <镜像名>

例如,拉取官方的 nginx 镜像:

docker pull nginx

2. 列出镜像

列出本地存储的所有 Docker 镜像:

docker images

3. 运行容器

使用镜像运行容器:

docker run <镜像名>

例如,运行一个 nginx 容器:

docker run -d -p 8080:80 nginx

-d 表示后台运行容器,-p 8080:80 表示将宿主机的 8080 端口映射到容器内的 80 端口。

你可以在浏览器中访问 http://localhost:8080,看到 Nginx 欢迎页面。

4. 列出正在运行的容器

查看当前运行的容器:

docker ps

5. 停止容器

停止运行中的容器:

docker stop <容器ID或名称>

例如,停止 Nginx 容器:

docker stop <container_id>

6. 删除容器

删除一个停止的容器:

docker rm <容器ID或名称>

7. 删除镜像

删除一个镜像:

docker rmi <镜像ID或名称>

2.3 Dockerfile 简介

Dockerfile 是用于构建自定义镜像的文件,包含了镜像构建的所有步骤。以下是一个简单的 Dockerfile 示例:

# 使用官方的 Python 镜像作为基础
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录下的所有文件到容器的 /app 目录
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 设置启动命令
CMD ["python", "app.py"]

使用 Dockerfile 构建镜像

在包含 Dockerfile 的目录下,运行以下命令来构建镜像:

docker build -t my-python-app .

-t my-python-app 为镜像命名,. 表示 Dockerfile 所在的当前目录。

构建成功后,使用以下命令运行镜像生成的容器:

docker run my-python-app

2.4 Docker Compose 简介

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。你可以使用 docker-compose.yml 文件来配置服务,并通过一个命令启动这些服务。

Docker Compose 示例

以下是一个简单的 docker-compose.yml 示例,定义了一个运行 Nginx 和 Redis 的应用:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  redis:
    image: redis

使用以下命令启动所有服务:

docker-compose up

使用 Ctrl+C 可以停止服务,使用 docker-compose down 完全关闭并移除容器。


三、总结

通过本教程,你已经掌握了从 Docker 安装到运行第一个容器的基本流程,以及 Docker 的核心命令和工具如 Dockerfile 和 Docker Compose。Docker 作为现代开发环境中重要的一部分,可以极大提高应用的可移植性和一致性。掌握 Docker,能够帮助你更轻松地管理开发、测试和生产环境中的应用程序。

Docker 的世界非常广阔,未来你可以探索更多高级功能,如 Docker 网络、数据卷、容器编排等。希望本教程能为你打开 Docker 的大门,开始你的容器化之旅!