Docker部署Django博客项目(二)

部署容器

在Blog目录下执行部署容器命令(加 -d: 后台运行)

root@VM-0-14-root: ~$:/home/Blog# sudo docker-compose up -d
Creating network "Blog_my_backend" with driver "bridge"
Creating network "Blog_my_frontend" with driver "bridge"
Creating mysql_5.7.28    ... done
Creating web_mysite      ... done
Creating nginx_1.17.9    ... done

运行之后查看所有容器的状态

初始化数据库

所有容器启动完成,数据库都是空的,需要初始化一下

# 初始化数据库
root@VM-0-14-root: ~$:/home/Blog# docker exec -it web_mysite python manage.py makemigrations
root@VM-0-14-root: ~$:/home/Blog# docker exec -it web_mysite python manage.py migrate
# 收集静态文件
root@VM-0-14-root: ~$:/home/Blog# docker exec -it web_mysite python manage.py migrate collectstatic
# 创建管理员
root@VM-0-14-root: ~$:/home/Blog# docker exec -it web_mysite python manage.py createsuperuser

数据库备份与还原

备份宿主机mysql数据

root@VM-0-14-root: sudo mysqldump -u root -h 127.0.0.1 -P 3306 -p dbname > ./bak.sql
Enter password:

导入备份数据到容器Mysql中

root@VM-0-14-root: sudo mysql -h 192.110.0.2 -u root -p dbname < ./bak.sql
Enter password:

Mysql数据库定时备份参考:Ubuntu设置定时任务自动备份mysql

 

(1)备份所有的数据库

root@VM-0-14-root: sudo mysqldump -u root -p --all-databases > bak.sql

(2)备份指定的数据库db1、db2以及db3

root@VM-0-14-root: sudo mysqldump -u root -p --databases db1 db2 db3 > bak.sql

(3)备份db数据库,当仅备份一个数据库时,--databases可以省略

root@VM-0-14-root: sudo mysqldump -u root -p db4 > bak.sql
root@VM-0-14-root: sudo mysqldump -u root -p --databases db4 > bak.sql

部署过程遇到的问题:

1. docker创建uwsgi启动容器后立马退出
Docker容器同时只能管理一个进程,如果这个进程退出那么容器也就退出了,但这不表示容器只能运行一个进程(其他进程可在后台运行),但是要使容器不退出必须有一个前台执行的进程。
那么在docker中使用uwsgi时,如果在uwsgi.ini配置文件中指定了daemonize参数,容器的uwsgi应用的日志将会输出到指定的文件, 进程会在后台运行,而不是在前台运行,这样就造成通过docker run启动或者compose启动时容器立刻退出的情况

 

个人博客网站

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SitVen

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值