使用Dockerfile部署Django镜像(1)*

1.在/opt下建立了docker目录,下载一个django-2.1.7的源码包,
touch Dockerfile和run.sh,其中run.sh是用来执行Django的bash脚本,Dockerfile即为自动build python的文件,此文中的核心也是Dockerfile.
下载阿里云扩展源epel.repo文件,也放在此目录 (注:下载速度和网速有关)

[root@izbp19kniw9k2ljqdjmld5z ~]# cd /opt     # 切到、opt文件夹
[root@izbp19kniw9k2ljqdjmld5z ~]# mkdir docker	# 创建dokcer文件夹,名称可以随意创建
[root@izbp19kniw9k2ljqdjmld5z ~]# cd docker  # 切到、dokcer文件夹
[root@izbp19kniw9k2ljqdjmld5z docker]# wget https://media.djangoproject.com/releases/2.1/Django-2.1.7.tar.gz   #下载一个django-2.1.7的源码包
[root@izbp19kniw9k2ljqdjmld5z docker]# wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo    # 创建epel.repo 
[root@izbp19kniw9k2ljqdjmld5z docker]# cp /etc/yum.repos.d/CentOS-Base.repo /opt/docker   # 创建CentOS-Base.repo

在这里插入图片描述
注:这张图是我已经写完 Dockerfile、run.sh两个文件,你们刚下载完成是没有这两个文件的,只会出现红色框里的文件
2.编写Dockerfile vim Dockerfile

[root@izbp19kniw9k2ljqdjmld5z docker]# vim Dockerfile
FROM centos
FROM python:3.6.6

ADD CentOS-Base.repo /etc/yum.repos.d
ADD epel.repo /etc/yum.repos.d

RUN pip3 install setuptools
ADD Django-2.1.7.tar.gz /opt/

WORKDIR /opt/
RUN mv Django-2.1.7 django

WORKDIR /opt/django
RUN python3 setup.py install

WORKDIR /opt
RUN django-admin.py startproject qishidj

ADD run.sh /opt/qishidj/run.sh
RUN sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['\*'\]/g" /opt/qishidj/qishidj/settings.py
WORKDIR /opt/qishidj
RUN chmod 777 run.sh
EXPOSE 8000
CMD ["/bin/sh","run.sh"]

详细配置(配有注释,供参考)

FROM centos
MAINTAINER TigerLee

ADD CentOS-Base.repo /etc/yum.repos.d
ADD epel.repo /etc/yum.repos.d  # 将当前目录的epel.repo文件拷贝到容器的/etc/yum.repos.d目录下
RUN yum clean all
RUN yum makecache
RUN yum update -y  # 运行命令

RUN yum install -y python36
RUN yum install -y python36-pip
RUN pip3 install setuptools
ADD Django-2.1.7.tar.gz /opt/

WORKDIR /opt/  # 进入/opt目录
RUN mv Django-2.1.7 django  # 运行命令mv

WORKDIR /opt/django    # 进入/opt/django目录
RUN python3 setup.py install

WORKDIR /opt
RUN django-admin.py startproject qishidj

ADD run.sh /opt/qishidj/run.sh
RUN sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['\*'\]/g" /opt/qishidj/qishidj/settings.py
WORKDIR /opt/qishidj
RUN chmod 777 run.sh
EXPOSE 8000  # 声明容器端口
CMD ["/bin/sh","run.sh"]  # 容器启动时默认执行的命令

4.编写run.shvim run.sh

[root@izbp19kniw9k2ljqdjmld5z docker]# vim run.sh
python3 manage.py runserver 0.0.0.0:8000

开始构建

[root@izbp19kniw9k2ljqdjmld5z docker]# sudo docker build -t tiger/django-217 .

构建完成后,可以看到生成一个新镜像:
在这里插入图片描述
此时后台启动镜像,并把8000端口映射出来

[root@izbp19kniw9k2ljqdjmld5z docker]# docker run -d -p 9090:8000  tiger/django-217

执行完以上步骤,已经可以使用这个封装了django的镜像,接下来查看一下登陆界面
在这里插入图片描述

可参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hsw Come on

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值