下面我将提供一个完整的攻略,教会你如何用 Docker 部署一个 Python 应用。
第一步:安装 Docker
首先,你需要在你的机器上安装 Docker。在这里,我提供两种安装方式。
方式一:通过官方安装脚本进行安装
可以通过 Docker 官方网站提供的安装脚本进行安装。在终端中输入以下命令:
curl -sSL https://get.docker.com/ | sh
方式二:通过系统包管理器进行安装
如果你的系统包管理器支持 Docker 的安装,你可以通过以下命令进行安装。
- Debian/Ubuntu
sudo apt install docker.io
- Fedora/CentOS
sudo yum install docker
第二步:创建 Python 应用
在这里,我提供两个简单的 Python 应用示例,分别是 Flask 和 Django。你可以选择其中一个示例进行部署测试。
示例一:Flask 应用
首先,创建一个名为 app.py
的 Python 文件,内容如下所示:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
示例二:Django 应用
首先,使用 pip
安装 Django:
pip install django
然后,使用以下命令创建一个名为 myproject
的 Django 项目:
django-admin.py startproject myproject
第三步:创建 Dockerfile
创建一个名为 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"]
注意事项:
FROM python:3
:指定所使用的 Docker 镜像。WORKDIR /app
:在镜像中指定一个工作目录,后续命令将在该目录中执行。COPY requirements.txt /app
:将当前目录下的requirements.txt
文件复制到镜像中的/app
目录下。RUN pip install --no-cache-dir -r requirements.txt
:安装requirements.txt
中指定的 Python 依赖。COPY . /app
:将当前目录下的所有文件复制到镜像中的/app
目录下。CMD ["python", "app.py"]
:定义启动容器时的默认命令。在本例中,启动 Flask 应用。
第四步:构建 Docker 镜像
构建 Docker 镜像的命令格式为:
docker build -t 镜像名称:标签名 Dockerfile所在目录
其中:
-t
:指定镜像名称及标签名。Dockerfile所在目录
:指定 Dockerfile 所在目录。
在命令行中,输入如下命令构建 Docker 镜像:
docker build -t python-flask:1.0 .
结果如下:
Sending build context to Docker daemon 3.072kB
Step 1/6 : FROM python:3
3: Pulling from library/python
4887bbd9c55d: Pull complete
e00ff76bdc00: Pull complete
1f0443b146d9: Pull complete
b5d25a4aebef: Pull complete
2e3c11856f0a: Pull complete
63d3f75d4f54: Pull complete
e6ddbe5e0f47: Pull complete
Digest: sha256:d6ba834570f4a1cfc76cdb5fe1fc46b9bcc8e62a7fa453ca3c44024bfd5deb91
Status: Downloaded newer image for python:3
---> 6f8cb0449612
Step 2/6 : WORKDIR /app
---> Running in 2b22d0c985b9
Removing intermediate container 2b22d0c985b9
---> 9934fdb76f8d
Step 3/6 : COPY requirements.txt /app
---> 34b1d5c0b7f9
Step 4/6 : RUN pip install --no-cache-dir -r requirements.txt
---> Running in f7225df3f040
Collecting Flask
Downloading Flask-1.0.2-py2.py3-none-any.whl (91 kB)
Collecting Werkzeug>=0.14
Downloading Werkzeug-0.14.1-py2.py3-none-any.whl (322 kB)
Collecting Jinja2>=2.10
Downloading Jinja2-2.10-py2.py3-none-any.whl (126 kB)
Collecting click>=5.1
Downloading click-7.0-py2.py3-none-any.whl (81 kB)
Collecting itsdangerous>=0.24
Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Installing collected packages: Werkzeug, Jinja2, click, itsdangerous, Flask
Successfully installed Flask-1.0.2 Jinja2-2.10 Werkzeug-0.14.1 click-7.0 itsdangerous-1.1.0
Removing intermediate container f7225df3f040
---> 03f5b859c654
Step 5/6 : COPY . /app
---> 4913cb673e50
Step 6/6 : CMD ["python", "app.py"]
---> Running in 47a8c30c70d7
Removing intermediate container 47a8c30c70d7
---> 7b0e4269d7d5
Successfully built 7b0e4269d7d5
Successfully tagged python-flask:1.0
第五步:运行 Docker 容器
执行以下命令启动容器:
docker run -p 5000:5000 python-flask:1.0
其中:
-p 5000:5000
:将 docker 容器的 5000 端口映射到宿主机的 5000 端口。
在命令行中输入如下命令:
docker run -p 5000:5000 python-flask:1.0
结果如下:
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
在浏览器中输入 http://localhost:5000
,可以看到以下界面:
Hello, World!
以上就是使用 Docker 部署一个 Python 应用的完整攻略。这里提供了一个 Flask 应用的示例,同样的,你也可以通过上述步骤进行一个 Django 应用的部署。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:5分钟教会你用Docker部署一个Python应用 - Python技术站