从虚拟机安装CentOS到自定义Dockerfile构建tomcat镜像
写在开头
整个过程中涉及的三方软件均来源于三方的官网,因此需要有一个稳定良好的访问公网网络的环境,可能需要科学上网
下载并安装 VMware Workstation Player
- 下载
需要先注册登录:https://login.broadcom.com/signin
下载页面:https://support.broadcom.com/group/ecx/downloads
- 安装
比较简单,略
下载并安装CentOS7.9
-
下载
阿里云开源镜像站下载地址:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/
根据自身需要选择一个版本,我这边选了一个最小化的安装版本 -
安装
安装过程中注意几点:
1.语言选择中文简体或英文
2.网络一般选择桥接模式
3.分区的话boot不要太小,500M够用
4.设置一个root密码
配置网络使可访问公网
- 修改配置文件
/etc/sysconfig/network-scripts/ifcfg-ens33
将ONBOOT=no改为ONBOOT=yes - 重启虚拟机网络
service network restart
以上完成后,因为安装过程中选了桥接模式,所以虚拟机和宿主机的网络是通的,只要宿主机连接上公网,虚拟机就可以访问公网。
配置yum源使可安装软件
- 参考https://zhuanlan.zhihu.com/p/579846712
注意:因为之前CentOS安装的是minimal版本,所以没有wget命令,这里第四步要把wget替换成curl命令
至此,虚拟机已安装完,并且可访问公网,可安装一些列常用软件、命令了,比如vim、wget、net-tools等等
安装Docker
- 参考CentOs中docker、docker-compose、docker-machine安装
准备构建Tomcat镜像
- 下载Tomcat
Tomcat官网
- 下载JDK
Oracle官网 注意:要先注册登录才可以下载
历史版本下载页面
- 拉取操作系统基础镜像
目前直接执行docker pull centos:7.9.2009是无法从Docker Hub拉取到镜像的,即使配置了阿里云、中科大、清华、网易等的加速器也不行,所以还需要再迂回一下。本人在github上找到一个方案,这里分享给大家
构建tomcat镜像
- 自定义Dockerfile
历经磨难,终于可以编写Dockerfile了,Dockerfile直接贴出来吧
FROM centos:7.9.2009
MAINTAINER xxx
#COPY ./jdk1.8.0_192 /usr/local/jdk1.8.0_192
#COPY ./apache-tomcat-7.0.61 /usr/local/pache-tomcat-7.0.61
ADD jdk-8u192-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-7.0.61.tar.gz /usr/local/
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_192
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.61
ENV CATALINA_BASE /usr/local/apache-tomcat-7.0.61
ENV PATH $PATH:$JAVA_HOME/bin:$CLASSPATH:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-7.0.61/bin/startup.sh && tail -f /usr/local/apache-tomcat-7.0.61/logs/catalina.out
说明:Dockerfile与前面下载的tomcat、jdk放在一个目录下,用ADD指令会自动解压,也可以用COPY,注意COPY指令后的src路径是tomcat、jdk解压后的、且dest路径也要有解压后的~
- 构建并运行
构建docker build -t tomcat:7.0.61-barley .
查看是否有镜像docker images
运行docker run -P -d tomcat:7.0.61-barley
查看运行的容器docker ps
关闭防火墙systemctl stop firewalld.service
或者放行宿主机端口
浏览器访问tomcat是否正常启动