下面是部署维护docker环境的详细教程:
一、安装docker
1.1 安装docker
Docker是一种轻量级的虚拟化技术,可以通过APP Store或官网下载安装,本教程以在Ubuntu系统下安装Docker为例,命令如下:
sudo apt-get update
sudo apt-get install docker.io
1.2 配置docker
为了避免每次使用docker命令时都需要输入sudo,我们可以将用户添加到docker组:
sudo gpasswd -a $USER docker
配置完成后需要注销并重新登录才能生效。
二、使用docker
2.1 制作一个docker镜像
制作镜像需要编写一个基础的Dockerfile,以下是一个简单的例子,该Dockerfile用于制作一个基于Ubuntu 18.04的Python 3.7 执行环境的镜像:
# 设置基础镜像
FROM ubuntu:18.04
# 设置环境变量
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# 更新apt-get源
RUN apt-get update && \
apt-get install -y python3-pip && \
apt-get install -y python3.7-dev
# 安装Python库
COPY requirements.txt /src/requirements.txt
RUN pip3 install -r /src/requirements.txt
# 设置工作目录
WORKDIR /src
# 启动应用
CMD python3 app.py
在Dockerfile所在目录下执行以下命令进行构建:
docker build -t my-python-app .
2.2 启动一个docker容器并连接到它
使用以下命令启动容器并连接到其中:
docker run -it --rm my-python-app bash
其中-it
参数代表使用交互式tty, --rm
代表退出容器后自动删除,my-python-app
为刚刚构建的镜像名称,bash
表示连接进入容器后执行bash命令。
2.3 进行容器管理
docker ps command可以列出当前正在运行的容器。以下是查看当前正在运行的容器及其id的命令:
docker ps -a
要停止在容器中运行的应用程序,需要知道docker容器的ID或名称,使用以下命令:
docker stop container_id_or_name
下面是一个完整的示例说明:
三、示例
3.1 一个使用docker的Flask web应用程序
以下是一个简单的Flask web应用程序,它的目录结构如下所示:
.
├── app.py
├── Dockerfile
└── requirements.txt
其中Dockerfile内容如前所述,app.py的代码如下:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
name = request.form.get('name')
return 'Hello World, %s!' % name
return '''
<form method="POST">
<label for="name">Enter your name:</label>
<input type="text" id="name" name="name"/>
<input type="submit"/>
</form>
'''
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
在该应用程序的根目录运行以下命令制作并启动docker容器:
docker build -t my-flask-app .
docker run -it --rm -p 5000:5000 my-flask-app
然后,用浏览器访问http://localhost:5000
,输入名字并提交,就会看到“Hello World, xxx”的返回值。
3.2 一个使用docker的爬虫应用程序
以下是一个简单的Python爬虫应用程序,它可以使用docker镜像来运行:
.
├── Dockerfile
└── scrapy.cfg
└── myspider
├── __init__.py
├── items.py
├── pipelines.py
├── settings.py
├── spiders
│ ├── __init__.py
│ └── quotes_spider.py
└── utils.py
其中Dockerfile如下:
FROM python:3.6-slim
COPY ./myspider/requirements.txt /myspider/requirements.txt
WORKDIR /myspider
RUN pip install --upgrade pip && \
pip install -r requirements.txt && \
python -c "import nltk; nltk.download('stopwords')"
COPY ./myspider /myspider/
CMD ["scrapy","crawl","quotes"]
在Dockerfile所在目录运行以下命令制作镜像,并启动docker容器:
docker build -t my-scrapy-app .
docker run -it --rm my-scrapy-app
这将启动scrapy爬虫并开始抓取数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:部署维护docker环境的详细教程 - Python技术站