使用dockerfile封装django镜像

准备工作

/opt/创建一个docker文件夹,然后下载一些相关配置

cd /opt/
mkdir docker
cd docker 
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #阿里云拓展源文件
wget -O /opt/docker/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
自行准备上传一个django2.1.15的tar压缩包  django官网去下载


docker目录下再创建两个文件

touch Dockerfile
vim run.sh

run.sh文件中添加如下代码

python3 manage.py runserver 0.0.0.0:8000

Dockerfile文件中添加如下代码
完整版

FROM centos  # 指定基础对象
MAINTAINER LiuWei  # 指定作者

ADD CentOS-Base.repo /etc/yum.repos.d   # ADD添加的意思(如果是压缩文件,也会自动解压)
ADD epel.repo /etc/yum.repos/d  #将当前目录的epel.repo文件添加到容器的/etc/yum.repos.d目录下
RUN yum clean all  #清除全部缓存
RUN yum makecache #创建新的缓存
RUN yum update -y  #更新yum工具

RUN yum install -y python36  #安装python3
RUN yum install -y python36-pip #安装python3的pip
RUN pip3 install setuptools
ADD Django-2.1.15.tar.gz /opt/  #将django压缩包添加到容器的opt目录下并解压

WORKDIR /opt/   #进入/opt目录
RUN mv Django-2.1.15 django  #运行命令 mv将原来的名字改成django

WORKDIR /opt/django  #进入改名后的/opt/django目录
RUN python3 setup.py install  #安装django必需运行的的命令

WORKDIR /opt #进入opt目录
RUN django-admin.py startproject qishidj  # 创建django项目

ADD run.sh /opt/qinshidj/run.sh   #添加脚本到目录下
RUN sed -i 's/ALLOWED_HOSTS = []/ALLOWED_HOSTS = ['*']/g' /opt/qishidj/qishidj/settings.py #修改django中settings文件中的ALLOWED_HOSTS的值
WORKDIR /opt/qishidj
RUN chmod 777 run.sh   #赋读写执行权限
EXPOSE 8000  #声明容器端口
CMD ["/bin/sh","run.sh"]  #容器启动时默认执行的命令

目前使用版

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.15.tar.gz /opt/

WORKDIR /opt/
RUN mv Django-2.1.15 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"]

开始构建

docker build -t qishi8/django-217 .   # build构建, .表示在本地执行必须加

成功后会出现,说明成功了

然后启动生成的镜像

docker run -d -p 5000:8000 qishidj/django-2115   # 要注意先后顺序  不然报错

然后页面访问,是能够成功访问的

-------------------------------------------

个性签名:代码过万,键盘敲烂!!!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

原文地址:https://www.cnblogs.com/weiweivip666/p/13922839.html