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出现中文乱码.docx
idea打war包并发布到docker的tomcat容器中,包括打war包步骤和如何将打好的war包发布到docker的tomcat容器中的详细步骤,自己实操后进行的总结。后面还会将如何部署docker进行总结,上传。
docker手动创建tomcat容器且端口映射且磁盘对应
在容器docker中部署tomcat,以及遇到的一些问题记录
Docker 安装tomcat:7 挂载目录到本地,访问不了,webapps.dist文件
本篇文章主要介绍了通过Docker搭建Mysql容器+Tomcat容器连接环境,具有一定的参考价值,有兴趣的可以了解一下。
使用docker run 命令成功添加tomcat容器,端口也已开放,也尝试关闭防火墙,可访问tomcat首页时总显示404 原因 使用阿里云获取tomcat镜像默认版本为8.5.51,其webapps文件为空,其欢迎页都放在webapps.dist文件中,...
主要介绍了Docker下Tomcat容器中使用Mysql的方法,需要的朋友可以参考下
创建docker容器,配置容器ip桥接,在容器内安装tomcat
利用Docker创建一个Tomcat开发环境,技术文档操作说明。
实现动态/静态(资源请求)分离和负载均衡打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
4. Docker 容器使用 16 4.1. 查看所有的容器 16 4.2. 查看运行中的容器 16 4.3. 查看容器日志 16 4.4. 启动已停止运行的容器 17 4.5. 停止容器 17 4.6. 删除容器 17 4.7. 文件拷贝 18 4.8. 目录挂载 18 4.9...
使用SpringBoot操作Docker容器中Mysql数据库.mp4 │ 15 15.Docker中安装Redis.mp4 │ 16 16.使用Springboot操作Docker容器中的Redis.mp4 │ 17 17.Docker中安装Nginx服务器.mp4 │ 18 18.Docker中安装Tomcat服务器并...
01-docker基本概念 02-docker安装之centos 7 03-docker镜像相关操作命令 04-docker容器操作命令 05-docker应用之tomcat容器部署web应用 06-问题解决
原因:没有关闭防火墙或者Tomcat的webapps文件夹下没有东西 排查和解决 启动Tomcat容器 docker run -d -p 8888:8080 tomcat 查看已经启动的容器 ...docker exec -it c110e319cdd1(启动的Tomcat容器
在虚拟机docker容器中启动tomcat报Error response from daemon: driver failed programming external connectivity on endpoint tomcat (56eca236c90a43fb3a69de67ea3e86d8eab2193db2590d905d18c0acec996557): Error...
首先创建tomcat的文件夹 ,为了方便docker的...第二步:创建Tomcat容器(端口 可以根据自己的实际更换) docker run -d --name tomcat8081 -p 8081:8080 -v /docker/tomcat/webapp8081:/usr/local/tomcat/webapps/ to