您的位置:

Docker 安装详解

一、Docker 是什么

Docker 是一个基于 Linux 的容器引擎,它可以让开发者打包、发布和运行分布式应用程序。

容器是一个轻量级、可移植和自包含的软件单元,它可以在不同的环境中运行,而不需要针对每个环境编写代码。Docker 使用容器作为应用程序的打包和分发方式。

使用 Docker,您可以创建镜像,其包含应用程序及其所有运行时依赖项。然后,您可以轻松地将镜像部署到任何支持 Docker 的环境中。

二、Docker 安装

1. 在Linux上安装 Docker

在 Linux 上安装 Docker 非常简单。只需要执行命令依次安装即可:

sudo apt-get update 
sudo apt-get install docker.io

在安装完成后,您需要将用户添加到 Docker 用户组中:

sudo usermod -aG docker $USER

注销并重新登录后,您就可以使用 Docker 了。

2. 在 Windows 上安装 Docker

在 Windows 上安装 Docker 需要使用 Docker Desktop。Docker Desktop 可以在 Windows 的 Hyper-V 虚拟机中运行 Linux 容器。

您需要执行以下步骤来在 Windows 上安装 Docker:

  1. 下载并安装 Docker Desktop。
  2. 启用 Windows 上的 Hyper-V。
  3. 启用 BIOS 中的虚拟化选项。
  4. 设置 Docker Engine 资源限制。

安装完成后,您可以使用 Docker。

3. 在 macOS 上安装 Docker

在 macOS 上安装 Docker 需要使用 Docker Desktop for Mac。

您需要执行以下步骤来在 macOS 上安装 Docker:

  1. 下载并安装 Docker Desktop for Mac。
  2. 启用 macOS 上的 HyperKit 虚拟化。
  3. 将 Docker Desktop 添加到您的应用程序文件夹中。

安装完成后,您可以使用 Docker。

三、使用 Docker

1. 创建 Docker 镜像

创建 Docker 镜像通常需要基于一个 Dockerfile 文件,该文件对应应用程序的依赖项和配置进行定义。以 Python 为例,下面是一个简单的 Dockerfile:

FROM python:3
WORKDIR /app
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt
COPY . /app
CMD ["python", "app.py"]

在运行此 Dockerfile 后,您将获得一个包含 Python 应用程序的镜像。

2. 运行 Docker 容器

您可以使用以下命令运行 Docker 容器:

docker run <镜像名称>

例如,使用以下命令可以启动一个默认的 Nginx 容器:

docker run nginx

3. Docker 容器管理

以下是一些常用的 Docker 容器管理命令:

  • docker ps:查看运行中的 Docker 容器。
  • docker stop <容器 ID>:停止运行中的 Docker 容器。
  • docker start <容器 ID>:启动已停止的 Docker 容器。
  • docker rm <容器 ID>:删除 Docker 容器。
  • docker images:查看所有本地 Docker 镜像。
  • docker rmi <镜像名称>:删除 Docker 镜像。

四、Docker 实战

1. 使用 Docker 部署 Flask 应用程序

以下是一个简单的示例,演示如何使用 Docker 部署一个 Flask 应用程序:

  1. 创建一个名为 Dockerfile 的文件。
  2. 使用以下 Dockerfile 创建一个 Python 环境并安装 Flask 应用程序:
FROM python:3
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . /app
EXPOSE 8080
CMD ["python", "app.py"]
  • FROM:指定使用哪个基础镜像。
  • COPY:将应用程序复制到 Docker 容器中。
  • RUN:在容器中运行命令。
  • EXPOSE:在容器中公开端口。
  • CMD:指定容器启动的默认命令。
  1. 使用以下命令构建 Docker 镜像:
docker build -t <your-dockerhub-username>/flaskapp:v1 .
  1. 使用以下命令运行 Docker 容器:
docker run -p 8080:8080 <your-dockerhub-username>/flaskapp:v1

现在,您可以通过浏览器访问 http://localhost:8080 来查看 Flask 应用程序。

2. 使用 Docker 部署多个微服务应用程序

以下是一个简单的示例,演示如何使用 Docker 部署多个微服务应用程序:

  1. 使用以下 Dockerfile 创建第一个应用程序:
FROM python:3
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY app1 /app
EXPOSE <app1-port>
CMD ["python", "app1.py"]
  • COPY:将应用程序复制到 Docker 容器中。
  • EXPOSE:在容器中公开端口。
  • CMD:指定容器启动的默认命令。
  1. 使用以下 Dockerfile 创建第二个应用程序:
FROM python:3
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY app2 /app
EXPOSE <app2-port>
CMD ["python", "app2.py"]
  • COPY:将应用程序复制到 Docker 容器中。
  • EXPOSE:在容器中公开端口。
  • CMD:指定容器启动的默认命令。
  1. 使用以下命令构建 Docker 镜像:
docker build -t <your-dockerhub-username>/app1:v1 -f Dockerfile.app1 .
docker build -t <your-dockerhub-username>/app2:v1 -f Dockerfile.app2 .
  1. 使用以下命令运行 Docker 容器:
docker run -p <app1-port>:<app1-port> <your-dockerhub-username>/app1:v1
docker run -p <app2-port>:<app2-port> <your-dockerhub-username>/app2:v1

现在,您已经成功地使用 Docker 部署了多个微服务应用程序。