使用Dockerfile封装Django镜像,很简单的步骤

一. 在/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 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"]  # 容器启动时默认执行的命令

三. 编写run.sh vim 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的镜像,接下来去浏览器访问就ok
在这里插入图片描述

发布了46 篇原创文章 · 获赞 10 · 访问量 1843

猜你喜欢

转载自blog.csdn.net/longlong6682/article/details/104732637