docker 创建最小化 Java Web 运行环境

  • 服务器环境:CentOS 7
  • 开发环境:macOS:10.13.5

1.下载jdk-1.8或jre-1.8、tomcat-8.5.33到本地

先看看 jdk 和 jre 做出的镜像,差别不是一般的大,差出一个基础镜像来,各位看客自己选择一个即可

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
datong/tomcat              1.1                 1cc76fadca66        4 seconds ago       365 MB
datong/tomcat              1.0                 9e2a8f6f7176        19 hours ago        595 MB

基础镜像是 centos 官方镜像 200 MB

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos           latest              5182e96772bf        5 weeks ago         200 MB
  • 365 MB 的是 jre
  • 595 MB 的是 jdk

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

jre:http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html

tomcat:https://tomcat.apache.org/download-80.cgi#8.5.34

2.上传文件到服务器

服务器新建目录

cd root
mkdir software

上传文件到服务器(需要输入密码的时候输入服务器root用户密码)

scp jdk-8u181-linux-x64.tar.gz root@192.168.1.248:/root/software
scp server-jre-8u181-linux-x64.tar.gz root@192.168.1.248:/root/software
scp apache-tomcat-8.5.33.tar.gz root@192.168.1.248:/root/software

3.下载镜像(假设已经安装好docker)

docker pull centos

4.查看镜像

docker images
docker.io/centos    latest              5182e96772bf        5 weeks ago         200 MB

发现centos镜像已经存在了

5.在centos镜像的基础上运行容器

docker run -it --name my_tomcat --hostname datong -v /root/software/:/mnt/software/ centos bash
  • –name 容器名
  • –hostname 容器主机名
  • -i:表示以“交互模式”运行容器
  • -t:表示容器启动后会进入其命令行
  • -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

假设我们的所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下。

也就是说:/root/software/是本来虚拟机的真实目录,其对应的容器中的目录为:/mnt/software/。

那么虚拟机中/root/software/下存放的文件信息,到容器的/mnt/software/能对应的看到文件信息。

6.安装jdk-1.8或jre-1.8

命令

tar -zxvf jdk-8u181-linux-x64.tar.gz
tar -zxvf server-jre-8u181-linux-x64.tar.gz

解压后的文件夹改名为java移动到 /opt 目录下

cp -r jdk1.8.0_181/ /opt/java

设置环境变量(jdk和jre一样)

vi /etc/profile

在最后加入

export JAVA_HOME=/opt/java
export JRE_HOME=/opt/java/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib

让配置生效

source /etc/profile

7.安装 tomcat-8.5.33

命令

tar -zxvf apache-tomcat-8.5.33.tar.gz

改名移动到 /opt 目录下
设置环境变量

vi /etc/profile

在最后加入

CATALINA_HOME=/opt/tomcat
export CATALINA_HOME

让配置生效

source /etc/profile

8.编写容器运行脚本

需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,比如/root/run.sh作为启动文件,具体过程如下:

创建脚本:

vi /root/run.sh

编辑脚本,将以下内容写进去后保存:

#!/bin/bash
source /etc/profile
sh /opt/tomcat/bin/catalina.sh run

可能会有童鞋会问,为啥不用startup.sh其实startup.sh的源代码就是执行catalina.sh start的。

为运行脚本添加执行权限:

chmod u+x /root/run.sh

最后退出容器,用exit命令即可。

9.在安装好 jdk 和 tomcat 的容器基础上创建镜像

查看正在运行的容器

docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
31f4199cf0fa        centos              "bash"              3 hours ago         Up 2 hours                              my_tomcat

利用配置好的容器创建一个镜像

docker commit my_tomcat datong/tomcat:1.0
sha256:8077e4aa6e613f3a26b55d4f589d4b312def902fa80d9c03acf91b233c2ac381

自动返回一个序列ID,标识生成已经成功了,我们再通过docker images的命令来查看所有镜像。

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
datong/tomcat       1.0                 8077e4aa6e61        5 seconds ago       601 MB

此时,我们可以看到最新创建的镜像“datong/tomcat”,版本标签信息为1.0,镜像ID为:8077e4aa6e61

10.在镜像的基础上运行容器

docker run -d -p 8080:8080 --name my_tomcat1 --hostname datong datong/tomcat:1.0 /root/run.sh

启动后就可以通过 服务器ip:8080端口访问 tomcat 服务了

参考资料:https://blog.csdn.net/smartdt/article/details/77530286

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值