De la cuenta pública: AirPython
Hay algunos puntos débiles al implementar proyectos en máquinas físicas tradicionales o servidores en la nube
Por ejemplo: implementación lenta del proyecto, desperdicio de recursos, migración difícil y baja expansión
Las ventajas de usar Docker para implementar proyectos incluyen:
-
Uso eficiente de los recursos del sistema.
-
Los servicios comienzan más rápido
-
Entorno consistente, migración más fácil
Este artículo presentará el proceso general de Docker para implementar un proyecto de Python.
1. Archivo de descripción de Dockerfile
Dockerfile es un archivo de descripción ubicado en el directorio raíz del proyecto, que se puede usar para crear una imagen basada en este archivo usando los comandos de Docker.
Los comandos comunes incluyen:
-
DE
Se utiliza para definir la imagen base.
-
MANTENEDOR
Especifique la información del mantenedor, puede omitirla
-
CORRER
Vinculado con el " comando de instalación " , se puede utilizar para instalar dependencias de herramientas
-
AGREGAR
Descomprimir los archivos del host
-
COPIAR
Igual que el comando ADD, pero sin descompresión
-
DIR.TRABAJO
Se utiliza para cambiar el directorio de trabajo
-
VOLUMEN
Configurar la asignación de directorios entre el host y el contenedor
-
EXPONER
Configure el número de puerto expuesto por el proyecto en el contenedor
-
CMD
Especifica el comando que se ejecutará después de que se inicie el contenedor.
Por ejemplo, puede ejecutar un comando para iniciar el proyecto
2. Luchemos
El proceso general para implementar una aplicación con Docker es:
-
Desarrollar el proyecto y probarlo localmente
-
Escriba Dockerfile y colóquelo en el directorio raíz del proyecto
-
archivo de imagen del paquete
-
Ejecutar el contenedor de imágenes
-
prueba
Para la conveniencia de la demostración, aquí hay un proyecto Flask simple como ejemplo para explicar
2-1 Desarrollo de proyectos
from flask import Flask
# 安装依赖
# pip3 install -U flask
app = Flask(__name__)
@app.route('/')
def index():
return "测试容器部署!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8888)
# 浏览器访问测试
# http://127.0.0.1:8888/
El desarrollo del proyecto se completa y el archivo Dockerfile se puede escribir después de pasar la prueba local.
2-2 Escribir Dockerfile
En el directorio raíz del proyecto, cree un archivo Dockerfile y escriba el script de descripción siguiendo las instrucciones anteriores.
Cabe señalar que el número de puerto expuesto por el comando "EXPOSE" aquí es consistente con el número de puerto definido por el archivo de entrada
# Dockerfile
FROM centos:7.9.2009
RUN yum makecache fast;
RUN yum install python3-devel python3-pip -y
RUN pip3 install -i https://pypi.douban.com/simple flask
COPY main.py /opt
WORKDIR /opt
EXPOSE 8888
CMD ["python3","main.py"]
2-3 Construye la imagen
# 在当前文件夹下,根据Dockerfile文件构建一个镜像
# 镜像名称:xag/my_flask_web
# --no-cache:不使用旧的缓存进行镜像构建
docker build --no-cache -t "xag/my_flask_web" .
2-4 Ejecute el contenedor de imágenes
Use el comando docker run para ejecutar un contenedor basado en la imagen
en
-
-d: Representa el contenedor para ejecutarse en segundo plano, no basado en el primer plano
-
--name: el alias utilizado para ejecutar el contenedor
-
-p: se utiliza para configurar la asignación de puertos entre el host y el contenedor
# -d:后台运行
# 宿主机(9999)映射容器内的8888(上面Dockerfile已经暴露了8888端口)
docker run -d --name flask_web -p 9999:8888 xag/my_flask_web
2-5 Pruébalo
Finalmente, en el navegador, acceda al proyecto a través del número de puerto 9999 expuesto por el host
Dirección de acceso: http://127.0.0.1:9999/
3. Resumen
El artículo describe el proceso general de implementación de un proyecto usando Docker con un proyecto web simple
De hecho, Dockerfile es muy flexible, también admite ARG/ENV para establecer variables de entorno, instrucciones VOLUME para montar directorios, ENTRYPOINT para configurar programas y parámetros de inicio, etc.
https://docs.docker.com/engine/reference/builder/