当前位置: 首页 > news >正文

政府网站集约建设方案/bilibili官网网页入口

政府网站集约建设方案,bilibili官网网页入口,wordpress memcache,网页游戏推广平台一、能干嘛? 我们总会遇到下面这种情况:使用docker pull 拉取下来的镜像发现其提供的功能并不完善,比如拉下来个centos的镜像,运行该镜像生成容器发现连vim,ifconfig命令都没有!想要在该镜像的基础上扩充其…

一、能干嘛?

我们总会遇到下面这种情况:使用docker pull 拉取下来的镜像发现其提供的功能并不完善,比如拉下来个centos的镜像,运行该镜像生成容器发现连vim,ifconfig命令都没有!想要在该镜像的基础上扩充其功能点,于是我们想到可以通过如下办法:
先进入该容器进行相关的yum安装等配置,然后安装配置完成之后执行下面的命令让该容器形成一个自定义的镜像:

docker commit -m=“提交描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

但上面的操作还是太麻烦了,需要人手工进入容器,等待软件的一个个下载和安装,有没有一种清单可以把要做的事情规划好,然后交给docker自动按照规划去执行呢?
答案:有的,这就是本篇博客要提到的Dockerfile!

二、Dockerfile基础认知

2.1语法要求

1.每条保留字指令都必须为大写字母且后面要跟随至少一个参数
2.指令按从上到下顺序执行
3.#标识注释
4.每条指令都会创建一个新的镜像层并对镜像进行提交

下面圈出来的部分就是保留字
在这里插入图片描述

2.2Docker执行Dockerfile的大致流程

1.docker从基础镜像运行一个容器
2.执行一条指令并对容器进行修改
3.执行类似docker commit的操作提交一个新的镜像层
4.docker再基于刚提交的镜像运行一个新的容器
5.执行dockerfile中的下一条指令直到所有指令都执行完成

在这里插入图片描述

2.3保留字解析

参考一个tomcat提供的Dockerfile

FROM:基础镜像,当前镜像是基于哪个镜像的,指定一个已存在的镜像作为模版,第一条必须是from
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:容器在构建时需要运行的命令,两种格式:shell格式和exec格式
EXPOSE:暴露的端口
WORKDIR:指定在创建容器后,终端默认登陆进来的工作目录,一个落脚点
USER:指定该镜像以什么样的用户去执行,如果都不指定默认是root
ENV:用来在构建镜像过程中设置环境变量,在其他指令中可以直接引用这些环境变量
VOLUME:容器数据卷,用于数据保存和持久化工作
COPY:类似ADD,拷贝文件和目录到镜像中。
ADD:将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包(完全可代替copy)
CMD:指定容器启动后要做的事情,注意:Dockerfile可以有多个CMD指令,但只有最后一个生效,cmd会被docker run之后的参数替换掉,比如下面命令后面加上了/bin/bash,会将Dockerfile最后的CMD ["catalina.sh", "run"]覆盖掉,导致访问localhost:8080看不见猫
在这里插入图片描述
ENTRYPOINT:也是用来指定一个容器启动时要运行的命令,类似CMD指令,但ENTRYPOINT不会被docker run后面的命令覆盖,而且这些命令行参数会被当作参数,送给ENTRYPOINT指令指定的程序。
在这里插入图片描述

三、小案例

自定义一个centos的镜像,自带java等环境,下面是我的Dockerfile:

#声明当前镜像基于centos
FROM centos
#作者及邮箱
MAINTAINER lzl<382491212@qq.com>
#声明一个变量
ENV MYPATH /usr/local
#进入该镜像后,进入的目录为/usr/local
WORKDIR $MYPATH#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
RUN yum -y install glibc.i686
#创建一个文件夹
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把jdk-8u333-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u333-linux-x64.tar.gz /usr/local/java/
#配置java环境变量,声明变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH#暴露端口 
EXPOSE 80
# 这里的echo 相当于java中的 System.out.println(""),输出到控制台的信息
CMD echo $MYPATH
CMD echo "----------success----------"
CMD /bin/bash

注意要在Dockerfile文件的同级文件中放一个jdk-8u333-linux-x64.tar.gz文件,因为上面的ADD命令用到了了这个!

在这里插入图片描述
然后命令行执行docker build -t centosjava8:1.5即可完成我们的目标!
在这里插入图片描述

http://www.jmfq.cn/news/5051179.html

相关文章:

  • 做网站充值犯法吗/抖音营销软件
  • 网站要做手机版怎么做/做一个企业网站大概需要多少钱
  • 商务网站页面设计技术/建设公司网站大概需要多少钱?
  • 网站备案找哪个部门/最新军事动态最新消息
  • 找公司开发网站/制作一个简单的html网页
  • 济源建设企业网站公司/网站数据分析
  • 东昌府网站建设公司/社交网络推广方法
  • wordpress内链插件/宝鸡seo外包公司
  • 网站备案帐号/seo赚钱项目
  • 网上学编程的有哪些比较好的网站/网络推广与优化
  • 做动态表情包的网站/西安今日头条新闻
  • 淄博网站制作建设/网络推广公司方案
  • 网站建设实训报告模板/视频营销
  • 网站正在建设中界面设计/找培训机构的平台
  • 十元精品店做网站/佛山网站建设方案咨询
  • 徐州学习网站建设/百度网站下拉排名
  • 哪些网站可以做推广/短视频新媒体推广
  • wordpress 声明子主题/苏州seo推广
  • 采购网站建设招标方案/北京网站外包
  • 网站设计制作的服务和质量/网络营销策划方案怎么做
  • 企业网站需要在电信做哪些备案/惠州seo关键词排名
  • 网页设计素材哪里找/重庆网站seo诊断
  • 建设网站要多少钱/学网络营销去哪个学校
  • 南京网站建设与维护/应用商店优化
  • 沈阳做网站怎样收费/软文推广渠道主要有
  • 二手书网站建设策划书/推广自己产品的文案
  • 做网站 长/广州网站营销推广
  • 青岛网站制作公司 网络服务/武汉网站建设推广公司
  • 南阳seo网站排名优化/seo查询系统
  • 任县网站制作/安卓优化大师官网