Docker部署Django博客项目(二)

  • 作者:lwj
  • 分类:Docker
  • 发表日期:2020-05-16 13:17:43
  • 阅读(396)
  • 评论(0)

部署容器

在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 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启动时容器立刻退出的情况

 

觉得不错,支持一下!

提交评论

您尚未登录,登录之后方可评论~ 登录 or 注册

评论列表

暂无评论
返回顶部

建议反馈

1. 可在博文底部留言评论

2. 发邮件到i_suichuan@163.com