码迷,mamicode.com
首页 > 其他好文 > 详细

6.19 docker (一)实战Django

时间:2019-06-19 17:08:28      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:use   tin   基于   -bash   work   nod   cmd   数据   环境   

 

实战 Django

 

[root@node ~]# mkdir django_test

[root@node ~]# cd django_test/

第一步,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 Dockerfile 文件来指定 Docker 容器要安装内容。内容如下
[root@node django_test]#vi  Dockerfile

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

第1行的FROM指令表示新的镜像将基于python:2.7的镜像来构建 
第2行的ENV为环境变量(PYTHONUNBUFFERED见这里) 
第3行的RUN指令表示在镜像内新建/code目录 
第4行指定指定RUN、CMD与ENTRYPOINT命令的工作目录 
第5行是将./mysite/requirements.txt文件添加到刚才新建的code目录中 
第6行运行pip安装所需的软件

第二步,在 requirements.txt 文件里面写明需要安装的具体依赖包名。
[root@node django_test]# vi requirements.txt

Django>=1.8,<2.0
psycopg2
第三步,docker-compose.yml 文件将把所有的东西关联起来。它描述了应用的构成(一个 web 服务和一个数据库)、使用的 Docker 镜像、镜像之间的连接、挂载到容器的卷,以及服务开放的端口。

[root@node django_test]# vi docker-compose.yml

version: "3"
services:

  db:
    image: postgres

  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db

db标签: 
images表示使用 postgres镜像 

 

web标签: 
build指定建立Dockerfile路径 
command将覆盖默认的命令 
ports指定主机开放的端口 
links指向其他容器中的服务

 

docker-compose run 命令启动一个 Django 应用了。

[root@node django_test]# docker-compose run web django-admin.py startproject composeexample .

技术图片

技术图片

更改权限

[root@node django_test]# chown -R $USER:$USER .

我们要为应用设置好数据库的连接信息。用以下内容替换composeexample/settings.py 文件中 DATABASES = ... 定义的节点内容。

[root@node django_test]# cd composeexample/
[root@node composeexample]# vi settings.py

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.postgresql‘,
        ‘NAME‘: ‘postgres‘,
        ‘USER‘: ‘postgres‘,
        ‘HOST‘: ‘db‘,
        ‘PORT‘: 5432,
    }
}

运行 docker-compose up

[root@node django_test]# docker-compose up

技术图片

 这个 Django 应用已经开始在你的 Docker 守护进程里监听着 8000 端口了。打开 127.0.0.1:8000 即可看到 Django 欢迎页面。

 技术图片

 

6.19 docker (一)实战Django

标签:use   tin   基于   -bash   work   nod   cmd   数据   环境   

原文地址:https://www.cnblogs.com/guogle/p/11051980.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!