自定义镜像mycentos

编写Dockerfile:

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

EVN 用来构建镜像的环境变量

WORKDIR 构建镜像的落脚点

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

RUN 容器构建时需要运行的命令 这里下载了vim和net-tools

EXPOSE 当前容器对外暴露出的端口 比如自己构建tomcat时的EXPOSE就可以设置为8080

构建镜像运行容器:docker build -f /mydata/DockerFile -t my/centos .

如果要定义TAG/版本,比如1.1版本,不定义版本默认lastest:docker build -f /mydata/DockerFile -t my/centos:1.1 .

以上就完成了自己的需求的镜像,以后需要直接使用就可以了,不需要额外再次构建或者下载,可以上传到Docker镜像库,运维也可以直接拉镜像下来即可,tomcat、mysql、redis等同理

做一个稍微复杂点的tomcat镜像:

创建一个目录:mkdir -p /ypp/mydockerfile/tomcat9

将jdk和tomcat9的压缩包放入tomcat9这个目录,新建c.txt,用于测试COPY命令拷贝

DockerFile:

FROM centosMAINTAINER yppypp@126.com#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下并重命名为cincontainer.txt,不写默认为c.txtCOPY c.txt /usr/local/cincontainer.txt#把java与tomcat添加到容器中ADD jdk-8u171-linux-x64.tar.gz /usr/local/ADD apache-tomcat-9.0.17.tar.gz /usr/local/#安装vim编辑器RUN yum -y install vim#设置工作访问时候的WORKDIR路径,登录落脚点ENV MYPATH /usr/localWORKDIR $MYPATH#配置java与tomcat环境变量ENV JAVA_HOME /usr/local/jdk1.8.0_171ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.17ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.17ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin#容器运行时监听的端口EXPOSE 8080#启动时运行tomcat

ENTRYPOINT ["/usr/local/apache-tomcat-9.0.17/bin/startup.sh" ]

CMD ["/usr/local/apache-tomcat-9.0.17/bin/catalina.sh","run"]

CMD /usr/local/apache-tomcat-9.0.17/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.17/logs/catalina.out

以上方式各种各样,比如服务器正在运行着一个tomcat,可以将tomcat/webapps下面的项目,通过ADD的命令把正在运行的项目放入构建的tomcat镜像里面的webapps里面,微服务等都可以

构建自己的tomcat以及运行,页面直接访问.运行tomcat后台进程运行 docker run -d -p 9080:8080 --name tomcat mytomcat

 

 

posted @   摆烂专家  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示