docker构建javaweb 环境(jdk1.8+tomcat8)

本文阐述如何创建一个docker实例,以及安装tomcat8和 jdk1.8


① 原材料准备

准备一台centos的linux操作系统一枚
配置要求:
必须是64位操作系统,建议内核在3.8以上,查看内核命令:uname -r

② 使用yum安装docker

# yum install docker
# docker version
# systemctl start  docker.service

以上三步是安装docker,查看docker版本(是否安装成功),启动docker服务

image.png

③ 获取centos镜像

docker下载centos镜像

docker pull centos:7.2.1511

查看本地镜像信息

docker images 
image.png

REPOSITORY :仓库名称
TAG : 镜像标签 (后面可用于发布到个人dockerhub上)
IMAGE ID : 镜像ID
CREATED : 创建时间
SIZE : 大小
下载的centos镜像ID为:======4cbf48630b46======

② 创建容器

容器是基于镜像创建的,执行镜像生成容器,方可进入容器
启动容器命令: docker run <相关参数> <镜像 ID> <初始命令>

启动容器

docker run -i -t -v /root/software/:/mnt/software/ 4cbf48630b46 /bin/bash

参数解析
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
/bin/bash:一旦容器启动,需要执行的命令,当前使用 "/bin/bash", 表示启动后直接进bash shell

tips:这里挂载的意思就是 4cbf48630b46创建的容器访问 /mnt/software/ 目录下的文件就相当于访问 宿主机的 /root/software/下的文件,且两者文件夹里内容相同

==执行完上面命令后,自动会进入容器内部。==


image.png

退出当前容器命令:ctrl+d 或者 直接输入 exit

image.png

进入容器命令
docker ps : 查看当前运行的容器信息(刚才那种退出方式就会默认关闭容器)
docker ps -a : 查看关闭的容器

image.png

docker start [容器ID]:启动容器
docker exec -it [容器ID] /bin/bash : 进入容器

image.png

进入容器的方式有好多种,还有docker attach [容器ID],但是在下用这个命令经常卡死
常用进入容器传送门:
https://blog.csdn.net/skh2015java/article/details/80229930

③在容器内部安装tomcat8+jdk1.8 【版本一样安装

下载 tomcat和jdk的 tar包,通过ftp工具上传到宿主服务器的/root/software/文件下,因为前面做了挂载,所以待会进入docker容器里的/mnt/software/文件夹下也是可以看到的

image.png

进入到容器内部,进入/mnt/software/ 你会发现这里已经有了两个tar包

cd /mnt/software/
image.png

好了,接下在安装tomcat 和 jdk 和 平时在linux安装差不多
解压,然后丢到 /opt/ 文件目录下

tar -zxvf apache-tomcat-8.0.53.tar.gz
tar -zxvf jdk-8u141-linux-x64.tar.gz 

mv apache-tomcat-8.0.53 /opt/tomcat
mv jdk1.8.0_141/ /opt/jdk

设置java 环境变量

vi /etc/profile

在文件末尾加上

JAVA_HOME=/opt/jdk/
JAVA_BIN=/opt/jdk/bin
JRE_HOME=/opt/jdk/jre
CLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar
export  JAVA_HOME  JAVA_BIN JRE_HOME  PATH  CLASSPATH

使得配置立马有效

source /etc/profile
vi ~/.bashrc

在文件末尾加上

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使得配置立马有效

source ~/.bashrc

看了网上好多设置一个就可以了,但是在下总是不成功,很生气所以两个都设置了。(实践得出 设置 bashrc 这个就可以了)

看看成功没

java -version 
image.png

OK !!!

这个容器的初衷是用来当web服务器,所以可以把这个容器理解为 启动容器,则启动tomcat,所以这里要写个启动脚本

vi /root/run.sh

在里面加入,用于启动tomcat

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

设置run.sh 权限

chmod u+x /root/run.sh

这个时候都安装完毕,输入eixt退出容器

回顾一下,我们是用了centos镜像,运行,生成了一个容器,然后再容器里面安装了 jdk 和tomcat ,这个时候我们可以创建一个tomcat镜像

④ 创建tomcat镜像

根据之前安装好环境的容器ID 创建一个镜像

docker commit [容器ID] mytomcat:1.0

docker ps -a
docker commit 8acb7b3d6782  mytomcat:1.0
docker images

image.png

好了,tomcat镜像已经完毕

⑤ 启动tomcat容器

首先再宿主服务器创建一个webapps文件夹,用来存放项目,映射容器中的 tomcat 的webapps,这里就写个index.html 得了,存放在 宿主机的 /root/webapps/test
备注:不要把index.html 直接丢到webapps下,否则访问会 404,创建一个文件夹放index.html ,这里是test文件夹。

mkdir /root/webapps/test
cd /root/webapps/test
vi index.html 

在index.html 写个hello

image.png

==启动tomcat==

docker run -d -p 58080:8080 -v /root/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:1.0 /root/run.sh

参数解释:
-d:以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
--name:表示容器名称,用一个有意义的名称命名即可。

查看是否启动成功

docker ps 

image.png

好了浏览器访问: ip:58080/test/index.html

image.png

OK 大功告成,下篇写如何把自己的镜像丢到dockerhub 上面,然后随时随地可以拉取下来以供使用。

你可能感兴趣的:(docker构建javaweb 环境(jdk1.8+tomcat8))