Docker 入门:使用 Docker 运行你的应用

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

什么是 Docker?

Docker 使用 Linux 容器(LXC)技术,将软件运行所需的代码和运行环境打包到一个可移植的容器中,与宿主机系统及其他容器相隔离。Docker 容器可以运行在任何支持 Docker 的机器上,实现“一次构建,到处运行”。

安装 Docker

在开始之前,你需要在你的机器上安装 Docker。以下是在 Ubuntu 系统上的安装命令:

sudo apt-get update
sudo apt-get install docker.io
  • 1.
  • 2.

运行你的第一个 Docker 容器

安装完成后,你可以运行你的第一个 Docker 容器。Docker Hub 上有大量的预构建镜像,你可以直接使用它们。以下是运行一个简单的 hello-world 镜像的命令:

docker run hello-world
  • 1.

这个命令会从 Docker Hub 下载 hello-world 镜像,并运行它。你应该会看到一条欢迎信息。

创建 Dockerfile

Dockerfile 是一个文本文件,包含了一系列的指令和参数,用于自动化构建 Docker 镜像。以下是一个简单的 Dockerfile 示例:

# 使用官方的 Python 运行时作为父镜像
FROM python:3.8-slim-buster

# 设置工作目录
WORKDIR /app

# 将当前目录内容复制到位于 /app 的容器中
COPY . /app

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

# 暴露端口
EXPOSE 5000

# 运行应用
CMD ["python", "app.py"]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

这个 Dockerfile 定义了一个使用 Python 3.8 运行时的镜像,并设置了工作目录、复制了当前目录的内容、安装了依赖、暴露了端口,并定义了运行命令。

构建 Docker 镜像

使用以下命令构建 Docker 镜像:

docker build -t my-python-app .
  • 1.

这会根据 Dockerfile 中的指令构建一个名为 my-python-app 的 Docker 镜像。

运行 Docker 镜像

使用以下命令运行你刚刚构建的 Docker 镜像:

docker run -p 5000:5000 my-python-app
  • 1.

这会启动一个容器,并将容器的 5000 端口映射到宿主机的 5000 端口。

停止容器

使用以下命令停止正在运行的容器:

docker stop <container_id>
  • 1.

清理

使用以下命令清理不再需要的镜像和容器:

docker system prune
  • 1.

甘特图

以下是使用 Docker 构建和运行应用的甘特图:

Docker 构建和运行流程 2024-01-10 2024-01-11 2024-01-12 2024-01-13 2024-01-14 2024-01-15 2024-01-16 2024-01-17 2024-01-18 2024-01-19 构建 Docker 镜像 停止 Docker 容器 运行 Docker 容器 构建 运行 Docker 构建和运行流程

结论

Docker 提供了一个简单、一致且可移植的方式来打包和运行应用。通过使用 Docker,你可以确保你的应用在不同环境中的一致性,并且可以轻松地在不同的环境中迁移和扩展。希望这篇文章能帮助你开始使用 Docker,并理解它的基本概念和操作。