下面通过一个简单的 Python Flask 应用示例,详细介绍编写 Dockerfile、创建镜像以及启动容器的完整过程。
步骤 1:准备 Flask 应用代码
首先,创建一个简单的 Flask 应用。在项目根目录下创建 app.py
文件,内容如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Docker!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
接着,创建 requirements.txt
文件,列出应用所需的依赖:
flask
步骤 2:编写 Dockerfile
在项目根目录下创建 Dockerfile
文件,其内容如下:
# 使用 Python 3.9 作为基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制 requirements.txt 文件到工作目录
COPY requirements.txt .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制当前目录下的所有文件到工作目录
COPY . .
# 暴露端口
EXPOSE 5000
# 容器启动时执行的命令
CMD ["python", "app.py"]
步骤 3:构建 Docker 镜像
打开终端,进入项目根目录,执行以下命令来构建 Docker 镜像:
docker build -t my-flask-app:1.0 .
这里的 -t
参数用于为镜像指定标签,my-flask-app:1.0
是镜像的名称和版本号,.
表示使用当前目录下的 Dockerfile
进行构建。构建过程中,Docker 会按照 Dockerfile
中的指令依次执行,最终创建出一个包含 Flask 应用的镜像。
步骤 4:查看构建好的镜像
构建完成后,可使用以下命令查看本地已有的镜像:
docker images
在输出列表中,你应该能看到刚刚构建的 my-flask-app:1.0
镜像。
步骤 5:启动 Docker 容器
使用以下命令启动基于该镜像的容器:
docker run -d -p 5000:5000 my-flask-app:1.0
参数解释:
-d
:表示以守护进程模式运行容器,即容器在后台运行。-p 5000:5000
:将容器内部的 5000 端口映射到宿主机的 5000 端口,这样就可以通过宿主机的 5000 端口访问容器内的 Flask 应用。my-flask-app:1.0
:指定要使用的镜像名称和版本号。
步骤 6:验证应用是否正常运行
打开浏览器,访问 http://localhost:5000
,如果看到 Hello, Docker!
的输出,就说明容器内的 Flask 应用已成功运行。
步骤 7:停止和删除容器
若要停止运行中的容器,可使用以下命令:
docker stop <容器 ID>
其中 <容器 ID>
可通过 docker ps
命令查看。停止容器后,若要删除容器,可执行:
docker rm <容器 ID>
通过以上步骤,你就完成了编写 Dockerfile、创建镜像以及启动容器的整个过程。
评论 (0)