Centos7_Docker_06_dockerfile构建tomcat镜像

一、先创建tomcat 的 Dockerfile目录
mkdir -pv /docker/tomcat
cd /docker/tomcat
wget http://www.xchinagroup.top/softdown/centos7/13_elk/jdk-8u201-linux-x64.tar.gz
JDK包比较大,先下载好JDK安装包,在构建tomcat镜像时就会快一些。
注意JDK安装包,放在/docker/tomcat/ 里面
二、一键安装tomcat脚本
cd /docker/tomcat
2.1、准备好tomcat安装脚本
vim tomcat_install.sh
+++++++++++++++++++++++++ tomcat_install.sh +++++++++++++++++++++++
#!/bin/bash
yum install gcc gcc-c++ vim net-tools wget tar -y
cd /opt/
tar zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/
echo 'export JAVA_HOME=/usr/local/jdk1.8.0_201/' >>/etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >>/etc/profile
echo 'export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH' >>/etc/profile
source /etc/profile
wget http://www.xchinagroup.top/softdown/centos7/16_docker/apache-tomcat-9.0.20.tar.gz
tar zxf apache-tomcat-9.0.20.tar.gz
mv apache-tomcat-9.0.20 /usr/local/tomcat
++++++++++++++++++++++++++++++++++++++++++++++
2.2、准备一个yum源文件(国内用163的yum源会更快一些) 在/docker/tomcat/ 这个目录下面
vim CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
++++++++++++++++++++++++++++++++++++++++++++++++++

2.3、创建Dockerfile 文件:在/docker/tomcat/ 这个目录下面

vim /docker/tomcat/Dockerfile
FROM centos7
MAINTAINER xc 331758730@qq.com
COPY jdk-8u201-linux-x64.tar.gz /opt/jdk-8u201-linux-x64.tar.gz
COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
COPY tomcat_install.sh /tmp/tomcat_install.sh
RUN sh /tmp/tomcat_install.sh; \rm -rf /opt/*
+++++++++++++++++++++++++++++++++++++++++++


/docker/tomcat 里面,应该有如下文件。



三、使用Dockerfile构建tomcat镜像

cd /docker/tomcat
docker build -t dfsc_tomcat .





+++++++++++++++++++++++++++++++++++++++++++++++++++++


########:
/usr/local/tomcat/bin/startup.sh #这个是后台启动
/usr/local/tomcat/bin/catalina.sh run #这个是前台启动
四、测试创建的tomcat镜像是否正常
docker run -d dfsc_tomcat /bin/bash -c 'source /etc/profile; /usr/local/tomcat/bin/catalina.sh run'

进入到dfsc_tomcat 的/bin/bash


mkdir -pv /opt/app-root/etc


vim /opt/app-root/etc/scl_enable

# This file contains automatic SCL enablement.
unset BASH_ENV PROMPT_COMMAND ENV
保存退出。






++++++++++++++++++++++++++ END +++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

####:关于进入容器出现:bash: /opt/app-root/etc/scl_enable: No such file or directory

直接在Dockerfile文件中添加如下内容:

RUN mkdir -p /opt/app-root/etc/; \echo "unset BASH_ENV PROMPT_COMMAND ENV" >>/opt/app-root/etc/scl_enable

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



docker build -t tomcat_01 .

docker run -d tomcat_01 /bin/bash -c 'source /etc/profile; /usr/local/tomcat/bin/catalina.sh run'





+++++++++++++++++++++++++++++++++++++++++++++++++++