欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker使用之Tomcat容器环境设置 云计算集群DockerjavaTomcat 

程序员文章站 2024-03-16 15:17:22
...

 Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。

 

用户需要考虑虚拟化方法,尤其是硬件虚拟化方法,需要借助其解决的主要是以下4个问题:
  • 隔离性 - 每个用户实例之间相互隔离, 互不影响。 硬件虚拟化方法给出的方法是VM, LXC给出的方法是container,更细一点是kernel namespace
  • 可配额/可度量 - 每个用户实例可以按需提供其计算资源,所使用的资源可以被计量。硬件虚拟化方法因为虚拟了CPU, memory可以方便实现, LXC则主要是利用cgroups来控制资源
  • 移动性 - 用户的实例可以很方便地复制、移动和重建。硬件虚拟化方法提供snapshot和image来实现,docker(主要)利用AUFS实现
  • 安全性 - 这个话题比较大,这里强调是host主机的角度尽量保护container。硬件虚拟化的方法因为虚拟化的水平比较高,用户进程都是在KVM等虚拟机容器中翻译运行的, 然而对于LXC, 用户的进程是lxc-start进程的子进程, 只是在Kernel的namespace中隔离的, 因此需要一些kernel的patch来保证用户的运行环境不会受到来自host主机的恶意入侵, dotcloud(主要是)利用kernel grsec patch解决的.

 为了让我们的Docker可以工作,我们先得准备下环境

 

准备工作:

1、Ubuntu系统包: ubuntu-16.04.2-desktop-amd64.iso

2、virtualbox安装包:VirtualBox-5.1.18-114002-Win.exe

 

这里安装的是64位的Ubuntu,所以 VirtualBox需要支持64位系统的安装,当你安装VirtualBox后,发现找不到64位操作系统的选项,这时候需要调整下BIOS配置。因为有时候我们的设备并没有放开64位虚拟化支持,这时候需要你自己在BIOS中手动修改设置。

 

虚拟机创建步骤:

1、我们对虚拟机命名为:Ubuntu2Docker

2、设置内存:一般现在自己的电脑都在8G,因此,你分配2G的内存给虚拟机不是什么难事,这里我们设置为2048

3、虚拟硬盘的设定,这里选择“创建虚拟硬盘”。虚拟硬盘的选择会有三个选项,这里我们选择:VHD模式。对虚拟硬盘的大小,我们可以设定为动态分配大小。在设置虚拟系统的文件存放位置是在:“C:\Users\Administrator\VirtualBox VMs\Ubuntu2Docker”,这时需要修改文件的存放位置到我们预留给他的磁盘地址,本例中,我们存放在:“G:\software” 。 对文件大小的调整,默认情况下Ubuntu的安装系统需求要比较大一些,因此对于VirtualBox默认设定的8G文件大小是不够的,这里我们分配15G空间

4、到这里VirtualBox的基本设定已经结束,但暂时还无法使用,需要对其他的设置进行调整

 

调整虚拟机配置:

1、在“常规”选项中调整高级设置,将备份的位置调整到“G:\software”

2、在“显示”选项中调整显存大小,这里我们调整到128M

3、在“存储”选项中,为IDE增加虚拟光驱镜像文件:ubuntu-16.04.2-desktop-amd64.iso ,并去掉多余没用的光驱

4、在网络设置选项中,设置网卡2, 选择链接方式为:“仅主机(Host-Only)网络”

5、到这里,所有的配置均已经调整结束,可以点击启动虚拟机。这时,你可以倒杯茶,后面系统的安装非本文重点,此处不表。安装结束后,系统会提示你重新启动系统,弹出磁盘。不用管磁盘,直接重启就OK。

 

 

 为方便后面远程管理我们的虚拟机,装一个ssh服务端是很有必要的。因此,接下来,开始设置ssh。进入虚拟机操作系统后:

1、默认情况下,Ubuntu没有对root用户设置密码,为后面操作简单,我们将root用户设置密码“sudo passwd root”

2、安装ssh服务端:"sudo apt-get install openssh-server -y"

3、确定当前虚拟机的IP地址,打开命令行查看本机IP地址:“ifconfig” 这里得到的地址为:“192.168.56.102”

4、通过使用putty登陆“192.168.56.102”进行验证ssh服务是否正常安装。

5、为方便后面编辑相关配置信息,我们需要装一下vim:“apt-get install vim -y”

 

至此,Docker安装前基本的准备工作完毕!

 

接下来开始安装Docker,步骤如下:

1、安装前首先做一次更新操作:“apt-get update”

2、开始安装Docker:“apt-get install docker.io -y”

3、验证Docker是否安装成功:“docker -v”,如果安装成功,我们会看到docker的安装版本信息。

 

接下来开始为我们下一步部署web应用做准备:

1、下载Ubuntu系统镜像,这里我们采用国内的一个镜像源“daocloud.io”,执行命令如下:“docker pull daocloud.io/ubuntu:latest”

2、执行以下命令,验证镜像是否已经到本地:“docker images”,如果下载成功,我们就会看到刚刚下载下来的Ubuntu镜像

 

现在,我们开始准备web应用所需环境:

1、准备java和Tomcat安装文件:jdk-8u121-linux-x64.tar.gz  apache-tomcat-9.0.0.M18.tar.gz

2、新建一个目录dockerfiles,执行命令:“mkdir dockerfiles” 并将我们准备的2个安装文件放在这个路径下

3、开始准备编写Dockerfile文件:

FROM                 daocloud.io/ubuntu:latest
MAINTAINER           danlley   email: danlley@126.com

# now add java and tomcat support in the container
ADD jdk-8u121-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.0.M18.tar.gz /usr/local/

# configuration of java and tomcat ENV
ENV JAVA_HOME /usr/local/jdk1.8.0_121
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.0.M18
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.0.M18

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

# container listener port
EXPOSE 8080

# startup web application services by self
CMD /usr/local/apache-tomcat-9.0.0.M18/bin/catalina.sh run

 

4、用Dockerfile生成镜像,执行命令:“docker build .”,注意命令最后有一个点,这个点代表当前文件夹。执行成功后,执行结果如下:

root@danlley-VirtualBox:/home/danlley/dockerfiles# docker build .
Sending build context to Docker daemon 192.5 MB
Step 1 : FROM daocloud.io/ubuntu:latest
 ---> f49eec89601e
Step 2 : MAINTAINER danlley   email: danlley@126.com
 ---> Running in b72c368e9e65
 ---> 6ca59fd1cae6
Removing intermediate container b72c368e9e65
Step 3 : ADD jdk-8u121-linux-x64.tar.gz /usr/local/
 ---> a9631d4c4948
Removing intermediate container 3f6f00fee97f
Step 4 : ADD apache-tomcat-9.0.0.M18.tar.gz /usr/local/
 ---> 462d3601d1f5
Removing intermediate container 49d8cf70e7f0
Step 5 : ENV JAVA_HOME /usr/local/jdk1.8.0_121
 ---> Running in 26e9f967d736
 ---> 882f71382761
Removing intermediate container 26e9f967d736
Step 6 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Running in 927971473bb1
 ---> f71834a0321e
Removing intermediate container 927971473bb1
Step 7 : ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.0.M18
 ---> Running in 5842e43e1bc9
 ---> 279996de8b76
Removing intermediate container 5842e43e1bc9
Step 8 : ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.0.M18
 ---> Running in 12fb1d39e3e0
 ---> 0e4609876947
Removing intermediate container 12fb1d39e3e0
Step 9 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 ---> Running in d400d75444d7
 ---> 1cd56947b031
Removing intermediate container d400d75444d7
Step 10 : EXPOSE 8080
 ---> Running in 356cc1785d2f
 ---> 537086a47954
Removing intermediate container 356cc1785d2f
Step 11 : CMD /usr/local/apache-tomcat-9.0.0.M18/bin/catalina.sh run
 ---> Running in 9472a0c1d38b
 ---> abbbfb1f232d
Removing intermediate container 9472a0c1d38b
Successfully built abbbfb1f232d

 5、为新建出来的镜像打个tag:

root@danlley-VirtualBox:/home/danlley/dockerfiles# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED              SIZE
<none>               <none>              abbbfb1f232d        About a minute ago   512.7 MB
daocloud.io/ubuntu   latest              f49eec89601e        9 weeks ago          129.5 MB
root@danlley-VirtualBox:/home/danlley/dockerfiles# docker tag abbbfb1f232d webapp
root@danlley-VirtualBox:/home/danlley/dockerfiles# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
webapp               latest              abbbfb1f232d        2 minutes ago       512.7 MB
daocloud.io/ubuntu   latest              f49eec89601e        9 weeks ago         129.5 MB

 

 6、启动webapp的docker容器:“docker run -d -p 8090:8080 webapp”,看到下面的执行结果,就可以在虚拟机外面本地的浏览器来访问验证了。

root@danlley-VirtualBox:/home/danlley/dockerfiles# docker run -d -p 8090:8080 webapp
4e7c8bd1e30afc333b28563d0bb1dd776203c5ef7d6977487b480fa3aa8cd171
root@danlley-VirtualBox:/home/danlley/dockerfiles#

 

7、访问地址:http://192.168.56.102:8090/ 这时可以看到Tomcat的默认欢迎界面。

 

 

各位看官,原创不易啊,转载请注明出处: http://danlley.iteye.com 看在打字不易的份上,打赏一个吧

Docker使用之Tomcat容器环境设置
            
    
    
        云计算集群DockerjavaTomcat 

 

参考资料:

 http://baike.baidu.com/link?url=i32oW4JYuvRlKbIEVoaVRHZW0ipxhxX3Tlj-snZT0maULuWCteH74CCA_y2xHftGzQPaoAlg54M8YMXqQE8qsq