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 上面,然后随时随地可以拉取下来以供使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容