dockerfile

Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器的镜像。

Docker保留字指令

FROM    基础镜像,当前新镜像是基于哪个镜像的

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

RUN     容器构建时需要运行的命令

CMD    指定一个容器启动时要运行的命令(Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换)

ENTRYPOINT指定一个容器启动时要运行的命令(ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数)

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

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

ADD     将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

COPY     类似ADD,拷贝文件和目录到镜像中。(将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置)

VOLUME  容器数据卷,用于数据保存和持久化工作(设置用于将目录下的内容存储到主机而非容器)

USER    用于设置运行命令的用户账号.       p77

WORKDIR 指定在创建容器后,终端默认登陆的进来工作目录。

ONBUILD     当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

自定义定制化tomcat

/xiaohua/tomcat8目录下要有两个包

dockerfile文件内容

FROM         centos
MAINTAINER xiaohua<xhds@126.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
COPY c.txt /usr/local/cincontainer.txt
#把java与tomcat添加到容器中
ADD jdk-8u241-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.53.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_241
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.53
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.53
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-8.5.53/bin/startup.sh" ]
# CMD ["/usr/local/apache-tomcat-8.5.53/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-8.5.53/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.53/bin/logs/catalina.out
docker build -f /xiaohua/tomcat8/dockerfile -t tomcat8  .  //构建镜像文件

docker run -d -p 9080:8080 --name tomcat666 
-v /xiaohua/mydockerfile/tomcat9/test:/usr/local/apache-tomcat-8.5.53/webapps/test
-v /xiaohua/mydockerfile/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-8.5.53/logs --privileged=true tomcat8

最新文章

  1. Python for循环内部实现的一个sample
  2. cisco交换技术list
  3. Ajax的post方法,模拟 从后台读取数据小demo
  4. 第一部分 CLR基础:第2章 生成、打包、部署和管理应用程序及类型
  5. HDU 4022 Bombing(stl,map,multiset,iterater遍历)
  6. 制作LiveCD
  7. vijosP1499炸毁燃料库
  8. POJ2828---线段树与逆序数&amp;&amp;DUTOJ1210---逆序对构造排列
  9. js遍历对象的数组
  10. 合作编辑室计费系统(一)-SVN常见错误
  11. OC语言的特性(一)-消息传递与调用函数的表现形式
  12. Java基础—JDK环境变量配置
  13. IOS学习——iphone X的适配
  14. MSSQL 复制数据 并随机打乱写入
  15. LINQ、Lambda与委托
  16. bzoj 2428 均分数据 模拟退火
  17. new Date()传参的浏览器兼容性
  18. IDEA和WebStorm破解教程--激活n年(随时更新)
  19. Mac 软件专题:高效率工作和学习工具软件推荐
  20. LCX端口内网映射转发

热门文章

  1. Python基础数据类型及其转换
  2. Mybatis原理之数据源和连接池
  3. HashMap的理解
  4. linux mkfifo命令基本用法
  5. 抽空学学KVM(七):虚拟机快照和克隆
  6. linux mount 挂载提示 mount: you must specify the filesystem type
  7. D. Regular Bridge 解析(思維、圖論)
  8. B. Psychos in a Line 解析(思維、單調棧)
  9. Windows2008R2+ IIS7.5+php+mysql 搭建教程
  10. 【总结】springcloud