Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。
-
隔离性 - 每个用户实例之间相互隔离, 互不影响。 硬件虚拟化方法给出的方法是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 时,可能会遇到中文乱码的问题,这是由于 Docker 容器的 locale 设置导致的。在本文中,我们将介绍如何解决这个问题。 什么是 locale? locale 是操作系统中用于描述语言环境的设置,...
本文将详细介绍如何使用 Docker 手动创建 Tomcat 容器,并进行端口映射和磁盘对应。 一、创建容器 首先,我们需要使用 Docker 创建一个新的容器。我们可以使用以下命令来创建容器: ``` docker run --name app -it...
idea打war包并发布到docker的tomcat容器中,包括打war包步骤和如何将打好的war包发布到docker的tomcat容器中的详细步骤,自己实操后进行的总结。后面还会将如何部署docker进行总结,上传。
Docker 容器网络配置与 Tomcat 安装 在本文中,我们将详细介绍如何创建 Docker 容器,配置容器 IP 桥接网络,并在容器内安装 Tomcat 服务。 一、 Docker 概述 Docker 是一种轻量级的操作系统虚拟化解决方案,可以...
在容器docker中部署tomcat,以及遇到的一些问题记录
Docker 安装tomcat:7 挂载目录到本地,访问不了,webapps.dist文件
### Docker-compose入门案例:使用Docker Compose运行Tomcat容器 #### 创建`docker-compose.yml`文件 在运行Tomcat容器前,我们需要编写一个`docker-compose.yml`文件。例如,我们可以创建一个名为`tomcat.yml`的...
本篇文章主要介绍了通过Docker搭建Mysql容器+Tomcat容器连接环境,具有一定的参考价值,有兴趣的可以了解一下。
在本场景中,我们的目标是创建一个Nginx容器作为负载均衡器,以及多个Tomcat容器作为应用服务器。以下是关键步骤: 1. **编写docker-compose.yml文件**:这个文件会定义我们的服务、网络和卷。例如: ```yaml ...
主要介绍了Docker下Tomcat容器中使用Mysql的方法,需要的朋友可以参考下
重启Docker后,可以尝试重新启动Tomcat容器,使用`docker start tomcat`命令。有时候,重启容器就能解决临时的端口冲突。 3. **检查端口占用情况**: 如果上述步骤仍然无效,你需要进一步检查哪个进程占用了8080...
标题 "Docker Logging with a Tomcat Container with the Native Graylog Driver" 暗示了本文将探讨如何在Docker环境中使用Tomcat容器,并利用Graylog的原生驱动来收集和管理日志。Graylog是一个开源的日志管理和...
使用docker run 命令成功添加tomcat容器,端口也已开放,也尝试关闭防火墙,可访问tomcat首页时总显示404 原因 使用阿里云获取tomcat镜像默认版本为8.5.51,其webapps文件为空,其欢迎页都放在webapps.dist文件中,...
Docker是当前流行的容器化平台,它允许开发者将应用程序及其依赖环境打包成轻量级的容器,这些容器可以在各种平台上运行,保持一致的行为。WebSocket-WebShell通过WebSocket连接到运行在Docker上的SSH服务,使用户...
本文给大家介绍如何在docker中部署tomcat及如何部署我们的应用程序到docker容器的tomcat里,本文介绍的非常详细,具有参考借鉴价值,一起看看吧
本篇文章将详细探讨如何使用`docker-compose.yml`配置文件来整合MySQL数据库服务与Tomcat 8应用服务器。 首先,我们需要理解Docker的核心概念。Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用及其...