第一步:

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

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

下载阿里云扩展源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
 

第二步:编写Dockerfile

FROM centos
MAINTAINER TigerLee ADD epel.repo /etc/yum.repos.d # 将当前目录的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/ # 进入/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 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
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"]

简洁配置版

第三步:编写run.sh

python3 manage.py runserver 0.0.0.0:8000

第四步:创建镜像在docker目录下执行命令

sudo docker build -t xumou/django-217 .     # 这个 .  不能忘记,不然不能创建成功

第五步:查看docker的镜像(显示创建成功)

docker images

第六步:后台启动镜像,并把8000端口影射出来

[root@tom docker]# docker run -d -p 9090:8000 xumou/django-217

第七步:查看容器状态:

docker ps

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

进入容器的交互模式必须先将镜像运行后产生一个容器
先运行镜像并使其后台持续运行:
[root@tom docker]# docker run -d -i -t da9bb3ba44d6 /bin/bash
然后再执行命令行进入容器交互模式:
[root@tom docker]# docker exec -it 2b47bb54dfb7(容器id) /bin/bash

第九步:查看运行的进程:

[root@2b47bb54dfb7 qishi3dj]# ps -ef

第十步:使用和调试()  查看运行中的容器:

[root@tom docker]# docker container ls

第十一步:进入容器:

[root@tom docker]# docker exec -it 2b47bb54dfb7(容器id) /bin/bash

第十二步:(已经进入了容器内了),找到这个django项目的settings.py文件

[root@2b47bb54dfb7 qishi3dj]# ls

第十三步:将settings文件的host添加  *

第十四步:在浏览器中输入django的访问页面

使用Dockerfile封装Django镜像的更多相关文章

  1. Dockerfile封装Django镜像

    部署过程 1.查看镜像 docker images 2.在/opt下建立了docker目录,下载一个django-2.1.7的源码包, mkdir -p /opt/docker cd /docker ...

  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. T-聊天止于呵呵

    (现代版)俗话说:流言止于智者,聊天止于呵呵.输入一段聊天记录,你的任务是数一数有 多少段对话“止于呵呵”,即对话的最后一句话包含单词 hehe 或者它的变形. 具体来说,我们首先提取出对话的最后一句 ...

  2. PHP实现支付宝小程序用户授权的工具类

    背景 最近项目需要上线支付宝小程序,同时需要走用户的授权流程完成用户信息的存储,以前做过微信小程序的开发,本以为实现授权的过程是很简单的事情,但是再实现的过程中还是遇到了不少的坑,因此记录一下实现的过 ...

  3. ACdream 1424 Diversion( 树链剖分 )

    Diversion Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit St ...

  4. QRCode.js一个生成二维码的javascript库

    前言 最近在开发中遇到一个需求:将后端返回的链接转换成二维码,那么如何来实现呢?我们可以使用QRCode.js来解决这一问题 什么是 QRCode.js? QRCode.js 是一个用于生成二维码的 ...

  5. java中的数据类型,基本数据类型及其包装类型

    java中的8大基本类型及其包装类型 1,int--->Integer 2,byte--->Byte 3,short--->Short 4,long--->Long 5,cha ...

  6. IO同步阻塞与同步非阻塞

    BIO.NIO.AIO IO(BIO)和NIO区别:其本质就是阻塞和非阻塞的区别 阻塞概念:应用程序在获取网络数据的时候,如果网络传输数据很慢,就会一直等待,直到传输完毕为止. 非阻塞概念:应用程序直 ...

  7. element ui中的一些小技巧

    最近写公司的项目,这项目是vue和element ui搭建的, 做的是一套电力系统的管理平台.  遇到一个小麻烦,用过element ui 的都知道,使用element ui 弹框,点击空白处,默认是 ...

  8. Bootstrap前端框架快速入门专题

    1.Bootstrap简介 Bootstrap,出自自 Twitter,是目前最受欢迎的前端框架. Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的前端框架,它简洁灵活,使得 W ...

  9. pipeline语法学习日记

    1.pipeline 整合job的通用代码,比较基本 2.pipeline参数化构建

  10. jupyter安装

    1. 安装ipython, jupyter pip install ipython pip install jupyter 2.查看是否有配置文件 jupyter notebook --generat ...