python+docker

部署方式:python3.6(镜像)+mysql5.6(镜像)+docker
部署详细步骤:
1.编写docker配置文件:Dockerfile和docker-compose.yml
Dockerfile是环境配置文件,在docker-compose.yml文件所在的位置用docker-compose build命令进行环境搭建
Dockerfile中的内容:

FROM python:3.6                                           指明建好的python环境的镜像
ENV PYTHONUNBUFFERED 1
RUN mkdir /code                                           建立自己项目启动后容器里的文件夹
WORKDIR /code                                             指明容器中自己将要操作的文件夹(上下一致)
RUN echo `pwd`
RUN echo `ls`
ADD . /code/                                              将现实中自己所在位置的所有文件及文件夹复制到自己建立的容器文件夹中
ADD requirements.txt /code/                               将自己所需的文件放入到容器文件夹中
ADD DjangoUeditor3-master/ /code/
RUN python DjangoUeditor3-master/setup.py install         本项目环境中需要用到富文本编辑器,但是用pip命令直接安装并不符合用法,所以需要用源码安装
RUN pip install --upgrade pip                             执行pip命令
RUN pip install -r requirements.txt

docker-compose.yml是服务配置文件,在docker-compose.yml文件所在的位置用docker-compose up 启动服务
docker-compose.yml中的内容:

version: '3'

services:

  dbs:                                                                      这个是在项目的settings文件中数据库连接时host的值
    image: mysql:5.7                                                        指定需要用到的数据库镜像
    environment:
      MYSQL_DATABASE: medical_mysql                                         指定需要用到的数据库名
      MYSQL_ROOT_PASSWORD: root                                             指定数据库的root密码
    ports:
      - "8041:3306"                                                         3306是运行后docker容器内的端口,8041是现实环境中的映射端口
    volumes:
      - dbs_data:/var/lib/mysql                                             mysql配置文件的位置


  medical_api:
    build: .
    command: python3 ./medical_crm_api/manage.py runserver 0.0.0.0:8001     项目服务启动命令
    volumes:
      - .:/code                                                             指明容器运行后工作目录
    ports:
      - "8042:8001"                                                         同理数据库端口映射
    depends_on:
      - dbs                                                                 指明需要的数据库服务名,要跟上面的命名一致
    networks:
      default:
        aliases:
          - medicalapi.com


  medical_web:
    build: .
    command: python3 ./medical_crm_mysql/manage.py runserver 0.0.0.0:8002
    volumes:
      - .:/code
    ports:
      - "8043:8002"
    depends_on:
      - dbs
    networks:
      default:
        aliases:
          - medical.com



volumes:
  dbs_data:

注意:这个项目是分为后台和接口两部分的服务,所以docker-composer.yml和Dockerfile两个文件的位置置于接口和后台项目之上,这样用docker-compose up运行起来后,
就有三个可以互相通信的容器:接口、后台、数据库
2.相关命令:

docker images 查看所有镜像
docker rmi id(镜像id) 删除镜像0000
docker-compose build 搭建环境,创建镜像
docker-compose up 开启服务
docker-compose down 关闭服务
docker ps -a 查看所用容器
sudo docker exec -it 775c7c9ee1e1(容器id) /bin/bash  进入某已指定容器
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容