介紹
Docker是一種新興的虛擬化方式,跟傳統(tǒng)的虛擬化方式相比具有更高效的利用系統(tǒng)資源崔泵,更快速的啟動時間素标,更輕松的遷移和部署的特點。
前期準備
-安裝:Docker Engine蒸痹,Docker Compose
-注冊:Docker Hub
Docker打包Django
新建一個文件夾春弥,命名為mysite。
在文件夾中新建一個文件叠荠,Dockerfile匿沛。注意該文件沒有后綴。在Dockerfile中寫入以下內(nèi)容榛鼎。Dockerfile指定了運行環(huán)境為python2.7逃呼,需要的環(huán)境放在requirements.txt中。
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
- 新建requirements.txt者娱,寫入我們的依賴環(huán)境抡笼。Django是一個基于Python的開放源代碼的Web應(yīng)用框架。psycopg2肺然,是Python語言的PostgreSQL數(shù)據(jù)庫接口蔫缸。
Django
psycopg2
- 新建一個文件名為docker-compose.yml,該文件描述了應(yīng)用的組成并指定程序的端口號际起。
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
4.在docker中使用如下命令建立Django工程拾碌,執(zhí)行后目錄下會新增一個名為composeexample的文件夾。
docker-compose run web django-admin.py startproject composeexample .
- 修改composeexample/settings.py文件中的DATABASES如下圖所示街望。另外如果你是用的是Docker Toolbox 校翔,可能需要在settings.py文件中的ALLOWED_HOSTS中加入'192.168.99.100'。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
- 運行灾前。輸入如下指令防症,然后訪問192.168.99.100:8000,即可看到Django運行成功哎甲。
docker-compose up
運行成功截圖