docker-compose部署python3.6+django+mysql5.7(原创详细)

1.docker基础配置

1.安装docker 和 docker-compose
apt-get install -y docker
apt install docker.io
apt install docker-compose


2.配置docker阿里云加速器(其他都慢,阿里云最快最稳定)

登录阿里云,搜镜像加速器,自行配置
 


2.docker化部署django+mysql

docker-compose 部署流程

1.新建docker-compose工程目录

mkdir 1.DockerDemo && cd 1.DockerDemo

(1)在 1.DockerDemo目录下创建3个目录
mkdir project config mysqldb

project  用于放置Django项目
config   用于放置配置文件:requirements.txt等
mysqldb  用于放置数据库文件
(后面创建的Dockerfile 和 docker-compose.yml放到项目1.DockerDemo下)


(2)编写requirements.txt
vi config/requirements.txt

Django
mysqlclient

 

2. 编写Dockerfile_django


vi Dockerfile_djnago
(其中的环境变量PYTHONUNBUFFERED表示动python文件的作用是直接把输出重定向到文件)

FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /home/1.DockerDemo
ADD . /home/1.DockerDemo
WORKDIR /home/1.DockerDemo
RUN pip3 install -r ./config/requirements.txt -i https://pypi.douban.com/simple

 


3. 编写docker-compose.yml

vi docker-compose.yml

version: '2'
services:
  db:                             # db为标签
    image: mysql:5.7              # image表示使用 mysql镜像,使用5.7版本避免出现密码版本问题
    container_name: mysql_01      # container_name表示 生成的容器名
    ports:                        # 映射主机的33060端口到容器的3306,外部主机可以直接通过宿主机ip:33060 访问到 MySQL 的服务。
      - "33060:3306"
    volumes:                      # volumes表示将宿主机的路径挂载到容器的路径,注意./mysqldb是主机的数据库文件
      - ./mysqldb:/var/lib/mysql
    environment:                  # environment环境变量:对于mysql镜像以root登录需要提供密码MYSQL_ROOT_PASSWORD
      - MYSQL_DATABASE=mysql_django
      - MYSQL_ROOT_PASSWORD=123456

  web:                               # web标签
    build:                           # 指定建立Dockerfile的路径和名称
      context: .
      dockerfile: Dockerfile_django
    container_name: django_01        # 指定容器名django_01
    command: python3 ./project/manage.py runserver 0.0.0.0:8000   # 覆盖容器启动的默认命令,这里启动Django
    volumes:                         # 将宿主机当前路径挂载到容器的/home路径
      - .:/home/1.DockerDemo
    ports:                           # 将主机端口映射到容器端口
      - "8000:8000"
    depends_on:                      # 依赖于db服务启动
      - db

 

4.建立django工程


注意本地已建好虚拟环境,在本地建立django项目,本地调测最后构建容器,工程名为 project
以下命令表示就以当前的project目录作为Django工程路径建立Django项目
在1.DockerDemo目录下执行:
django-admin startproject project ./project

修改Django工程的settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',     # 数据库引擎使用mysql
        'NAME': 'mysql_django',                   # 数据库名称
        'USER': 'root',                           # 数据库登录用户名
        'PASSWORD': '123456',                     # 数据库密码
        'HOST': '填宿主机ip',         # 数据库主机ip,注意mysql容器的3306端口映射到宿主机的33060端口,所以这里填宿主机ip
        'PORT': 33060,                            # 数据库端口号,这里填宿主机上的端口33060,通过宿主机端口访问mysql容器端口
    }
}


ALLOWED_HOSTS=['*']

    
5. 构建镜像 并 运行镜像

docker-compose build  # 构建镜像
docker-compose up (直接看到容器运行结果)

或者 docker-compose up -d (让容器在后台运行)


在浏览器访问:(注意是宿主机ip)
http://宿主机ip:8000/

 

 

 

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三尾鱼网络科技

如果对您有帮助,赠人玫瑰手留余

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值