最近在做项目需要用到docker来部署,学习了一下,基本的操作能熟练使用。现将编写dokerfile的步骤、构建docker镜像、启动服务记录下。
编写Dockerfile
这是实现docker一键部署的起始点和关键所在。简单来说,就是通过一系列dockerfile指令将Python环境、项目所需第三方库、脚本运行等串起来,实现一键操作。所以在本例中我们可编写dockfile文件如下:
#指定python环境
FROM python:3.6-slim-stretch
# 拷贝python依赖库requirements文件到当前目录下
ADD requirements.txt /
#RUN pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 拷贝所有文件到app目录下
ADD . /app
# 指定app工作目录
WORKDIR /app
# 声明端口
EXPOSE 6062
# docker容器启动(多核多线程)
CMD ["gunicorn", "-c", "gunicorn_1.conf", "app:app"]
# 单核启动
#CMD ["python","app.py"]
构建Docker镜像
docker build -t [项目名称]:[版本号] .
例如:
docker build -t p_ocr:1.0.0 .
启动docker
docker run -idt --name ocr -p 6062:6062 p_ocr:1.0.0
具体含义如下
- `docker run`:使用Docker运行容器的命令。
- `-idt`:在容器中后台运行,并为容器分配一个伪终端和一个随机生成的ID。
- `--name ocr`:为容器指定一个名称`ocr`。
- `-p 6062:6062`:将容器内部的端口6062映射到主机的端口6062,方便主机上的应用程序可以访问容器内的OCR服务。
- `p_ocr:1.0.0`:指定要在容器中运行的镜像名称和版本号。