django作为项目后台的docker-compose部署
准备
Linux下安装docker1
2sudo apt-get install docker
sudo apt-get install dock
Linux下安装docker-compose1
2$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
dockerfile编写
1 | FROM python:3 #python 版本 |
requirements.txt编写
1 | Django>=2.0 #下载django对应版本 |
docker-compose.yml编写
1 | version: '3' #版本 |
Django默认数据库设置
修改settings.py中的数据库默认设置1
2
3
4
5
6
7
8
9DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres', #数据库
'USER': 'postgres',
'HOST': 'db', #主机名,即在docker-compose中的db服务
'PORT': 5432, #服务器端口
}
}
具体可参考
https://shenxgan.gitbooks.io/django/content/publish/2015-07-13-django-mysql.html
最终你的django项目里应该有
- Dockerfile
- requirements.txt
- docker-compose.yml
处于同一目录下
后台部署
将项目文件夹拷贝到服务器上,进入项目文件夹,执行
sudo docker-compose up
即构建并启动项目
sudo docker-compose build
为构建项目
sudo docker-compose restart
为重启项目
紧张刺激的掉坑环节
sudo docker-compose up的时候可能会报错1
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
这个报错应该是跟docker和docker-compose是否以管理员权限开启有关,遇到报错可以尝试
先关掉docker,管理员权限,非管理员权限和系统的docker
service docker stop
sudo service docker stop
systemctl stop docker
再以管理员权限重启或开启docker
sudo service docker start/restart
sudo systemctl start docker
sudo systemctl restart docker
最后
sudo docker-compose up
应该就可以了