dockerfile封装docker镜像
一.使用都dockerfile封装docker镜像
1.在任意一个地方创建文件夹docker
mkdir docker
2.进入文件夹并且下载一个django2.1.7的包以及一个epel.repo
cd docker
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
3.在此文件夹下两个文件Dockfile和run.sh

4.编写Dockerfile文件
FROM centos
MAINTAINER TigerLee ADD epel.repo /etc/yum.repos.d # 将当前目录的epel.repo文件拷贝到容器的/etc/yum.repos.d目录下
RUN yum update -y # 运行命令(或yum不是最新的,确保版本比较新) RUN yum install -y python36
RUN yum install -y python36-pip
RUN pip3 install setuptools #安装python相关的东西
ADD Django-2.1.7.tar.gz /opt/ #把djang拷贝到/opt/目录下并且解压 WORKDIR /opt/ # 进入/opt目录
RUN mv Django-2.1.7 django # 运行命令mv WORKDIR /opt/django # 进入/opt/django目录
RUN python3 setup.py install #安装django WORKDIR /opt
RUN django-admin.py startproject qishi ADD run.sh /opt/qishi/run.sh
WORKDIR /opt/qishi
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 qishi ADD run.sh /opt/qishi/run.sh
WORKDIR /opt/qishi
RUN chmod 777 run.sh
EXPOSE 8000
CMD ["/bin/sh","run.sh"]
简洁版
4.编写run.sh
python3 manage.py runserver 0.0.0.0:8000
5.构建镜像
sudo docker build -t tom/django-217 . 最后那个点不能少,表示当前路劲
查看镜像

6.利用构建出来的镜像构造容器(记得端口映射)
docker run -d -p 9090:8000 tom/django-217
查看容器状态:

7.使用交互式模式进入容器,再使用ps -ef查看运行的进程
docker exec -ti 450
ps -ef
8.运行状态查看

9.使用浏览器访问
第一次访问发现报错,因为我们不是本机访问的,所以要修改配置
在ALLOW_HOSTS=['*']
修改完了重新运行容器


10. 导出镜像
docker save -o centos_django217.tar.gz tom/django-217
dockerfile封装docker镜像的更多相关文章
- Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?
老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...
- DOCKER学习_011:使用Dockerfile制作docker镜像
前面使用commit的方式,制作一个docker镜像,本次介绍使用Dockerfile制作一个dockers镜像 [root@docker-server3 ~]# mkdir /openssh [ro ...
- 利用脚本快速执行Dockerfile以及docker镜像的启停与删除
`关于脚本:` 'sh setup.sh build' # 将Dockerfile创建成镜像 'sh setup.sh run' # 启动build创建好的镜像,放到后台运行 'sh setup.sh ...
- 基于Dockerfile创建docker镜像
0.先创建一个文件夹img mkdir img 1.Linux上新建3个文件 2.文件内容分别写入 (1)Dockerfile中 # 基于的基础镜像centos FROM centos # 维护该镜像 ...
- Dockerfile封装Django镜像
部署过程 1.查看镜像 docker images 2.在/opt下建立了docker目录,下载一个django-2.1.7的源码包, mkdir -p /opt/docker cd /docker ...
- 使用Dockerfile封装Django镜像
第一步: 在/opt下建立了docker目录,下载一个django-2.1.7的源码包, touch Dockerfile和run.sh,其中run.sh是用来执行Django的bash脚本,Dock ...
- Docker:dockerfile自动构建镜像 [六]
一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...
- 构建Docker镜像两种方式的比较-Dockerfile方式和S2I方式
前言 写Dockerfile是构建Docker镜像最通常的方式,接触过Docker的童鞋多少了解一些.前段时间研究OpenShift(paas的一种),发现了另外一种构建Docker镜像的方式:S2I ...
- [转] 构建Docker镜像两种方式的比较-Dockerfile方式和S2I方式
原文地址:https://www.cnblogs.com/tianshifu/p/8127837.html 前言 写Dockerfile是构建Docker镜像最通常的方式,接触过Docker的童鞋多少 ...
随机推荐
- [BAT] 通过批处理删除7天前的报告,并删除当前目录下的空文件夹
set reportPath=D:\AutomationReport cd /d %reportPath% forfiles /p %reportPath% /s /m *.xml /d -7 /c ...
- 如何将.pem转换为.crt和.key
如何将.pem转换为.crt和.key? 摘自: https://vimsky.com/article/3608.html 貔貅 技术问答 2017-10-08 23:11 certifica ...
- SQL序列键
当需要更新表中的数据或像表中插入数据时,在很多情况下需要产生唯一的整数序列键 一:更新列的值为唯一值 原数据如下图: 可以定义一个CTE,返回orerid列的值以及row_number()的计算结果. ...
- Mysql设计索引的原则
内容来自书籍<深入浅出MySQL++数据库开发.优化与管理维护+第2版+唐汉明> 设计索引的原则1. 搜索的索引列,不一定是所要选择的列.换句话说,最适合索引的列是出现在 WHERE 子句 ...
- python中return的用法
def testReturn(x): if x > 10000: return print "test return!!" #这句话永远不会得到执行 elif x > ...
- OpenCV源码解析
OpenCV K-means源码解析 OpenCV 图片读取源码解析 OpenCV 视频播放源码解析 OpenCV 追踪算法源码解析 OpenCV SIFT算法源码解析 OpenCV 滤波源码分析:b ...
- 编写高质量代码改善C#程序的157个建议——建议71:区分异步和多线程应用场景
建议71:区分异步和多线程应用场景 初学者有时候会将异步和多线程混为一谈.如果对它们之间的区别不是很清楚,很容易写出下面这样的代码: private void buttonGetPage_Click( ...
- [LeetCode 题解]: Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 题 ...
- 解决 centos 7 部署 tomcat 后外部不能访问应用(端口、防火墙)
https://blog.csdn.net/Rebs_Hugo/article/details/85042602
- js 日期加一天或者减一天,最简单方法
通过计算一天的时间戳是多少进行换算:(new Date(new Date().getTime()-86400000)).Format("yyyy-MM-dd hh:mm:ss")