部署过程

1.查看镜像

docker images

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

mkdir  -p /opt/dockercd /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 TigerLeeADD epel.repo /etc/yum.repos.d
RUN yum update -yRUN 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 djangoWORKDIR /opt/django
RUN python3 setup.py installWORKDIR /opt
RUN django-admin.py startproject qishi3djADD 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 installWORKDIR /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

 

转载于:https://www.cnblogs.com/knighterrant/p/10778291.html

Dockerfile封装Django镜像相关推荐

  1. docker 封装sql_docker封装mysql镜像

    docker封装mysql镜像 发布时间:2020-03-13 12:18:07编辑:admin阅读(967) 一.概述 直接使用官方的镜像docker pull mysql:5.7 但是mysqld ...

  2. Dockerfile构建新镜像--网易蜂巢--RHEL7.2

    为方便管理和使用自己的镜像,本文将自己的镜像放在网易蜂巢的个人私有仓库里面. 网易蜂巢地址为:https://c.163.com/ 假设自己的蜂巢账号为: user1, 用户名:user2 下面以构建 ...

  3. 通过Dockerfile构建Docker镜像

    Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添 ...

  4. Docker 使用Dockerfile构建tomcat镜像

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

  5. Docker Review - dockerfile 实战_使用dockerfile制作tomcat镜像

    文章目录 Pre Docker 官方镜像 Dockerfile dockerfile制作tomcat镜像 准备软件 编写Dockerfile文件 dockerfile构建镜像 启动镜像 测试访问tom ...

  6. Dockerfile构建nginx镜像

    Dockerfile构建nginx镜像[root@bogon ~]# mkdir /opt/docker-file [root@bogon ~]# cd /opt/docker-file/ [root ...

  7. 简单几步就教会你如何使用 dockerfile 制作 LNMP 镜像,还不赶紧学起来

    简单几步就教会你如何使用dockerfile制作LNMP镜像 前言 一.dockerfile撰写php镜像 二.dockerfile撰写mysql镜像 三.dockerfile撰写nginx镜像 四. ...

  8. Dockerfile构建容器镜像 - 运维笔记

    在Docker的运用中,从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其 ...

  9. Docker使用Dockerfile构建简单镜像

    Docker使用Dockerfile构建简单镜像 首先确保系统已经安装docker 构建镜像 安装基础镜像 sudo docker pull ubuntu 查看镜像是否已经拉取成功 REPOSITOR ...

最新文章

  1. python mysql
  2. 关于生成漏洞信息属性代码备份
  3. Java面试常被问到的题目+解答
  4. win10创建新的计算机用户名和密码忘了,Win10 2004中要使用本计算机用户必须输入用户名和密码选项不见了如何恢复?...
  5. 【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )
  6. 已被管理员、加密政策或凭据存储停用
  7. batchsize设置为2的n次方_试卷中的页码设置
  8. xhprof 安装使用(windows linux混版)
  9. android:SQlite
  10. qt服务器获取formdata文件,QT上传(PUT)文件
  11. php实例化类的方法,在PHP中实例化类实例的不同方法
  12. Swift调用微信支付宝SDK(Swift4.0)
  13. java实现微信支付之扫码支付
  14. QCC512x QCC302x PIO 按键
  15. java 异或运算符^
  16. 冯.诺依曼计算机结构要点
  17. android主题切换框架,Prism(棱镜)——一款优秀的Android 主题动态切换框架
  18. 关于QQ登录出现非官方应用 错误码100044的解决办法
  19. android手机——刷机(卡刷、线刷)
  20. 机器学习中SVM的损失函数,向量积

热门文章

  1. oracle 表的移动,oracle 表移动表空间
  2. java模块化发布选型_Java模块化开发
  3. oracle双引号拼接,oracle 单引号拼凑和动态sql | 学步园
  4. pytorch LSTM_regression
  5. 图解TCPIP-IP 网际协议-路由控制
  6. Python DES
  7. TensorFlow tf.keras.layers.Permute
  8. python 工作路径
  9. 如何去除计算机的访问限制,访问限制达成,教你如何禁止别人访问你电脑的C盘...
  10. 问题 | golang编程中的坑