Docker部署Apache-tomcat

Docker部署Apache-tomcat

实验环境:
Centos 7
phpStudy(提供wget 下载以下的两个软件包到Centos)
所需软件包:
jdk-8u11-linux-x64.tar.gz
apache-tomcat-7.0.84.tar.gz
提供下载链接:https://pan.baidu.com/s/1miZh9wO 密码:8d5f



Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

我们可开启多个 Docker 容器,而每个 Docker 容器中可运行自己所需的应用程序,Docker 容器之间也是相互隔离的,同样地,都是占用的宿主机的硬件与网络资源。

一、.配置好yum源
可参考:http://blog.51cto.com/12445563/2065914 配置好后进行以下代码

[[email protected] ~]# setenforce 0                                       临时关闭selinux
[[email protected] ~]# systemctl stop firewalld.service         关闭firewalld防火墙
[[email protected] ~]# yum install docker -y                         安装docker
[[email protected] ~]# systemctl start docker.service           启动docker服务

二、.下载镜像
搜索可用的docker镜像:docker search name
会从官方搜索匹配到的镜像 也可以去配置国内源 下载相对快些

[[email protected] ~]# docker pull centos:latest  下载最新Centos镜像
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
af4b0a2388c6: Pull complete
Digest: sha256:2671f7a3eea36ce43609e9fe7435ade83094291055f1c96d9d1d1d7c0b986a5d
[[email protected] ~]# docker images                   看本地所有的镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos       latest              ff426288ea90        2 weeks ago         207.2 MB
docker的镜像并不大 这个最新的才207.2MB

三、.下载两个软件包
先把两个软件包放到phpStudy网站根目录下

[[email protected] ~]# mkdir /root/cany           创建存放目录 等等可以挂载到容器里面
[[email protected] ~]# cd /root/cany/               把软件包放到这文件夹里面
[[email protected] cany]# wget http://10.2.4.144/apache-tomcat-7.0.84.tar.gz
--2018-01-29 04:47:43--  http://10.2.4.144/apache-tomcat-7.0.84.tar.gz
Connecting to 10.2.4.144:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9032792 (8.6M) [application/x-gzip]
Saving to: ‘apache-tomcat-7.0.84.tar.gz’

100%[==============================================================================================================>] 9,032,792   --.-K/s   in 0.07s   

2018-01-29 04:47:43 (125 MB/s) - ‘apache-tomcat-7.0.84.tar.gz’ saved [9032792/9032792]

[[email protected] cany]# wget http://10.2.4.144/jdk-8u11-linux-x64.tar.gz
--2018-01-29 04:47:58--  http://10.2.4.144/jdk-8u11-linux-x64.tar.gz
Connecting to 10.2.4.144:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 159019376 (152M) [application/x-gzip]
Saving to: ‘jdk-8u11-linux-x64.tar.gz’

100%[==============================================================================================================>] 159,019,376 23.2MB/s   in 12s    

2018-01-29 04:48:10 (12.5 MB/s) - ‘jdk-8u11-linux-x64.tar.gz’ saved [159019376/159019376]

四、.创建容器
用法:docker run <相关参数> <镜像 ID> <初始命令>

                                                                   IMAGE ID
docker run -i -t -v /root/cany/:/mnt/cany/ ff426288ea90 /bin/bash

相关参数包括:

-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
此时使用/bin/bash,表示什么也不做,只需进入命令行即可

五、.安装服务相关环境和软件
搭建apache-tomcat服务需要安装jdk和tomcat (我选择 /opt/目录作为安装目录)
下面的过程均在容器内部进行:

[[email protected] /]# cd /mnt/cany/                                  进入挂载的目录
[[email protected] cany]# tar -zxf                                      看到了我们下载的两个软件包
apache-tomcat-7.0.84.tar.gz  jdk-8u11-linux-x64.tar.gz
[[email protected] cany]# tar -zxf apache-tomcat-7.0.84.tar.gz        进行解压
[[email protected] cany]# tar -zxf jdk-8u11-linux-x64.tar.gz
[[email protected] cany]# mv apache-tomcat-7.0.84/ /opt/tomcat/   把解压后的文件夹转移到我们选择的安装目录
[[email protected] cany]# mv jdk1.8.0_11/ /opt/jdk/  

设置环境变量
1.编辑.bashrc文件

[[email protected] cany]# vi ~/.bashrc

然后,在该文件末尾添加如下配置:

export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME

[[email protected] cany]# source ~/.bashrc   用source命令让环境变量生效

2.编写容器启动运行脚本
毕竟容器镜像比较小 原生 缺少很多环境 下面来编写脚本
当启动容器时,运行该脚本,启动 Tomcat 具体步骤如下:

[[email protected] cany]# vi /root/cany.sh
#!/bin/bash
source ~/.bashrc                                    必须先加载环境变量
sh /opt/tomcat/bin/catalina.sh run          然后使用 Tomcat 的运行脚本来启动
[[email protected] cany]# chmod u+x /root/cany.sh   对当前目录下的cany.sh文件的所有者增加可执行权限

以上步骤全部完成后,可使用exit命令,退出容器。

六、创建tomcat镜像
对于刚才的配置我们可以创建一个镜像 方便以后直接利用 或者转移到别的机器上也是可以使用的 具体操作如下:

[[email protected] cany]# docker ps              查看正在运行的容器    怎么会没有呢  我们刚才不是已经创建了一个吗?
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[[email protected] cany]# docker ps -a          查看所以容器看看究竟  发现还在
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
c6a61597a46d        ff426288ea90        "/bin/bash"         36 minutes ago      Exited (0) 41 seconds ago                       kickass_hopper

因为刚才使用exit命令退出的容器,此时容器处于停止状态 所以每次进入容器修改东西后出来一定要记得去开启容器

记住以上CONTAINER ID(容器 ID),等等我们通过该容器,创建一个可运行tomcat的镜像。

相关命令如下:

docker stop  <容器名or ID>          停止某个容器
docker start  <容器名or ID>          启动某个容器
docker kill    <容器名or ID>           杀掉某个容器
docker rm    <容器名or ID>           删除某个容器
docker rmi IMAGE                        删除镜像
docker ps -a -q                             查看所有容器ID
docker rm $(docker ps -a -q)        删除所有的容器:
docker attach <容器名or ID>        attach到运行中的容器

把我们刚才配置好的做一个新的镜像

[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
c6a61597a46d        ff426288ea90        "/bin/bash"         58 minutes ago      Exited (0) 5 minutes ago                       kickass_hopper

[[email protected] ~]# docker commit c6a61597a46d cany/tomcat:0.1
sha256:7cbbe3742372edc2a19ba37ea5684a573c92d2e08be437a9d6028688371b5152

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
cany/tomcat         0.1                 7cbbe3742372        18 seconds ago      544.9 MB
docker.io/centos    latest              ff426288ea90        2 weeks ago         207.2 MB

看到了吗? 镜像名为cany/tomcat

七、启动tomcat镜像容器
与上次启动容器不同的是,我们现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务

[[email protected] ~]# docker run -d -p 80:8080 --name web cany/tomcat:0.1 /root/cany.sh
401ddf6c97128e377df9ae8f3992ef2b065d053475387e1fac6f49e2b7390414
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
401ddf6c9712        cany/tomcat:0.1     "/root/cany.sh"     32 seconds ago      Up 29 seconds       0.0.0.0:80->8080/tcp   web

-d:表示以“守护模式”执行/root/cany.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 80 端口,这样就向外界暴露了 80 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
--name:表示容器名称,用一个有意义的名称命名即可。

Docker网桥:通过宿主机 IP 地址与端口号来映射容器内部的 IP 地址与端口号

八、测试

http://10.2.4.88/   这里使用的是宿主机的 IP 地址 容器的8080端口映射到了80端口 因为http默认是80 所以不需要打端口 直接访问

怎么是hello cany ?
答:因为我去了/opt/tomcat/webapps/ROOT 目录 删掉了全部文件 创建了index.html 不过你们可以忽略此步 所以我就没写在上面了

总结:当我开始了解docker的时候就去网上查阅其他大神的文章 发现挺多讲的不是很全 也没有提供相关软件包 综合所查阅到的资料 终于做通了这个实验 并上传了我个人实验的软件包 希望此文章能帮助到刚入门docker的朋友们!!!

原文地址:http://blog.51cto.com/12445563/2066848

时间: 2024-11-08 11:13:48

Docker部署Apache-tomcat的相关文章

使用docker部署nginx+tomcat架构(2):访问mysql数据库

上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进入正题. 首先拉取mysql镜像: docker pull mysql:5.7 创建本地mysql目录: mkdir -p ~/mysql/data ~/mysql/conf ~/mysql/logschmod -R 777 ~/mysql/logs 在mysql/conf目录下创建配置文件my.c

使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构(2):访问mysql数据库 不过,整个部署过程中需要手动输入很多的docker命令,稍显繁琐并且容易出错.那么有没有一种相对简洁优雅的方式来完成这些部署工作呢?答案是有的,docker-compose(一下简称“compose”)正是为此而生. 关于docker-compose(了解更多:https://docs.docker.c

Docker 部署 nginx + tomcat

简介 在生产环境中,很多企业会经常使用nginx + tomcat 架构,nginx作为负载均衡器,反向代理,tomcat作为节点服务器.在docker容器中也可以使用这种架构.对这种架构感兴趣的可以参考博客:https://blog.51cto.com/13760351/2161850 操作环境 备注:实验中已关闭防火墙,打好企业使用的war包 部署过程: 一.安装nginx镜像 可参考博客 https://blog.51cto.com/13760351/2469063 二.部署war包项目

基于Apache+Tomcat负载均衡的两种实现方法

Apache+Tomcat实现负载均衡的两种实现方法 如果我们将工作在不同平台的apache能够实现彼此间的高效通信,因此它需要一种底层机制来实现--叫做apr Apr的主要目的就是为了其能够让apache工作在不同的平台上,但在linux上安装apache的时候通常都是默认安装的 [[email protected] ~]#rpm -qi aprName                 :apr                                        Relocation

使用maven插件自动部署web应用至Docker容器的tomcat

配置maven 在pom.xml加入 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 <plugins>     <plugin>         <groupId>org.apache.tomcat.maven</groupId>         <artifactId>tomcat7-maven-plugin</artifactId>         <version>2.2</version&g

Tomcat 部署 The APR based Apache Tomcat Native ...

Tomcat启动时提示org.apache.catalina.core.AprLifecycleListener- ApacheTomcatJavaJNIIE 网上针对此问题提供的文章很多,但多数和我遇到的情况有出入,所以我将其记录于此 最近开发中需要使用Tomcat,随意找来个较新的版本6.0.20就用.发现启动时提示: "2010-5-12 18:06:06 org.apache.catalina.core.AprLifecycleListener init 信息: The APR base

Docker容器和本机之间的文件传输 使用Docker部署Tomcat项目

Docker容器和本机之间的文件传输. http://blog.csdn.net/leafage_m/article/details/72082011 使用Docker部署Tomcat项目 http://blog.csdn.net/leafage_m/article/details/72081987

3分钟搞定apache+tomcat集群部署

注意:如果你的2个tomcat在同一个服务器上,那么需要保证他们的端口号是不同的. 下面开始部署 Apache 部署: 在httpd.conf文件中添加 ProxyRequests Off ProxyPass / balancer://proxy/ <Proxy balancer://proxy/> BalancerMember http://192.168.5.135:8080route=Tomcat1 BalancerMember http://192.168.5.135:8081rout

apache tomcat 集群 负债均衡 部署

Apache + Tomcat 配置负载均衡 此文档内容已经经过测试 JavaSDK版本: 1.6.20 Apache版本: 2.2.15    http://httpd.apache.org/ Tomcat版本: apache-tomcat-6.0.35 http://tomcat.apache.org/download-60.cgi ====================================安装javaSDK就默认安装了. apache的安装没有什么特别的,一路下一步即可,当然

Docker在Ubuntu16.04上安装和部署Apache Storm

Docker在Ubuntu16.04上安装和部署Apache Storm 1.添加Docker源 sudo apt-get update 2.增加CA证书 sudo apt-get install apt-transport-https ca-certificates 3.添加GPG Key(一种加密手段) sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897