部署过程

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..tar.gz /opt/ WORKDIR /opt/
RUN mv Django-2.1. 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 run.sh
EXPOSE
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..tar.gz /opt/ # 拷贝并解压 WORKDIR /opt/ # 进入/opt目录 # WORKDIR 相当于cd命令
RUN mv Django-2.1. 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 run.sh # 修改文件权限 ,可执行
EXPOSE # 声明容器端口
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镜像的更多相关文章

  1. 使用Dockerfile封装Django镜像

    第一步: 在/opt下建立了docker目录,下载一个django-2.1.7的源码包, touch Dockerfile和run.sh,其中run.sh是用来执行Django的bash脚本,Dock ...

  2. dockerfile封装docker镜像

    一.使用都dockerfile封装docker镜像 1.在任意一个地方创建文件夹docker mkdir docker 2.进入文件夹并且下载一个django2.1.7的包以及一个epel.repo ...

  3. Docker 封装java镜像

    一.概述 目前java采用的框架是Spring,服务器直接通过 java -jar xxx.jar 就可以启动服务了. 二.jdk镜像 在docker中跑java应用,需要有jdk环境支持才行. 获取 ...

  4. Docker:dockerfile自动构建镜像 [六]

    一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...

  5. Dockerfile制作自定义镜像

    本文介绍最精简的Dockerfile文件构建镜像,Docker启动的时候可以启动一个shell脚本 1.首先编写Dockerfile文件 说明 1.启动的这个shell脚本一定是不退出的,比如服务器的 ...

  6. 使用dockerfile,创建gitblit镜像

    1. 快速使用gitblit镜像 1.1 push 镜像 # docker pull /gitblit 1.2 查看下载的镜像 # docker images | grep "gitblit ...

  7. 使用Dockerfile来构建镜像

    Dockerfile原理 创建Dockerfile Dockerfile实例 Dockerfile指令 注释 FROM MAINTAINER RUN ADD WORKDIR ENV USER COPY ...

  8. Docker 使用Dockerfile构建tomcat镜像

    Dockerfile概念: 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题. ...

  9. Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?

    老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...

随机推荐

  1. SSIS Hekaton In-Memory OLTP 【翻译一篇外国文章】

    来自:http://www.itprotoday.com/microsoft-sql-server/important-new-features-sql-server-2014 Microsoft's ...

  2. Install rapyuta client on Raspberry Pi

    Install rapyuta on client sudo git clone -b master https://github.com/cnsdytzy/-Rapyuta-installation ...

  3. 打造RecyclerView的n级列表

    先上效果图: 1.该多级列表的优势: 支持无限级列表展开 基于一个recyclerView实现 可以自定义每一级item的样式,定制化更强 2.设计的思路 数据结构List,ItemBean类中有变量 ...

  4. VDSR

    提出SRCNN问题 context未充分利用 Convergence 慢 Scale Factor 训练指定fator的模型再重新训练其他fator的模型低效 context 对于更大的scale-f ...

  5. Vfox数据库导出EXCEL,含有备注型子段

    1. 选择菜单“数据”-> “自其他来源”->“来自 Microsoft Query ”. 2. 在出来的“选择数据源” 里面双击第一个选项“<新数据源>”会出来一个“创建新数 ...

  6. 【winform】splitContainer拆分器控件

    一. 1.panel的显示和隐藏 设置SplitterDistance的数值大小即可改变panel的左右大小.这里设置的数值是指分割线距离左边框的像素,设置成0的话,左半部分就完全看不到了,可以实现一 ...

  7. CSS——div垂直居中及div内文字垂直居中

    最近做demo时,经常需要div垂直居中或者让div内文字相对div垂直居中.水平居中比较简单,就不多说了,这里主要记录一下垂直居中的一些方法. 一.div垂直居中的一些方法: 1.当height.w ...

  8. P4859 已经没有什么好害怕的了(dp+二项式反演)

    P4859 已经没有什么好害怕的了 啥是二项式反演(转) 如果你看不太懂二项式反演(比如我) 那么只需要记住:对于某两个$g(i),f(i)$ ---------------------------- ...

  9. JDBC——Java语言连接数据库的标准

    JDBC概述 API JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  10. 升级python2.7, 实现python2.7与python3并存

    由于用到twilio模块, 所以需要升级一下python2, 但是又不想舍弃python2, 于是实现了简单的方法 python 先扔一块依赖 yum install zlib-devel bzip2 ...