dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:279回复:0

如何自定义 Django Docker镜像?

楼主#
更多 发布于:2018-06-12 10:02
目标
创建一个基于 python:3.6 与 django:1.10 框架,自定义的 Docker 镜像。

环境
django:1.11 On python:3.6 On Docker:17.05.0-ce

部署步骤
先来看下这个博客项目的部署步骤:  
1. 获取项目代码
git clone https://github.com/zmrenwu/django-blog-tutorial.git
2. 编辑配置文件,允许访问的域名列表
ALLOWED_HOSTS = ['*']
3. 安装项目依赖
pip install -r requirements.txt
4. 收集静态文件到 static 目录下
python manage.py collectstatic -l --noinput
5. 生成数据库
python manage.py migrate
6. 创建超级用户,方便我们进入 Django 管理后台。
echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'test603')" | python manage.py shell

封装 Docker 镜像
1. 目录结构
tree -L 1 django-blog/
django-blog/
├── django-blog-tutorial
└── Dockerfile

1 directory, 1 file

2. Dockerfile
Dockerfile 文件则定义了镜像build 所需的步骤,内容如下:
cat Dockerfile
# django-blog

FROM python:3
MAINTAINER dongnan <http://zongming.net>

COPY django-blog-tutorial /code/
WORKDIR /code

RUN pip install -r requirements.txt
RUN python manage.py collectstatic -l --noinput \
    && python manage.py migrate
RUN echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@demo.com', 'test666')" | python manage.py shell

CMD ["python","manage.py","runserver","0.0.0.0:8000"]

3. 构建镜像
docker build -t zmrblog:1.0.1 .
Sending build context to Docker daemon    767kB
Step 1/8 : FROM python:3
 ---> 29d2f3226daf
Step 2/8 : MAINTAINER dongnan <http://zongming.net>
...省略
Step 8/8 : CMD python manage.py runserver 0.0.0.0:8000
 ---> Running in 49d7827c0e6f
 ---> fc3f6f242301
Removing intermediate container 49d7827c0e6f
Successfully built fc3f6f242301
Successfully tagged zmrblog:1.0.2

验证
1. 创建一个容器
docker run --name test -tid zmrblog:1.0.1

2. 获得容器 IP地址
docker inspect test | grep -i 'ipaddress' | tail -n1
                    "IPAddress": "172.17.0.2",

3. 访问容器
# 前台

图片:django-blog-frontend.png



# 后台

图片:django-blog-backtend.png



参考:
django-blog-tutorial 项目
Django博客教程
#
游客

返回顶部