docker搭建django+mysql

1.本机项目迁移到linux系统中

2.编写dockerfile内容如下

 

 

  WOEKDIR 在容器中创建该目录

  COPY 复制本机当前目录下的requirements.txt文件 到容器drfproject目录中

  COPY . ./   复制本机当前目录下的所有文件 到容器当前目录中

 

 3.编写docker-compose.yml文件 集成django以及mysql

  

  这里把mysql目录 也映射到项目目录下了   

 

 

 4.修改django中setting的配置

  

  

  host 栏 必须填写 docker-compse中services下 定义的服务名称

 

 

5.输入命令docker-compose up -d  运行容器

6.进入mysql容器中

  docker exec -it db bash

  登录mysql   mysql -uroot -p

    Use mysql;

    Select host,user,Create_priv from user;

  因为django要初始化数据表,因此要设置允许django链接mysql远程登录 root权限

      

    可以看到% root 没有权限 %的意思就是其他用户远程登录root访问数据库,对应IP地址,执行以下语句 给予权限

     GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

 7. 进入到django容器中,初始化数据表

  docker exec -it django-web-1 /bin/bash  

  执行python manage.py migrate

8.删除django 容器 重新执行docker-compose up -d 构建新djnago容器

  因为docker-compose 构建镜像,执行容器时,db数据库存在后构建的情况下, 导致django 连接不上数据库,所以需要重新构建django 容器

至此django+mysql项目就搭建完成了

mysql数据迁移

  进入mysql容器 bash环境

    mysqldump -u root -p  drf_django > /var/lib/mysql/drf_django.sql;

  迁移出数据

  然后在新的mysql中 新建一个drf_django数据库

    show databases

    create database drf_django

    退回到mysql bash中 输入以下命令

    mysql -u root -p drf_django < /var/lib/mysql/drf_django.sql 

常见问题:

首次构建的时候Docker compose 执行报错unable to upgrade to h2c, received 404

  构建之前先输入以下命令export DOCKER_BUILDKIT=0,然后再去构建

posted @ 2023-02-10 09:59  7dao  阅读(490)  评论(2编辑  收藏  举报