`

Docker使用之Tomcat容器环境设置

阅读更多

 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 看在打字不易的份上,打赏一个吧

 

参考资料:

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

 

 

 

分享到:
评论

相关推荐

    Docker容器部署tomcat出现中文乱码.docx

    在 Docker 容器中部署 Tomcat 时,可能会遇到中文乱码的问题,这是由于 Docker 容器的 locale 设置导致的。在本文中,我们将介绍如何解决这个问题。 什么是 locale? locale 是操作系统中用于描述语言环境的设置,...

    idea打war包并发布到docker的tomcat容器中

    idea打war包并发布到docker的tomcat容器中,包括打war包步骤和如何将打好的war包发布到docker的tomcat容器中的详细步骤,自己实操后进行的总结。后面还会将如何部署docker进行总结,上传。

    docker手动创建tomcat容器且端口映射且磁盘对应

    本文将详细介绍如何使用 Docker 手动创建 Tomcat 容器,并进行端口映射和磁盘对应。 一、创建容器 首先,我们需要使用 Docker 创建一个新的容器。我们可以使用以下命令来创建容器: ``` docker run --name app -it...

    创建docker容器,配置容器ip桥接,在容器内安装tomcat

    Docker 容器网络配置与 Tomcat 安装 在本文中,我们将详细介绍如何创建 Docker 容器,配置容器 IP 桥接网络,并在容器内安装 Tomcat 服务。 一、 Docker 概述 Docker 是一种轻量级的操作系统虚拟化解决方案,可以...

    docker中部署tomcat_Docker_

    在容器docker中部署tomcat,以及遇到的一些问题记录

    Docker 安装tomcat:7 挂载目录到本地

    Docker 安装tomcat:7 挂载目录到本地,访问不了,webapps.dist文件

    详解通过Docker搭建Mysql容器+Tomcat容器连接环境

    本篇文章主要介绍了通过Docker搭建Mysql容器+Tomcat容器连接环境,具有一定的参考价值,有兴趣的可以了解一下。

    Docker-Compose部署nginx代理Tomcat集群

    在本场景中,我们的目标是创建一个Nginx容器作为负载均衡器,以及多个Tomcat容器作为应用服务器。以下是关键步骤: 1. **编写docker-compose.yml文件**:这个文件会定义我们的服务、网络和卷。例如: ```yaml ...

    Docker下Tomcat容器中使用Mysql的方法

    主要介绍了Docker下Tomcat容器中使用Mysql的方法,需要的朋友可以参考下

    Docker容器技术-Docker-compose使用案例.pptx

    ### Docker-compose入门案例:使用Docker Compose运行Tomcat容器 #### 创建`docker-compose.yml`文件 在运行Tomcat容器前,我们需要编写一个`docker-compose.yml`文件。例如,我们可以创建一个名为`tomcat.yml`的...

    完美解决在docker容器中启动tomcat始终报端口被占用的错误

    重启Docker后,可以尝试重新启动Tomcat容器,使用`docker start tomcat`命令。有时候,重启容器就能解决临时的端口冲突。 3. **检查端口占用情况**: 如果上述步骤仍然无效,你需要进一步检查哪个进程占用了8080...

    Docker Logging with a Tomcat Container with the Native Graylog Driver

    标题 "Docker Logging with a Tomcat Container with the Native Graylog Driver" 暗示了本文将探讨如何在Docker环境中使用Tomcat容器,并利用Graylog的原生驱动来收集和管理日志。Graylog是一个开源的日志管理和...

    Docker添加tomcat容器无法访问首页解决方案

    使用docker run 命令成功添加tomcat容器,端口也已开放,也尝试关闭防火墙,可访问tomcat首页时总显示404 原因 使用阿里云获取tomcat镜像默认版本为8.5.51,其webapps文件为空,其欢迎页都放在webapps.dist文件中,...

    容器网页终端(websocket-webshell)

    Docker是当前流行的容器化平台,它允许开发者将应用程序及其依赖环境打包成轻量级的容器,这些容器可以在各种平台上运行,保持一致的行为。WebSocket-WebShell通过WebSocket连接到运行在Docker上的SSH服务,使用户...

    mysql+tomcat8 docker-compose.yml配置

    本篇文章将详细探讨如何使用`docker-compose.yml`配置文件来整合MySQL数据库服务与Tomcat 8应用服务器。 首先,我们需要理解Docker的核心概念。Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用及其...

    在docker中部署tomcat并且部署java应用程序的步骤详解

    本文给大家介绍如何在docker中部署tomcat及如何部署我们的应用程序到docker容器的tomcat里,本文介绍的非常详细,具有参考借鉴价值,一起看看吧

Global site tag (gtag.js) - Google Analytics