码迷,mamicode.com
首页 > 其他好文 > 详细

Dockerfile封装Django镜像

时间:2019-04-27 12:44:35      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:png   使用   images   交互   自定义   centos   epel   防火墙规则   nbsp   

部署过程

1.查看镜像

docker images

技术图片

 

2.在/opt下建立了docker目录,下载一个django-2.1.7的源码包,

mkdir  -p /opt/docker

cd /docker

该  /opt/docker 文件夹需要用到 的文件如下,django文件需要下载  ,epel.repo 需要从阿里云进行下载,Dockerfile和run.sh 需要自己写

技术图片

在该目录下载阿里云扩展源epel.repo文件

wget https://media.djangoproject.com/releases/2.1/Django-2.1.7.tar.gz
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

vim  Dockerfile和run.sh,其中run.sh是用来执行Django的bash脚本,Dockerfile即为自动build python的文件,此文中的核心也是Dockerfile.

3.编写Dockerfile

vim  Dockerfile

写入以下配置:

技术图片
FROM centos
MAINTAINER TigerLee

ADD epel.repo /etc/yum.repos.d
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/
RUN mv Django-2.1.7 django

WORKDIR /opt/django
RUN python3 setup.py install

WORKDIR /opt
RUN django-admin.py startproject qishi3dj

ADD run.sh /opt/qishi3dj/run.sh
WORKDIR /opt/qishi3dj
RUN chmod 777 run.sh
EXPOSE 8000
CMD ["/bin/sh","run.sh"]
简洁配置

配置说明:

FROM centos
MAINTAINER TigerLee  # 名字可自定义

ADD epel.repo /etc/yum.repos.d  # 将当前目录的epel.repo文件拷贝到容器的/etc/yum.repos.d目录下   ADD相当于 copy+解压
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目录    # WORKDIR 相当于cd命令
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 qishi3dj  # 创建的django项目

ADD run.sh /opt/qishi3dj/run.sh  # 复制文件到某个目录
WORKDIR /opt/qishi3dj
RUN chmod 777 run.sh   # 修改文件权限 ,可执行
EXPOSE 8000  # 声明容器端口
CMD ["/bin/sh","run.sh"]  # 容器启动时默认执行的命令

4.编写run.sh

python3 manage.py runserver 0.0.0.0:8000

开始构建

打包为镜像

 sudo docker build -t deng/django217 .

查看镜像

docker images

技术图片

此时后台启动镜像,并把8000端口映射出来

使用交互式模式进入容器,再使用ps -ef查看运行的进程

docker run -d -p 9000:8000 bba0c98 
docker container ls

 

技术图片

 

使用交互式模式进入容器,再使用ps -ef查看运行的进程

docker exec -t 6bc57de7f8e8 /bin/bash
ps -ef 

 技术图片

进入容器内,修改django配置文件

技术图片

技术图片

浏览器地址栏访问 192.168.12.80:9000,如果访问失败的话,可能是服务器的防火墙导致的,需要关闭防火墙。

setenforce  0
iptables -F 清空防火墙规则
systemctl  disable  firewalld

 

技术图片

 

 

如果需要查看log日志,可以使用如下命令,-f代表持续打印:

docker logs -f container_id

 技术图片

 

Dockerfile封装Django镜像

标签:png   使用   images   交互   自定义   centos   epel   防火墙规则   nbsp   

原文地址:https://www.cnblogs.com/knighterrant/p/10778291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!