一断箫、準備條件
- 購買裝有Linux系統(tǒng)的云服務(wù)器
- 添加安全組規(guī)則
請參考官方文檔 - 安裝Docker
- 可運行的Django項目
二懊渡、Dockerfile編寫
在項目文件夾下新建名為Dockerfile的文件,內(nèi)容如下
FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
把項目運行需要用到的第三方庫寫在requirements.txt
例如本博客使用的requirements.txt
mongoengine
Django==1.11
mysqlclient
Markdown
Pygments
其中mongoengine
用于使用MongoDB惰拱、Markdown
用于把markdwon語法轉(zhuǎn)換成html代碼轨域、Pygments
用于代碼高亮催首,這些庫具體的用法請自行探討
以上可根據(jù)項目靈活選擇需要安裝的庫
三、docker-compose.yml 文件的配置
在項目文件夾下新建名為docker-compose.yml的文件裙盾,如果使用mysql數(shù)據(jù)庫的話实胸,可以配置如下(使用其他數(shù)據(jù)庫配置方法大概相似)
version: '2'
services:
db:
image: mysql
expose:
- "3306"
ports:
- 3306:3306
environment:
- MYSQL_DATABASE=YourDatabaseName
- MYSQL_ROOT_PASSWORD=YourPassWord
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 6061:80
links:
- db
web:
build: .
command: python manage.py runserver 0.0.0.0:80
volumes:
- .:/code
ports:
- "80:80"
links:
- db
其中PHPmyadmin用來可視化mysql數(shù)據(jù)庫,這里讓它運行在6061端口
更多關(guān)于Docker的知識請參考官方文檔
四番官、配置Django項目的settings.py的數(shù)據(jù)庫設(shè)置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': YourDatabaseName,
'USER' : root,
'PASSWORD' : YourPassWord,
'HOST' : YourIPAddress,
'PORT' : 3306,
}
}
注意庐完,NAME
和PASSWORD
必須根Dockercompose.yml中配置的數(shù)據(jù)庫名和密碼一致
五、下載啟動鏡像
把項目代碼上傳到服務(wù)器徘熔,進入項目文件夾门躯,命令行中輸入如下命令
docker-compose up
該命令會下載docker-compose.yml中給定的鏡像和Dockerfile中需要使用的庫(如果以后要擴展requirements.txt中的庫的話,需要執(zhí)行docker-compose build命令重建鏡像)酷师,下載完成之后會嘗試運行鏡像生音。
ps: 如果第一次啟動不成功的話請多嘗試幾次
一切順利的話會看到如下提示
在瀏覽器上輸入IP地址就可以訪問到您的Django應用了
訪問
http://yourIP:6061
可以看到phpMyadmin的登錄界面輸入您的數(shù)據(jù)庫用戶名密碼即可登錄,登陸之后您會發(fā)現(xiàn)數(shù)據(jù)庫里面沒有數(shù)據(jù)表窒升,這是因為還沒有創(chuàng)建數(shù)據(jù)表
六缀遍、創(chuàng)建數(shù)據(jù)表
命令行中輸入以下命令
查看正在運行的docker容器
docker ps
進入主容器(運行django項目的容器)
docker exec -it NameOfYourContainer /bin/bash
建表
python manage.py makemigrations
python manage.py migrate
最后,開始愉快的編碼吧饱须!
以上教程若有任何錯誤請留言指出域醇,有疑惑歡迎聯(lián)系我