在本章节中,我们将通过一个简单的“Hello World”示例来介绍 Docker 的基本概念和使用方法。这个示例将帮助你理解容器化的基本原理,并且学会如何创建、运行、停止和删除 Docker 容器。
在开始之前,请确保你的系统上已经安装了 Docker。你可以根据你使用的操作系统来参考前文选择相应的安装方式。
创建一个简单的 Dockerfile
Dockerfile 是用于自动化构建 Docker 镜像的脚本文件。让我们从一个简单的“Hello World”程序开始:
- 在你选择的目录中创建一个新的文件夹,例如
hello-world。 - 在该文件夹中创建一个名为
Dockerfile的新文件。注意文件名是区分大小写的,并且没有文件扩展名。
编辑 Dockerfile 文件,添加以下内容:
// www.javascriptcn.com code example # 使用官方的 Python 基础镜像 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 将当前目录下的所有文件复制到容器的 /app 目录下 COPY . /app # 安装所需的依赖包 RUN pip install flask # 暴露容器的 5000 端口 EXPOSE 5000 # 启动应用 CMD ["python", "app.py"]
这个 Dockerfile 定义了一个基于 Python 3.9 的镜像,并且包含了一个简单的 Flask 应用。我们将在稍后的步骤中运行它。
编写一个简单的 Flask 应用
在同一目录下创建一个名为 app.py 的文件,内容如下:
// www.javascriptcn.com code example
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)这个简单的 Flask 应用会在根路径 / 返回 “Hello, World!” 字样。
构建 Docker 镜像
打开终端或命令提示符,切换到包含 Dockerfile 的目录,然后运行以下命令来构建 Docker 镜像:
docker build -t hello-world .
这里的 -t 参数用于指定镜像的名称(这里是 hello-world),. 表示 Dockerfile 所在的目录。
运行 Docker 容器
构建完镜像后,可以使用以下命令来启动一个新的容器:
docker run -d -p 4000:5000 hello-world
这里 -d 参数表示容器将以分离模式(后台运行),-p 4000:5000 将主机的 4000 端口映射到容器的 5000 端口。这样我们就可以通过访问 http://localhost:4000 来查看应用的输出了。
验证运行结果
打开浏览器并访问 http://localhost:4000,你应该能看到页面上显示 “Hello, World!” 的字样。
停止和删除容器
如果想要停止正在运行的容器,可以先找到容器的 ID 或名称:
docker ps
这会列出所有正在运行的容器。假设容器的 ID 或名称为 my_container,那么可以使用以下命令来停止它:
docker stop my_container
停止后,如果想彻底清理掉这个容器,可以使用以下命令:
docker rm my_container
此外,如果你不再需要这个镜像,也可以通过以下命令来删除它:
docker rmi hello-world
总结
通过以上步骤,我们已经成功地创建并运行了一个简单的 Flask 应用,并将其容器化。这只是一个起点,Docker 提供了许多强大的功能,如网络配置、数据卷、多阶段构建等,可以帮助你在更复杂的项目中实现高效的开发和部署流程。