docker环境搭建centos+jdk+tomcat_CENTOS篇
来源:互联网 发布:ubuntu 安装tftp 编辑:程序博客网 时间:2024/05/16 02:00
前言
(1)写在前面的话,鉴于在linux或类unix系统中安装jdk+tomcat等环境,没有什么经验,所以选择在docker容器中安装之,以防止安装失败无法恢复系统
(2)需要下载对应的系统的docker镜像,如:centos、Ubuntu等
(3)本文并未没有docker安装所需的相关环境说明,可自行查看官网并安装之,此处略
1、下载CENTOS的docker镜像
镜像下载地址DaoCloud
[root@izwz99jhv6u546yu27nrwdz downloads]# docker pull centos略
- 1
- 2
下载完成后,查看已下载的镜像如下:即centos
[root@izwz99jhv6u546yu27nrwdz downloads]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEricharvey/nginx-php-fpm latest b45e0c814c3f 4 days ago 269 MBgolang latest 7afbc2b03b9e 2 weeks ago 675 MBdaocloud.io/library/nginx latest cc1b61406712 3 weeks ago 182 MBnginx latest cc1b61406712 3 weeks ago 182 MBphp 7-fpm 65ec79b1c89d 3 weeks ago 377 MBphp latest 608e59384e11 3 weeks ago 364 MBdaocloud.io/library/ubuntu latest f49eec89601e 3 weeks ago 129 MBcentos latest 67591570dd29 2 months ago 192 MB
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2、进入镜像centos进行相关操作
(1)一些必要的准备比如:安装vim、新建需要的一些目录等
[root@izwz99jhv6u546yu27nrwdz downloads]# docker run -it centos /bin/bash[root@92896fb7e091 /]# yum install vim*...(此处省略n行)...Complete!#说明vim安装成功了[root@92896fb7e091 /]# mkdir -p /home/wangjie#说明-弄个目录留下面挂载用备注:此时需要记住此时的容器ID即92896fb7e091,2中备份需要
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
(2)备份上面对镜像的修改
[root@92896fb7e091 bin]# exit exit[root@izwz99jhv6u546yu27nrwdz ~]# docker commit -m "Added vim_lrzsz_wangjie" -a "Docker Newbee" 92896fb7e091 centos_vim_lrzsz//其中: -m 来指定提交的说明信息,跟我们使用的版本控制工具一样; -a 可以指定更新的用户信息; 92896fb7e091 是用来创建镜像的容器的 ID; centos_vim_lrzsz是指定目标镜像的仓库名(centos_vim_lrzsz) 创建成功后会返回新镜像的 ID:sha256:6ddbdb552b7db7f6cffdba3612664dc9bd25715e079aecefd98d5451ffb8ca35[root@izwz99jhv6u546yu27nrwdz ~]# docker images[root@izwz99jhv6u546yu27nrwdz webapps]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEcentos_vim_lrzsz latest 89796a5c0215 2 hours ago 362 MB
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3、在宿主机弄个目录用于被挂载即对应1中容器的目录
[root@izwz99jhv6u546yu27nrwdz ~]# mkdir -p /home/wangjie/tomcat8[root@izwz99jhv6u546yu27nrwdz ~]# cd /home/wangjie/tomcat8通过rz上传已下载的jdk文件和tomcat到这个目录下,此处我用的是tomcat-8.0.24和jdk-8u91-linux-x64,各位看官可以换成你想要的其他版本。[root@izwz99jhv6u546yu27nrwdz tomcat8]# lltotal 186028-rw-r--r-- 1 root root 9106353 Aug 25 14:47 apache-tomcat-8.0.24.tar.gz-rw-r--r-- 1 root root 181367942 May 5 2016 jdk-8u91-linux-x64.gz
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
4、再次进入新容器进行相关操作
(1)启动并将宿主机目录/home/wangjie/tomcat8挂载到容器中的目录/home/wangjie下
[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker run -i -t -v /home/wangjie/tomcat8:/home/wangjie 89796a /bin/bash//其中: -i 表示以"交互模式"运行容器 -t 表示容器启动后会进入其命令行 -v 表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机绝对目录>:<容器绝对目录> 89796a 即2中新容器的ID,也可以用"容器名:TAG"唯一即可 /bin/bash 即进入容器后的bash shell命令行对应-t[root@0bfc23706742 /]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
(2)在容器中安装jdk和tomcat
[root@0bfc23706742 /]# mkdir -p /opt/tomcat///新建一个目录用于安装tomcat[root@0bfc23706742 /]# mkdir -p /opt/jdk///新建一个目录用于安装jdk[root@0bfc23706742 /]# cd /home/wangjie//切到挂载目录下并查看文件[root@0bfc23706742 wangjie]# lsapache-tomcat-8.0.24.tar.gz jdk-8u91-linux-x64.gz//即宿主机目录/home/wangjie/tomcat8中的文件[root@0bfc23706742 wangjie]# tar -zxf apache-tomcat-8.0.24.tar.gz -C .//tomcat解压后移动之[root@0bfc23706742 wangjie]# mv apache-tomcat-8.0.24/ /opt/tomcat/[root@0bfc23706742 wangjie]# cd /opt/tomcat/[root@000308aec801 tomcat]# lltotal 4drwxr-xr-x 9 root root 4096 Feb 22 02:18 apache-tomcat-8.0.24[root@0bfc23706742 wangjie]# tar -zxf jdk-8u91-linux-x64.gz -C .//jdk解压后移动之[root@0bfc23706742 wangjie]# mv jdk-8u91-linux-x64/ /opt/jdk/[root@0bfc23706742 wangjie]# cd /opt/jdk/[root@000308aec801 jdk]# lltotal 4drwxr-xr-x 8 10 143 4096 Apr 1 2016 jdk1.8.0_91
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
(3)编写运行脚本
当容器运行时,运行该脚本,启动tomcat[root@0bfc23706742 wangjie]# mkdir -p /root/run.sh[root@0bfc23706742 wangjie]# vim /root/run.sh#!/bin/bashexport JAVA_HOME=/opt/jdk/jdk1.8.0_91export PATH=$JAVA_HOME</span>/bin:<span class="hljs-variable">$PATHsh /opt/tomcat/apache-tomcat-8.0.24/bin/catalina.sh run修改脚本执行权限[root@0bfc23706742 wangjie]# chmod u+x /root/run.sh
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
(4)相关操作后…exit。参考2中的备份,再次新建一个容器即可运行tomcat的容器
[root@0bfc23706742 wangjie]# exit//[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker commit -m "Added jdk_tomcat" -a "Docker Newbee" 0bfc23706742 centos_jdk_tomcat此处,为了演示,新增个测试用的新容器[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker commit 0bfc23706742 test_tomcat:1.0[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker images可以查看所有新增的镜像REPOSITORY TAG IMAGE ID CREATED SIZEtest_tomcat 1.0 80f2fd55c5a0 2 hours ago 740 MBcentos_jdk_tomcat latest 38ac50abc54b 2 hours ago 740 MB[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker ps可以看到没有任何正在运行的容器--因为exit的容器都是停止的CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker ps -a可以查看所有已新增的容器(运行的或已停止的)CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb44d32861981 test_tomcat:1.0 "/root/run.sh" 2 hours ago Exited (137) 51 minutes ago test_tomcat_10bfc23706742 89796a "/bin/bash" 2 hours ago Exited (0) 2 hours ago quirky_shaw92896fb7e091 centos_vim_lrzsz:v1 "/bin/bash" 3 hours ago Exited (0) 3 hours ago practical_meitner
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
5、在宿主机准备项目文件,并挂载到docker环境并启动
[root@izwz99jhv6u546yu27nrwdz tomcat8]# mkdir webapps[root@izwz99jhv6u546yu27nrwdz tomcat8]# cd webapps//rz上传项目代码,以jenkins.war为例[root@izwz99jhv6u546yu27nrwdz webapps]# lltotal 81140-rw-r--r-- 1 root root 69874457 Feb 22 10:57 jenkins.war
- 1
- 2
- 3
- 4
- 5
- 6
一切就绪,开始运行tomcat服务
[root@izwz99jhv6u546yu27nrwdz webapps]# docker run -d -p 58080:8080 -v /home/wangjie/tomcat8/webapps/:/opt/tomcat/apache-tomcat-8.0.24/webapps/ --name test_tomcat_1 test_tomcat:1.0 /root/run.sh//其中: -v 略,如前所述说 -d 表示以"守护模式"执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上 -p 表示宿主机与容器的端口映射,此时将容器内部的8080端口映射为宿主机的58080端口,这样就向外界暴露了58080端口,可通过Docker网桥来访问容器内部的8080端口了 --name 表示容器名称,用一个你觉得有意义的名称命名即可 test_tomcat:1.0 即新容器名:TAG /root/run.sh 即需要执行的脚本[root@izwz99jhv6u546yu27nrwdz tomcat8]# docker ps可以看到正在运行的容器了
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
当然你可能会问容器中的tomcat正常启动了吗?日志怎么看?
[root@izwz99jhv6u546yu27nrwdz webapps]# docker logs e25a7d9f4506说明:docker logs [正在运行的容器ID]...(此处省略n行 容器中的tomcat运行日志)...
- 1
- 2
- 3
6、打开浏览器访问之
- (1). 访问-http://120.77.207.178:58080/jenkins
可以正常进入初始页面了. - (2). 此时可能第一个页面需要初始化admin的密码(如上图),密码从哪来呢?
从第5步中的日志中可以看到,复制出来放到页面中即可 - (3). jenkins此处不再赘述。。。
7、其他:
疑问:”以上docker镜像只装了jdk和tomcat,如果有的项目(war包)需要连接数据库(比如:mysql),或还需要PHP、python、apache服务怎么办?”
答复:接上面已经新建的容器继续添加相关服务器即可,当然也可以不都安装在一个镜像中,,可以外接单独的镜像,比如:mysql镜像,然后和上面的镜像进行组装。。。。
待尝试。。。。
阅读全文
0 0
- docker环境搭建centos+jdk+tomcat_CENTOS篇
- docker环境搭建centos+jdk+tomcat_CENTOS篇
- Centos搭建docker环境
- Centos 搭建JDK环境
- CentOS 7 搭建 Docker 环境
- 基于CentOS搭建Docker环境
- Docker搭建JDK,Tomcat运行环境
- centos下Docker环境搭建(一)
- 在Centos 7搭建Docker环境
- 在Centos 7搭建Docker环境
- 【CentOS】 Nginx+jdk+tomcat 环境搭建
- Centos下Jdk、Tomcat环境搭建记录
- Linux---CentOS搭建环境之安装JDK
- Docker在CentOS镜像中搭建JDK和Tomcat
- 使用 Docker 搭建 JavaWeb环境(Tomcat,jdk)
- docker学习6--容器搭建JDK/tomcat环境
- Docker系列~搭建Tomcat和JDK运行环境(六)
- 在docker中搭建apache Tomcat+JDK环境
- 这5种家庭,最容易培养出优…
- Elasticsearch关联查询
- 配置eclipse和Genytion虚拟机关联
- C# 面向对象(多态)
- 【错误】Error:Error: Avoid non-default constructors in fragments: use a default constructor plus
- docker环境搭建centos+jdk+tomcat_CENTOS篇
- 算法提高 9-1九宫格
- 3.css初始化
- 算法提高 9-2 文本加密
- 算法提高 11-1实现strcmp函数
- jQuery语法
- 注解@PostConstruct与@PreDestroy讲解
- PHP中file_get_contents($url)的超时处理
- 题目 十五 并查集