部署过程

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. CentOS7系统 ansible自动化部署多台服务器部署

    CentOS7系统 ansible自动化部署多台服务器部署   Ansible工作机制  从图中可以看出ansible分为以下几个部份: 1> Control Node:控制机器2> In ...

  2. centos7 安装oracle 11g数据库

    1.新建oracle用户 groupadd oracle useradd -g oracle oracle .修改操作系统核心参数 在Root用户下执行以下步骤: 1)修改用户的SHELL的限制,修改 ...

  3. 腾讯笔试编程题,贪吃的小Q(二分查找)

    问题描述 小Q的父母要出差N天,走之前给小Q留下了M块巧克力.小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力. 输入描 ...

  4. Windbg程序调试系列3-线程阻塞问题

    上一篇博文给大家分享了使用Windbg分析内存泄露问题: Windbg程序调试系列2-内存泄露问题 本篇我们继续跟大家分享,如何分析解决线程阻塞问题. 从根本上讲,线程阻塞属于程序Hang的一种,其表 ...

  5. C# 链表去重 List 一维 二维 分别使用 Distinct() GroupBy() 方法

    分别使用List中Distinct(),GroupBy()实现链表的去重. 1.先上效果: 一维链表中分别有元素“aa”,"bb",'aa','aa',"cc" ...

  6. 【转载】pycharm破解,可使用到2099年.pycharm版本 pycharm-professional-2016.3.1

    1. Pycharm的安装方法,论坛很多,这里就不赘述了.参照:http://blog.csdn.net/qq_29883591/article/details/52664478 2. 下载Pycha ...

  7. JAVA课堂测试之一位数组可视化

    代码: package test;//求最大子数组 import java.util.Scanner; import javax.swing.JOptionPane; public class shu ...

  8. SQL并发处理方案——乐观锁和悲观锁

    (一)乐观锁和悲观锁的概念 悲观锁 在关系数据库管理系统里,悲观并发控制(又名“悲观锁”,Pessimistic Concurrency Control,缩写“PCC”)是一种并发控制的方法.它可以阻 ...

  9. 顶尖 API 文档管理工具 (Yapi)

    原文地址:https://www.jianshu.com/p/a97d2efb23c5

  10. IDEA 热部署设置(JRebel插件激活)

    参考原文链接:https://blog.csdn.net/feidi7783/article/details/80607374