自定义镜像mycentos
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通