部署方式: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 进入某已指定容器