设为首页 收藏本站
查看: 1349|回复: 0

[经验分享] Docker实战之创建一个tomcat容器

[复制链接]

尚未签到

发表于 2017-12-6 17:42:34 | 显示全部楼层 |阅读模式
一、Docker与虚拟机的区别
DSC0000.png

二、Docker学习步骤
2.1:安装宿主操作系统
  在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
  64位操作系统
  建议内核在 3.8 以上,执行uname –r 查看内核如下图所示
DSC0001.png

2.2:更新系统
  Ubuntu在安装的过程中没有指定root用户密码的操作,所以我们需要给root用户一个密码
  命令如下
  sudo passwd 系统会提示Enter New UNIX OR LINUX PASSWORD
  输入即可
  再次确认密码,会提示修改成功
  接下来更新系统命令
  apt update && apt dist-upgrade –y或者sudo  apt update && apt dist-upgrade –y
  等待系统更新完成,如下图所示
DSC0002.png

2.3:安装Docker
  执行命令:
  curl https://releases.rancher.com/install-docker/17.03.sh | sh
  如下图所示
DSC0003.png

  之后需要在线下载一些安装资源,耐心的等待就好,安装成功如下图所示
DSC0004.png

  查看docker是否安装成功,docker version ,如下图所示显示正确的版本号则说明安装成功
DSC0005.png

  安装成功后则可启动docker服务
  systemctl start  docker.service
三、Docker的练习
3.1:查看容器和镜像
  执行docker ps 或者 docker images 进行查看容器或者镜像,如下图(因为刚装好Docker
  所以现在的容器和镜像都是为空的下面显示的知识标题)
DSC0006.png

3.2:下载一个镜像
  执行docker pull 镜像名 即可下载一个镜像,下面以下载一个redis镜像为例进行操作,此操作需要连接网络,需要等待,如下图所示
DSC0007.png

  下载完成,如下图所示
DSC0008.png

  下载成功再次执行docker images命令可以看到我们下载的镜像
DSC0009.png

3.3:创建一个tomcat运行环境
3.3.1:上传java和tomcat
  分别下载如下安装包,上传到服务器
DSC00010.png

3.3.2:解压到指定的目录
  我们在Docker宿主机上创建了一个tomcat-docker目录,把解压好的jdk和tomcat放到该目录,如下图所示
DSC00011.png

3.3.3:创建用来生成镜像的Dockerfile文件
  在tomcat-docker目录下执行命令touch Dockerfile创建一个Dockerfile文件
  Vi  Dockerfile内容如下,之后保存
   # 设置继承的镜像
  FROM ubuntu:16.04
  # 创建者信息
  MAINTAINER wxj "kingstudy@vip.qq.com"
  # 设置环境变量,所有操作都是非交互式的
  ENV DEBIAN_FRONTEND noninteractive
  # 设置tomcat的环境变量
  ENV CATALINA_HOME /tomcat
  ENV JAVA_HOME /jdk
  # 复制tomcat和jdk文件到镜像中
  ADD apache-tomcat-9.0.0.M21 /tomcat
  ADD jdk1.8.0_131 /jdk
  # 复制启动脚本至镜像,并赋予脚本可执行权限
  ADD run.sh /run.sh
  RUN chmod +x /*.sh
  RUN chmod +x /tomcat/bin/*.sh
  # 暴露接口8091,这是我的tomcat接口,默认为8080
  EXPOSE 8091
  # 设置自启动命令
  CMD ["/run.sh"]
3.3.4:创建自动启动文件run.sh
  在创建Dockerfile的时候我们可以发现最后的一行设置自启动命令里面指定了/run.sh
  这里的’/’是根目录的意思,和Linux操作系统的’/’目录有所区别,只要Dockerfile和run.sh在同一个目录下这个地方就可以用/来指定,下面我们在tomcat-docker路径下执行touch run.sh创建一个run.sh文件,内容如下
  #!/bin/bash
  # 启动tomcat
  exec ${CATALINA_HOME}/bin/catalina.sh run
  run.sh的作用是在启动容器的时候启动tomcat服务
3.3.5:根据Dockerfile生成镜像
  注意:这个命令一定要在tomcat-docker这个目录下执行才可以,因为里面有复制文件的操作用的是相对目录
  root@KingServer1:~/tomcat-docker# docker build -t tomcat:test1 -f /root/tomcat-docker/Dockerfile .
  Sending build context to Docker daemon 391.1 MB
  Step 1/12 : FROM ubuntu:16.04
  ---> d355ed3537e9
  Step 2/12 : MAINTAINER wxj "kingstudy@vip.qq.com"
  ---> Using cache
  ---> c1f3d38837ca
  Step 3/12 : ENV DEBIAN_FRONTEND noninteractive
  ---> Using cache
  ---> be1ca3b3b014
  Step 4/12 : ENV CATALINA_HOME /tomcat
  ---> Running in ae8df355595b
  ---> dcba8eb85069
  Removing intermediate container ae8df355595b
  Step 5/12 : ENV JAVA_HOME /jdk
  ---> Running in 9fcfd0114cb8
  ---> 93155ece74c9
  Removing intermediate container 9fcfd0114cb8
  Step 6/12 : ADD apache-tomcat-9.0.0.M21 /tomcat
  ---> 5c6cb315cd7b
  Removing intermediate container a205f98691c1
  Step 7/12 : ADD jdk1.8.0_131 /jdk
  ---> 026a07f7732f
  Removing intermediate container e75995168a1a
  Step 8/12 : ADD run.sh /run.sh
  ---> bae5ce399a0d
  Removing intermediate container d6661b08ec16
  Step 9/12 : RUN chmod +x /*.sh
  ---> Running in 1c8c73ba4bbd
  ---> e32338aed2aa
  Removing intermediate container 1c8c73ba4bbd
  Step 10/12 : RUN chmod +x /tomcat/bin/*.sh
  ---> Running in 90397e868a4b
  ---> 2879d10a8022
  Removing intermediate container 90397e868a4b
  Step 11/12 : EXPOSE 8091
  ---> Running in e9e9de8bb2a5
  ---> 7d5fa1266ad3
  Removing intermediate container e9e9de8bb2a5
  Step 12/12 : CMD /run.sh
  ---> Running in 5ccebdc7a956
  ---> 1835085d375b
  Removing intermediate container 5ccebdc7a956
  Successfully built 1835085d375b
  查看镜像是否生成成功,执行docker images如下图所示可以看到镜像ID 183,则说明成功
DSC00012.png

3.3.6:用生成的tomcat镜像来启动一个容器
  执行如下命令
  docker run -d -p 50080:8080 tomcat:test1
  -p是指定宿主主机和容器的端口映射, 用宿主主机的50080端口映射容器的8080端口
  查看是否启动成功,docker ps 如下图所示可以看到启动成功
DSC00013.png

3.3.7:测试容器是否部署成功
  容器启动以后,我们就可以通过宿主主机来访问tomcat容器了,由于我们启动容器的时候做了端口映射所以访问的地址为:
  http://192.168.1.51:50080/
  如下图所示:说明部署成功
DSC00014.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421401-1-1.html 上篇帖子: docker 源码分析client1 下篇帖子: Docker跨主机网络
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表