docker环境搭建centos+jdk+tomcat_CENTOS篇

前言

(1)写在前面的话,鉴于在linux或类unix系统中安装jdk+tomcat等环境,没有什么经验,所以选择在docker容器中安装之,以防止安装失败无法恢复系统

(2)需要下载对应的系统的docker镜像,如:centos、Ubuntu等

(3)本文并未没有docker安装所需的相关环境说明,可自行查看官网并安装之,此处略

1、下载CENTOS的docker镜像

镜像下载地址DaoCloud

[[email protected] downloads]# docker pull centos
略

下载完成后,查看已下载的镜像如下:即centos

[[email protected] downloads]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
richarvey/nginx-php-fpm      latest              b45e0c814c3f        4 days ago          269 MB
golang                       latest              7afbc2b03b9e        2 weeks ago         675 MB
daocloud.io/library/nginx    latest              cc1b61406712        3 weeks ago         182 MB
nginx                        latest              cc1b61406712        3 weeks ago         182 MB
php                          7-fpm               65ec79b1c89d        3 weeks ago         377 MB
php                          latest              608e59384e11        3 weeks ago         364 MB
daocloud.io/library/ubuntu   latest              f49eec89601e        3 weeks ago         129 MB
centos                       latest              67591570dd29        2 months ago        192 MB

2、进入镜像centos进行相关操作

(1)一些必要的准备比如:安装vim、新建需要的一些目录等

[[email protected] downloads]# docker run -it centos /bin/bash
[[email protected]92896fb7e091 /]# yum install vim*
...(此处省略n行)...
Complete!
#说明vim安装成功了

[[email protected]92896fb7e091 /]# mkdir -p /home/wangjie
#说明-弄个目录留下面挂载用

备注:此时需要记住此时的容器ID即92896fb7e091,2中备份需要

(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 images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
centos_vim_lrzsz                     latest              89796a5c0215        2 hours ago         362 MB

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]# ll
total 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

4、再次进入新容器进行相关操作

(1)启动并将宿主机目录/home/wangjie/tomcat8挂载到容器中的目录/home/wangjie下

[[email protected] 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
[[email protected] /]# 

(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]# ls
apache-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]# ll
total 4
drwxr-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]# ll
total 4
drwxr-xr-x 8 10 143 4096 Apr  1  2016 jdk1.8.0_91

(3)编写运行脚本

当容器运行时,运行该脚本,启动tomcat
[[email protected]0bfc23706742 wangjie]# mkdir -p /root/run.sh
[[email protected]0bfc23706742 wangjie]# vim /root/run.sh
#!/bin/bash

export JAVA_HOME=/opt/jdk/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH

sh /opt/tomcat/apache-tomcat-8.0.24/bin/catalina.sh run

修改脚本执行权限
[[email protected]0bfc23706742 wangjie]# chmod u+x /root/run.sh

(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             SIZE
test_tomcat                          1.0                 80f2fd55c5a0        2 hours ago         740 MB
centos_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               NAMES
b44d32861981        test_tomcat:1.0                         "/root/run.sh"           2 hours ago         Exited (137) 51 minutes ago                       test_tomcat_1
0bfc23706742        89796a                                  "/bin/bash"              2 hours ago         Exited (0) 2 hours ago                            quirky_shaw
92896fb7e091        centos_vim_lrzsz:v1                     "/bin/bash"              3 hours ago         Exited (0) 3 hours ago                            practical_meitner

5、在宿主机准备项目文件,并挂载到docker环境并启动

[root@izwz99jhv6u546yu27nrwdz tomcat8]# mkdir webapps
[root@izwz99jhv6u546yu27nrwdz tomcat8]# cd webapps
//rz上传项目代码,以jenkins.war为例
[root@izwz99jhv6u546yu27nrwdz webapps]# ll
total 81140
-rw-r--r--  1 root root 69874457 Feb 22 10:57 jenkins.war

一切就绪,开始运行tomcat服务

[[email protected] 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 即需要执行的脚本
[[email protected] tomcat8]# docker ps
可以看到正在运行的容器了

当然你可能会问容器中的tomcat正常启动了吗?日志怎么看?

[[email protected] webapps]# docker logs e25a7d9f4506
说明:docker logs [正在运行的容器ID]
...(此处省略n行 容器中的tomcat运行日志)...

6、打开浏览器访问之

  • (1). 访问-http://120.77.207.178:58080/jenkins 
    可以正常进入初始页面了. 
  • (2). 此时可能第一个页面需要初始化admin的密码(如上图),密码从哪来呢? 
    从第5步中的日志中可以看到,复制出来放到页面中即可
  • (3). jenkins此处不再赘述。。。

7、其他:

疑问:”以上docker镜像只装了jdk和tomcat,如果有的项目(war包)需要连接数据库(比如:mysql),或还需要PHP、python、apache服务怎么办?”

答复:接上面已经新建的容器继续添加相关服务器即可,当然也可以不都安装在一个镜像中,,可以外接单独的镜像,比如:mysql镜像,然后和上面的镜像进行组装。。。。 
待尝试。。。。

原文地址:https://www.cnblogs.com/cxxjohnson/p/8411060.html

时间: 2024-10-16 06:26:33

docker环境搭建centos+jdk+tomcat_CENTOS篇的相关文章

环境搭建-CentOS集群搭建

环境搭建-CentOS集群搭建 写在前面 最近有许多小伙伴问我,大数据的hadoop分布式集群该如何去搭建.所以,想着,就写一篇博客,帮助到更多刚入门大数据的人.本博客会一步一步带你实现一个Hadoop的搭建.跟着博客上面的步骤,很详细的.你很快就会有一个自己的hadoop集群啦. 我是在自己的windows机器上使用virtualBox来虚拟三台机器,作为实验的环境. 实验环境 Windows 宿主机:Windows 10 (其余也是可以的) VirtualBox 版本:VirtualBox

基于docker环境搭建kafka集群(三台真机之间)

环境基于docker,三台物理主机192.168.0.27.192.168.0.28.192.168.0.29,每台主机部署一个zookeeper节点,一个kafka节点,共三个zookeeper节点,三个kafka节点,容器之间的网络采用host模式 1.拉取镜像 2.启动容器 step1. 创建配置文件zoo.cfg并替换容器内的该文件,不同的镜像有可能zoo.cfg位置不同 # The number of milliseconds of each tick tickTime=2000 #

docker环境搭建(基于CentOS系统)

docker是什么参考菜鸟教程介绍: 链接如下:https://www.runoob.com/docker/docker-tutorial.html docker相比虚拟机,docker不需要重复的去安装,操作系统,虚拟机之类,一次安装,以后都可以用. docker环境要求: 环境满足之后,就开始安装了. 第1步:安装docker依赖包: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 这里root用户登录的lin

Android开发环境搭建Eclipse+JDK+ADT+AVD(系列一)

引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld.本文的主题如下: 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.Android SDK安装 1.4.ADT安装 1.5.创建AVD 2.HelloWorld 1.环境搭建 1.1.JDK安装

java开发环境搭建(jdk安装)和经常出现问题的探讨

面对许多java初学者环境搭建出现的问题 第一步: 1,首先在可以百度jdk进入oracle的官网也可以进入这个网站 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2,下载完成后点击jdk进行安装 点击下一步到(!!!!记住jdk的安装路径!!!!!)可以自己修改安装路径,只需要记住就可以了 点击下一步开始安装,直到跳出下面是界面也就是安装jre的界面(可以进行点击下一步安

docker环境搭建

docker安装(centos) 添加代理 [[email protected] ~]# export https_proxy=http://192.168.102.10:8118 [[email protected] ~]# export http_proxy=http://192.168.102.10:8118 安装docker repository 根据操作系统选择需要的docker版本 https://docs.docker.com/install/linux/docker-ce/cen

docker 实战---中小企业docker环境搭建(五)

docker对于中小企业来说,搭建paas没有那个精力,也没那个必要,用做个人的sandbox用处又小了点,个人认为作为中小企业可以用docker来标准化开发.测试.生产环境. 画了简单的图: docker占用资源小,在一台E5 128G内存的服务器服务器上部署100个容器都绰绰有余,可以单独抽一个容器或则直接在宿主物理主机上部署samba,利用samba的home分享方案将每个用户的home目录映射到开发中心和测试部门的windows机器上.可以针对项目组,由架构师搭建好一个标准的容器环境供项

Docker环境搭建,K8s

boot2docker一个轻量级的 Linux 发行版,基于 Tiny Core Linux ,用来在 Windows 和 Mac 的虚拟机中运行 Docker 容器 Boot2Docker.iso 下载地址:http://pan.baidu.com/s/1hrTqKcs Docker Toolbox整合工具包,让你方便的搭建一个 Docker 的开发环境,里面包含有 Docker client, Compose (Mac 才有), Kitematic (图形化工具), Docker Machi

Docker环境搭建Jenkins+gitlab+maven自动打包 部署容器

宿主机安装docker(省略) 宿主机安装maven 下载二进制包解压到/var/docker_data/jenkins/jenkins_home下面 https://maven.apache.org/download.cgi Jenkins镜像安装 下载Jenkins镜像(一般都是Ubuntu版) FROM jenkins USER root #清除了基础镜像设置的源,切换成腾讯云的jessie源 #使用非腾讯云环境的需要将 tencentyun 改为 aliyun RUN echo '' >