下面是Docker制作Python运行环境基础镜像的方法步骤的完整攻略。
概述
Docker是一个开源的应用容器引擎,可以实现应用程序的集装箱式打包、快速传输以及跨平台部署等功能。Docker镜像是Docker容器的基础,可以将一个应用程序和其依赖打包为一个独立的、跨平台的镜像。因此,Docker镜像的制作非常重要。本文将分步骤介绍如何制作一个Python运行环境的基础镜像。
首先,我们需要安装Docker。
安装Docker
Docker支持多种操作系统,可以在其官网上找到相应的下载链接。以Ubuntu系统为例,安装Docker的步骤如下:
- 打开终端,使用以下命令安装Docker:
sudo apt-get update
sudo apt-get install docker-ce
- 安装完成后,使用以下命令验证Docker是否正确安装:
sudo docker run hello-world
如果显示以下信息,则说明Docker已经成功安装:
Hello from Docker!
This message shows that your installation appears to be working correctly.
制作基础镜像
接下来,我们将制作一个Python3.8.5的基础镜像。
- 创建一个文件夹,用于存放Dockerfile以及相关文件。在终端中执行以下命令:
mkdir python38-docker
cd python38-docker
- 在该文件夹下创建一个名为Dockerfile的文件,并添加以下内容:
```
# 基础镜像
FROM ubuntu:latest
# 安装Python3
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev && \
cd /usr/local/bin && \
ln -s /usr/bin/python3 python && \
pip3 --no-cache-dir install --upgrade pip
# 设置工作目录
WORKDIR /app
# 复制当前文件夹下的所有文件到工作目录
ADD . /app
# 安装依赖
RUN pip install -r requirements.txt
# 暴露端口
EXPOSE 5000
# 运行命令
CMD ["python", "app.py"]
```
该Dockerfile的作用是:
- 基于ubuntu:latest镜像
- 安装Python3和相关依赖
- 将当前文件夹下的所有文件复制到镜像的/app目录下
- 安装requirements.txt中列出的所有依赖
- 暴露5000端口
- 在容器启动时运行app.py文件
请注意,该Dockerfile仅作为一个示例,你可以根据自己的需要进行修改。
- 在该文件夹下创建一个名为requirements.txt的文件,并添加相关依赖,示例文件内容如下:
Flask==1.1.2
- 执行以下命令,构建基础镜像:
sudo docker build -t python38-docker .
Sending build context to Docker daemon 4.096kB
Step 1/6 : FROM ubuntu:latest
---> a2a15febcdf3
Step 2/6 : RUN apt-get update -y && apt-get install -y python3-pip python3-dev && cd /usr/local/bin && ln -s /usr/bin/python3 python && pip3 --no-cache-dir install --upgrade pip
---> Running in 305fdef5f93f
......
Removing intermediate container 10c1f295d6a2
---> d6f0ab856d8a
Successfully built d6f0ab856d8a
Successfully tagged python38-docker:latest
执行成功后,我们就成功地创建了一个名为python38-docker的Python3.8.5基础镜像。
示例
接下来,我们将使用该基础镜像来创建一个Flask应用程序的容器,并进行部署。
- 创建一个名为app.py的Flask应用程序文件,示例内容如下:
```python
from flask import Flask
app = Flask(name)
@app.route("/")
def hello():
return "Hello World!"
if name == 'main':
app.run(debug=True,host='0.0.0.0')
```
- 在该文件夹下创建另一个名为Dockerfile的文件,添加以下内容:
```
# 基于python38-docker镜像
FROM python38-docker
# 复制当前文件夹下的所有文件到工作目录
ADD . /app
# 暴露端口
EXPOSE 5000
# 运行命令
CMD ["python", "app.py"]
```
该Dockerfile的作用是:
- 基于python38-docker镜像
- 将当前文件夹下的所有文件复制到镜像的/app目录下
- 暴露5000端口
-
在容器启动时运行app.py文件
-
执行以下命令,构建Flask应用程序的镜像:
sudo docker build -t flask-app .
Sending build context to Docker daemon 4.096kB
Step 1/3 : FROM python38-docker
---> d6f0ab856d8a
Step 2/3 : ADD . /app
---> 755fecb7d00f
Step 3/3 : CMD ["python", "app.py"]
---> Running in 5d46d751b611
Removing intermediate container 5d46d751b611
---> 1554c128cb92
Successfully built 1554c128cb92
Successfully tagged flask-app:latest
执行成功后,我们就成功地创建了一个名为flask-app的Flask应用程序镜像。
- 执行以下命令,运行容器:
sudo docker run -p 5000:5000 flask-app
运行成功后,使用浏览器访问http://localhost:5000,即可看到Hello World!的结果。
至此,我们已经成功地制作了一个Python运行环境基础镜像,并使用该镜像创建了一个Flask应用程序的容器。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker制作Python运行环境基础镜像的方法步骤 - Python技术站