准备工作
在/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 # 要注意先后顺序 不然报错
然后页面访问,是能够成功访问的