docker安装部署tomcat,并发布war或者springboot工程

第一部分:docker的安装

1、卸载旧的docker版本,初次安装这一步可以不执行

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

2、更新yum软件源,并安装docker

更新yum

yum update

​ 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源

sudo yum install -y yum-utils

​ 添加yum源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新索引

centos7

sudo yum makecache fast

centos8

sudo yum makecache

启动最重要的一步:安装docker

sudo yum install docker-ce docker-ce-cli containerd.io

3、启动docker

sudo systemctl enable docker
sudo systemctl start docker

4、建立docker组,并把当前用户放在docker组中

sudo groupadd docker

sudo usermod -aG docker $USER

5、检查docker是不是安装成功

docker run --rm hello-world

或者使用

docker version

第二部分:docker安装tomcat

安装tomcat8.5.38

   docker pull tomcat:8.5.38

以9601端口启动服务

docker run --name tomcat9601 -d -p 29601:9601 tomcat:8.5.38  

查看docker是否已经启动成功

docker ps

启动docker容器

  docker start  <容器id>

停止容器

 docker stop  <容器id>

进去docker镜像容器内部

docker exec -it 容器Id /bin/bash

第三部分: docker 容器内部配置JDK

1.在宿主系统下载所需要的jdk版本的gz文件

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2.复制gz文件到容器中的root的用户目录下

#sudo docker cp /jdk-8u131-linux-x64.tar.gz <容器名称或者ID>:/root/

3.进入容器

#sudo docker exec -it <容器名称或者ID> /bin/bash

4. 新建JAVA_HOME文件夹/usr/lib/jvm并将jdk解压到该路径

cd ~ 
cp jdk-8u201-linux-x64.tar.gz /usr/lib/jvm/
cd /usr/lib/jvm
tar zxvf jdk-8u201-linux-x64.tar.gz
chown root:root jdk1.8.0_201 -R 

5.设置环境变量

vim ~/.bashrc 

添加以下内容到该文件:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_201  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH 

6.使得环境变量马上生效

source ~/.bashrc

7.验证JDK版本

# java -version
 
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

第四部分:将服务发布到docker内部

使用docker cp将liunx 下的war文件拷贝到docker容器中

首先、使用docker exec 进入docker,查看docker内部tomcat的目录

docker exec -it 容器Id /bin/bash

其次、使用exit退出docker模式

exit

再次、使用docker cp命令,将liunx机器下的文件拷贝到docker的tomcat目录下

docker cp /usr/local/tomcat/sunyuhua.txt tomcat9601:/usr/local/tomcat/webapps/sunyuhua.txt

最后、重启容器

docker restart 5863d61ae6ee

上面的方法有点麻烦,但是这是基本的操作步骤,现在基于这个编写shell命令的方式执行。讲解第二种方法

1、编辑宿主机中的tomcat必备文件

将tomcat的配置文件,webapps目录,setting下的catalina.sh

[root@izbp13y6uttfs3mmgejd5mz geexek]# cd tomcat
[root@izbp13y6uttfs3mmgejd5mz tomcat]# ls
config  logs  setting  webapps
[root@izbp13y6uttfs3mmgejd5mz tomcat]# pwd
/opt/geexek/tomcat
[root@izbp13y6uttfs3mmgejd5mz tomcat]# cd setting/
[root@izbp13y6uttfs3mmgejd5mz setting]# ls
timerbackend_9601
[root@izbp13y6uttfs3mmgejd5mz setting]# cd  timerbackend_9601/
[root@izbp13y6uttfs3mmgejd5mz timerbackend_9601]# ls
catalina.sh
[root@izbp13y6uttfs3mmgejd5mz timerbackend_9601]# pwd
/opt/geexek/tomcat/setting/timerbackend_9601
[root@izbp13y6uttfs3mmgejd5mz timerbackend_9601]# cd ..
[root@izbp13y6uttfs3mmgejd5mz setting]# ls
timerbackend_9601
[root@izbp13y6uttfs3mmgejd5mz setting]# cd ..
[root@izbp13y6uttfs3mmgejd5mz tomcat]# ls
config  logs  setting  webapps
[root@izbp13y6uttfs3mmgejd5mz tomcat]# cd logs
[root@izbp13y6uttfs3mmgejd5mz logs]# ls
timerbackend_9601
[root@izbp13y6uttfs3mmgejd5mz logs]# pwd
/opt/geexek/tomcat/logs

2、将已经save好的tar文件scp到需要安装的机器上。

scp centos7-base-sshd-jdk8-tomcat7.tar root@47.96.82.208:/root

3、将tar文件load成镜像

docker load -i centos7-base-sshd-jdk8-tomcat7.tar

4、编辑sh脚本

我的脚本的名字是:deploy_docker_tomcat_app.sh


#!/bin/bash
if [ $# -ne 3 ]
then
echo "usage: ./$0 appname=sanjiaomao srv_port=9700 ssh_port=22970"
exit 1
fi

apphome='/opt/geexek'

i=1
while [ $i -le 3 ]
do
echo $1
export $1
shift
let i=$i+1
done

approot=${apphome}/tomcat/webapps/${appname}
if [ ! -d ${approot} ]
then
mkdir -p ${approot}
fi

logroot=${apphome}/tomcat/logs/${appname}_${srv_port}
if [ ! -d ${logroot} ]
then
mkdir -p ${logroot}
fi

catalina_setting=${apphome}/tomcat/setting/${appname}_${srv_port}
if [ ! -d ${catalina_setting} ]
then
mkdir -p ${catalina_setting}
fi

classes_config=${apphome}/tomcat/config/${appname}_${srv_port}
if [ ! -d ${classes_config} ]
then
mkdir -p ${classes_config}
fi

docker run -d \
--name ${appname}_${srv_port} \
-p ${srv_port}:8080 \
-p ${ssh_port}:22 \
-v ${approot}:/opt/apache-tomcat-7.0.62/webapps/${appname} \
-v ${logroot}:/opt/apache-tomcat-7.0.62/logs \
-v ${catalina_setting}/catalina.sh:/opt/apache-tomcat-7.0.62/bin/catalina.sh \
-v ${classes_config}:/opt/apache-tomcat-7.0.62/webapps/${appname}/WEB-INF/classes/config \
centos7-base-sshd-jdk8-tomcat7:latest

5、执行脚本

./deploy_docker_tomcat_app.sh appname=timerbackend srv_port=9601 ssh_port=29601

6、查看脚本运行情况

root@izbp13y6uttfs3moffnijuz ~]# docker ps
CONTAINER ID   IMAGE                                   COMMAND                  CREATED          STATUS          PORTS                                           NAMES
0e7ceedd9b9b   centos7-base-sshd-jdk8-tomcat7:latest   "/bin/sh -c '/opt/ap…"   14 minutes ago   Up 14 minutes   0.0.0.0:29601->22/tcp, 0.0.0.0:9601->8080/tcp   timerbackend_9601

如果再有机器需要安装,直接scp脚本,scp tomcat的目录和tar文件,重复上面操作即可。

附注:文件下载地址
https://download.csdn.net/download/sunyuhua_keyboard/19729710


上面的方法虽然简化了步骤,但是还是太繁琐,使用dockerfile来完成部署。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值