Docker搭建java程序运行环境

环境:CentOs7

一,安装Docker

1.Docker要求CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

uname -r

在这里插入图片描述
2.确保yum包是最新的,使用root权限进行操作

sudo yum update

3.安装所需的软件包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4.如果有旧版本的docker就先卸载,没有就跳过

sudo yum remove docker  docker-common docker-selinux docker-engine

5.设置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6.查看docker版本,选择自己需要的安装

yum list docker-ce --showduplicates | sort -r

7.开始安装

sudo yum install docker-ce		#默认安装
sudo yum install docker-ce-17.12.0.ce		#指定版本安装,自选

8.安装完成后,开启docker并且设置开机启动

sudo systemctl start docker
sudo systemctl enable docker

9.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

在这里插入图片描述
如果只有Client部分,是由于docker没有启动。

10.安装异常
安装的异常大都是旧版未卸载,卸载之后重新安装即可

二,配置java环境

为docker准备的jdk压缩包
1.下载JDK8
jdk8下载地址
在这里插入图片描述
2.下载完成之后
创建一个文件夹,将下载的压缩包放进来。

mkdir /gz-group

3.下载tomcat
Tomcat下载地址
在这里插入图片描述
下载完成之后同样放入刚才创建好的文件夹内

在这里插入图片描述
目录下面就是我们刚才下载的压缩包。
3.下载Centos7
这个Centos7是为Docker准备的,这里也可以先不下载。预先下载是为了构建容器的时候快一点。

docker pull centos:7

三,构建容器

1.编写构建文件
在我们刚才创建的目录下创建构建文件
在这里插入图片描述
这个文件是编写了构建过程的文件
我这里取名为 javadockerfile

vi javadockerfile

在javadockerfile里面添加以下代码

FROM centos:7
MAINTAINER pkk

ADD jdk-8u221-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.24.tar.gz /usr/local/


ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

FROM centos:7
以Centos7为基础构建容器

ADD jdk-8u221-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.24.tar.gz /usr/local/
添加两个压缩包,docker会自动解压好,/usr/local/ 是解压的文件位置

ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
ENV PATH P A T H : PATH: PATH:JAVA_HOME/bin
ENV是docker中配置环境变量的方式,这里配置了jdk的环境。

2.根据构建文件,开始构建

docker build -t java-docker . -f javadockerfile

创建名为java-docker的镜像
在这里插入图片描述
3.构建完成
成功之后就可以查看现在的镜像了

docker images

在这里插入图片描述
构建完成之后将镜像运行起来,进去检查一下我们的jdk环境

docker run -d -p 8989:8080 -it java-docker /bin/bash

在这里插入图片描述
命令里最主要的就是 -p,我这里意思是将容器的8080端口映射到主机的8989端口,
如果我想访问容器内8080端口的应用程序,直接访问主机的IP+8989端口号就可以了

可以看到容器成功运行之后会生产一串类似于秘钥的字符,我们记住前两位就行了。

查看一下正在运行的容器

docker ps

在这里插入图片描述
可以看到我们刚才运行的容器已经运行了,并且映射了主机端口

4.容器操作
我们的镜像运行起来之后就可以进入镜像操作了

docker exec -it c9 /bin/bash

在这里插入图片描述
根据秘钥的前两位就进入了镜像,可以看到命令行的前缀已经变了
这时候我们检查一下我安装的时候预装的环境
在这里插入图片描述
然后根据我们放置文件的路径去启动Tomcat
在这里插入图片描述
可以看到Tomcat也没问题,证明了我们环境没有问题。用浏览器访问一下
在这里插入图片描述
我这里主机IP是192.168.200.129,加上映射的8989端口成功访问
如果不知道主机IP,可以退出镜像之后使用

exit
ip addr

在这里插入图片描述

四,Docker中运行JAVA程序

1.这时候我们创建一个简单Spring Boot项目
将端口设置为9020,

在这里插入图片描述在这里插入图片描述
2.将项目打成JAR包之后上传到Centos7系统。
在这里插入图片描述
这时候,使用Docker的拷贝命令,将主机中的jar包,拷贝到镜像当中Tomcat文件夹下,webapps文件夹内。
先查看镜像名称,然后拷贝

docker cp com.tyzn.dockertest-0.0.1-SNAPSHOT.jar c9ef216d41fc:/usr/local/apache-tomcat-9.0.24/webapps/

在这里插入图片描述
这里是根据镜像运行后的名称NAMES进行拷贝,通过docker ps命令就能查看镜像名称。

3.启动项目测试
项目准备好之后就可以测试了,但是这时候运行镜像中的jar包是无法访问到的。因为SpringBoot项目9020端口没有映射到主机上,这时候我们需要关闭镜像。关闭之前需要保存我们之前的设置,不然之前复制进去的jar包,修改的文件都会还原。

第一步保存,根据镜像的运行NAMES进行保存

docker commit c9ef216d41fc java-docker-v1

在这里插入图片描述
然后关闭镜像

docker stop c9

第二步,再根据保存好的镜像重新启动,并且映射9020端口,使用 -p 映射多个端口

docker run -d -p 8989:8080 -p 9020:9020 -it java-docker-v1 /bin/bash

在这里插入图片描述
第三步,准备完毕之后进入镜像运行程序

docker exec -it c1 /bin/bash
cd /usr/local/apache-tomcat-9.0.24/bin/
./startup.sh
cd /usr/local/apache-tomcat-9.0.24/webapps/
java -jar com.tyzn.dockertest-0.0.1-SNAPSHOT.jar

在这里插入图片描述
依次运行之后,去浏览器测试是否能正常打开

Tomcat正常
在这里插入图片描述
SpringBoot正常
在这里插入图片描述
到这里,我们就成功在Centos7系统中通过Docker搭建了JAVA运行环境并且成功运行了java项目。
使用Docker镜像,后续不管项目如何迁移,省去繁琐的项目环境搭建环节。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值