准备工作
- 一台4G内存的centos7虚拟机
- tomcat下载地址: https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.8/bin/apache-tomcat-8.0.8.tar.gz
- jdk下载地址: https://cola-yunos-1305721388.cos.ap-guangzhou.myqcloud.com/20210813/jdk-8u401-linux-x64.tar.gz
安装docker
-
使用阿里云镜像安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
-
配置docker仓库为阿里云
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装最新版docker
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
启动docker并设置开机自启动
systemctl start docker && systemctl enable docker
封装镜像
-
构建基础镜像
docker pull centos
-
使用xftp上传tomcat和jdk
-
改名
mv apache-tomcat-8.0.8.tar.gz tomcat.tar.gz && mv jdk-8u401-linux-x64.tar.gz jdk.tar.gz
-
创建脚本文件
mkdir ~/bin && vi ~/bin/run.sh
#!/bin/bash sh /opt/tomcat/bin/catalina.sh run
-
赋权
chmod -R 777 ~/bin/run.sh
-
创建文件
touch /opt/readme.txt && touch /opt/Dockerfile
-
编写Dockerfile
cd /opt/ && vi Dockerfile
FROM centos MAINTAINER cola<cola_pp@163.com> # 把宿主机当前上下文的readme.txt拷贝到容器/usr/local/路径下 # 并把readme.txt文件重命名cincontainer.txt文件 COPY readme.txt /usr/local/cincontainer.txt # 把宿主机当前上下文的(也就是当前目录)java与tomcat安装包添加到容器中 ADD tomcat.tar.gz /usr/local/ ADD jdk.tar.gz /usr/local/ # 设置工作访问时候的MORKDIR路径,登录DE 落脚点 ENV MYPATH /usr/local WORKDIR $MYPATH # 配置java与tomcat环境变量 # 配置java环境 ENV JAVA_HOME /usr/local/jdk1.8.0_401 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 通过冒号隔开 # 配置tomcat环境 ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.8 ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.8 # 把上面配置的环境放入到PATH环境变量中 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin # 容器运行时监听的端口(暴露端口) EXPOSE 8080 # 启动时运行tomcat # ENTRYPOINT ["/usr/local/tomcat/bin/startup.sh"] # CMD ["/usr/local/tomcat/bin/catalina.sh","run"] CMD /usr/local/apache-tomcat-8.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.0.8/bin/logs/catalina.out # && 表示拼接下一条命令,可以无线的拼接。
-
构建镜像
docker build -t mytomcat .
-
运行docker镜像
docker run -p 9090:8080 --name colatomcat -v /home/mydockerfile/tomcat8/test:/usr/local/tomcat/webapps/test -v /home/mydockerfile/tomcat8/tomcatlogs:/usr/local/tomcat/logs --privileged=true -d mytomcat
-
浏览器访问tomcat
http://192.168.111.129:9090/
构建完成