使用dockerfile封裝django映象
阿新 • • 發佈:2020-11-03
準備工作
在/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 # 要注意先後順序 不然報錯
然後頁面訪問,是能夠成功訪問的