Docker自定义镜像

30 篇文章 1 订阅
14 篇文章 3 订阅

比如在工作中Docker中的镜像并不满足工作的需要,需要进行自己的配置

这里以centos为例:

上图centos容器不支持vim、ifconfig等,是因为镜像只有linux的内核,舍弃了不需要的很多东西。当我们在拿到镜像后就需要有vim、ifconfig这样的情况下,可以使用DockerFile进行构建自己的镜像

新建文件夹mydata,编写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   centos
MAINTAINER    ypp<ypp@126.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下并重命名为cincontainer.txt,不写默认为c.txt
COPY 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/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.17
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.17
ENV 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

上面运行了自己构建的tomcat,是直接可以运行的一个tomcat、包括jdk。中间出现了一个小插曲,容器名tomcat已经被使用了。换成了mtomcat

访问页面9080端口:

成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值