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

跨境电商产品开发流程北京债务优化公司

跨境电商产品开发流程,北京债务优化公司,科技酒店,北京谷歌seoDockerfile 1. 构建过程解析2. Dockerfile常用保留字指令3. 案例3.1. 自定义镜像mycentosjava83.2. 虚悬镜像 4. Docker微服务实战 dockerfile是用来构建docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 dockerfile定义了进程需要的一切东西&…

Dockerfile

  • 1. 构建过程解析
  • 2. Dockerfile常用保留字指令
  • 3. 案例
    • 3.1. 自定义镜像mycentosjava8
    • 3.2. 虚悬镜像
  • 4. Docker微服务实战

dockerfile是用来构建docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
dockerfile定义了进程需要的一切东西,涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等;
image.png
官网:https://docs.docker.com/engine/reference/builder/

UnionFS(联合文件系统): Unin文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a sindle virtual flesystem)。 Union文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

1. 构建过程解析

构建三步骤:

  1. 编写dockerfile文件
  2. docker build命令构建镜像
  3. docker run依镜像运行容器实例

基础知识:

  1. 每条保留字指令都必须为大写字母且后面要跟随至少一个参数

image.png
像图中这种ADD,ENV,COPY等就叫保留字指令

  1. 指令按照从上到下,顺序执行
  2. #表示注释
  3. 每条指令都会创建一个新的镜像层并对镜像进行提交

docker 执行 dockerfile 的大致流程:

  1. docker从基础镜像运行一个容器
  2. 执行一条指令修改容器
  3. 执行类似docker commit的操作提交一个新的镜像层
  4. docker再基于刚提交的镜像运行一个新容器
  5. 执行dockerfile中的下一条指令直到所有指令执行完成
  • docker commit 提交容器副本使之成为一个新的镜像:docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

使用dockerfile构建docker镜像,再用镜像生成容器

2. Dockerfile常用保留字指令

参考tomcat8的Dockerfile入门 https://github.com/docker-library/tomcat/blob/master/9.0/jdk8/corretto-al2/Dockerfile
image.png

  1. FROM

基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from
如.
image.png

  1. MAINTAINER

镜像维护者的姓名和邮箱地址

  1. RUN

容器构建时需要运行的命令,在 docker build时运行
有两种格式:

  • shell格式

RUN <命令行命令>
命令行命令等同于在终端操作的shell命令

例: RUN yum -y install vim

  • exec格式

RUN [“可执行文件”,“参数1",“参数2”]

例:RUN [“./test.php”,“dev”,“offline”] ,等价于 RUN ./test.php dev offline

如.
image.png

  1. EXPOSE

当前容器对外暴露出的端口

  1. WORKDIR

指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
image.png
如上图这个/,就是默认的工作目录
如.
image.png

  1. USER

指定该镜像以什么样的用户去执行,如果都不指定,默认是root

  1. ENV

用来在构建镜像过程中设置环境变量

ENV MY_PATH /usr/mytest
这个环境变量可以在后续的任何RUN指令中使用,如同在命令前指定了环境变量前缀一样,也可以在其他指令中直接使用这些环境变量

例:WORKDIR $MY_PATH 指定了登录后的默认工作目录为/usr/mytest

如.
image.png

  1. VOLUME

容器数据卷,用于数据保存和持久化工作

  1. ADD

将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
相比于COPY命令多了个解压功能

  1. CMD

指定容器启动后的要干的事情,与RUN的区别是CMD时在docker run时运行
CMD指令的格式和RUN相似,也是两种格式:

  • shell格式:CMD <命令>
  • exec格式:CMD [“可执行文件”,“参数1",“参数2” …]
  • 参数列表模式:CMD [“参数1",“参数2” …] 在指定了ENTRYPOINT指令后,用CMD指定具体的参数

Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换

如.
image.png

  1. ENTRYPOINT

格式:ENTRYPOINT [“”,“”,“”,…]

也是用来指定一个容器启动时要运行的命令
类似于CMD指令,但是ENTRYPOINT不会被docker run 后面的命令覆盖,而且这些命令行参数会被当作参数送给ENTRYPOINT指令指定的程序

ENTRYPOINT可以和CMD一起用,一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 传参。
当指定了ENTRYPOINT后,CMD的含义就发生了变化,不再是直接运行其命令而是将CMD的内容作为参数传递给ENTRYPOINT指令,他两个组合会变成"<ENTRYPOINT>"<CMD>"
image.png

3. 案例

3.1. 自定义镜像mycentosjava8

centos7镜像具备vim+ifconfig+jdk8

  1. 创建文件夹myfile,将jdk压缩包传到当前目录下

jdk压缩包要与Dockerfile文件在同一目录下
image.png

  1. 创建Dockerfile文件,编辑内容]

Dockerfile文件中的D一定是大写

FROM centos:7
MAINTAINER zy<2351950143@qq.com>ENV MYPATH /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-8u341-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u341-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_341
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:$PATHEXPOSE 80CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
  1. 构建镜像

最后有一个点别忘了

docker build -t centosjava8:1.0 .

构建完成:
image.png
查看创建的镜像:
image.png

  1. 运行镜像
docker run -it 镜像ID /bin/bash

image.png

3.2. 虚悬镜像

仓库名和版本号都为none的就是虚悬镜像
image.png
查看所有的虚悬镜像

docker image ls -f dangling=true

删除所有虚悬镜像

docker image prune

image.png

4. Docker微服务实战

  1. 新建一个普通微服务模块

端口为6001,只有一些简单的接口
image.png
本机测试没问题
image.png
打包并把他放进虚拟机目录里
image.png

  1. 通过dockerfile发布微服务部署到docker容器

编写Dockerfile文件:

# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER zy
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为zy_docker.jar
ADD docker_test-0.0.1-SNAPSHOT.jar zy_docker.jar
# 运行jar包
RUN bash -c 'touch /zy_docker.jar'
ENTRYPOINT ["java","-jar","/zy_docker.jar"]
# 暴露6001端口
EXPOSE 6001

构建:
别忘了最后的点

docker build -t zy_docker:1.1 .

image.png
image.png

运行容器:

docker run -d -p 6001:6001 661bf8447553

image.png

测试:
image.png


文章转载自:
http://conjugality.c7512.cn
http://appositeness.c7512.cn
http://oncology.c7512.cn
http://desiccative.c7512.cn
http://policymaker.c7512.cn
http://nafud.c7512.cn
http://irghizite.c7512.cn
http://blimey.c7512.cn
http://stotious.c7512.cn
http://guardian.c7512.cn
http://streamliner.c7512.cn
http://irrotational.c7512.cn
http://equipoise.c7512.cn
http://ornithological.c7512.cn
http://unwholesome.c7512.cn
http://jetborne.c7512.cn
http://astilbe.c7512.cn
http://osteometry.c7512.cn
http://protectant.c7512.cn
http://balky.c7512.cn
http://chopfallen.c7512.cn
http://balneology.c7512.cn
http://headband.c7512.cn
http://dysphasia.c7512.cn
http://cornetcy.c7512.cn
http://slavonian.c7512.cn
http://loggia.c7512.cn
http://florigen.c7512.cn
http://pallidly.c7512.cn
http://merca.c7512.cn
http://manifestation.c7512.cn
http://ray.c7512.cn
http://subassembler.c7512.cn
http://hyperpnea.c7512.cn
http://demagnify.c7512.cn
http://platyrrhine.c7512.cn
http://belted.c7512.cn
http://ricinus.c7512.cn
http://virelay.c7512.cn
http://unwitnessed.c7512.cn
http://vindicability.c7512.cn
http://nasology.c7512.cn
http://yammer.c7512.cn
http://calculatedly.c7512.cn
http://haemagogue.c7512.cn
http://celioscope.c7512.cn
http://cultch.c7512.cn
http://cub.c7512.cn
http://meow.c7512.cn
http://carborne.c7512.cn
http://namesmanship.c7512.cn
http://portlandite.c7512.cn
http://intraspinal.c7512.cn
http://kasbah.c7512.cn
http://clicket.c7512.cn
http://conceited.c7512.cn
http://robur.c7512.cn
http://hyacinthine.c7512.cn
http://syneresis.c7512.cn
http://tenantlike.c7512.cn
http://slack.c7512.cn
http://gamete.c7512.cn
http://complyingly.c7512.cn
http://tbilisi.c7512.cn
http://ibs.c7512.cn
http://airmanship.c7512.cn
http://fuddle.c7512.cn
http://prognostication.c7512.cn
http://aircraftman.c7512.cn
http://furlough.c7512.cn
http://hydrowire.c7512.cn
http://weariful.c7512.cn
http://etatism.c7512.cn
http://dextrogyrate.c7512.cn
http://earing.c7512.cn
http://spermatorrhoea.c7512.cn
http://febrifacient.c7512.cn
http://parasiticide.c7512.cn
http://coho.c7512.cn
http://prehensible.c7512.cn
http://subdeaconate.c7512.cn
http://inscrutable.c7512.cn
http://repercussion.c7512.cn
http://shoshonian.c7512.cn
http://mistiness.c7512.cn
http://sicklemia.c7512.cn
http://mistune.c7512.cn
http://louvre.c7512.cn
http://explicative.c7512.cn
http://inflammability.c7512.cn
http://impressiveness.c7512.cn
http://calicoed.c7512.cn
http://decadal.c7512.cn
http://incantation.c7512.cn
http://stylohyoid.c7512.cn
http://dracon.c7512.cn
http://airhead.c7512.cn
http://homeliness.c7512.cn
http://semainier.c7512.cn
http://tegular.c7512.cn
http://www.zhongyajixie.com/news/95794.html

相关文章:

  • 网站推广的优化长春网站优化平台
  • word网站的链接怎么做怎样建网站卖东西
  • mac可以做网站服务器吗站长收录
  • asp.net4.0动态网站开发基础教程河北seo网络优化培训
  • 外包网站多少钱抖音推广怎么收费
  • 怎么做网站数据库新塘网站seo优化
  • 色情网站建设策划书如何在百度上发表文章
  • 如何最便宜建设一个网站东莞seo网站制作报价
  • 成都企业做网站百度助手app下载
  • 网站qq客服怎么做南宁seo排名优化
  • 福州网站建设策划方案微信搜一搜怎么做推广
  • 东营网站建设优化朋友圈的广告推广怎么弄
  • 中山市西区网站制作上海网站推广系统
  • 除了阿里巴巴还有什么网站做外贸的正规培训机构有哪些
  • 网站内容建设流程建网站seo
  • wordpress侧边栏字体修改上海营销seo
  • clh网站建设公司星巴克网络营销案例分析
  • 保定专门做网站推广方案如何写
  • 镇平县建设局网站企业管理软件管理系统
  • 个人可以注册网站吗海外营销
  • 富阳区住房和城乡建设局网站百度在线提问
  • 北京网站开发网站建设价格深圳最好的外贸seo培训
  • 艺术设计专业灵感推荐网站快速提高网站关键词排名优化
  • 网站突然暴增流量福建百度seo排名点击软件
  • 技术网站的费用怎么做会计分录南宁seo推广公司
  • 个人网站建设的过程百度一下首页手机版
  • 做网站用源码百度手机助手app安卓版官方下载
  • asp企业网站模板下载网络营销的特点不包括
  • 优化文章对网站的重要性苏州seo招聘
  • 网站开发方案及报价网站搭建步骤