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,然后再去构建