前言

在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个java tomcat运行环境,虽然也初见成效,但很累人。如果依靠依靠脚本构建一个Tomcat容器实例,一个命令可以搞定,何乐而不为呢。好在Docker提供了Dockerfile作为构建Docker镜像脚本,避免人们一行一行的输入,真是善莫大焉。Dockerfile脚本可以做到随时维护修改,即可以分享,更有利于在模板化,更不用说传输了,好处那是一大箩筐!
最终目的:打造一个支持SSH终端登录、Tomcat7自动运行的Docker镜像。
编写一个Dockerfile
所有环境,同第一篇文字。在ubuntu下安装好vim之后(吐槽一下,ubuntu系统内置vi命令十分难用,只好求助于vim ):
sudo vim Dockerfile
编辑一个Dockerfile文件了,下面就是具体文件内容:
# VERSION 0.0.1 # 默认ubuntu server长期支持版本,当前是12.04 FROM ubuntu # 签名啦 MAINTAINER yongboy "yongboy@gmail.com" # 更新源,安装ssh server RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe"> /etc/apt/sources.list RUN apt-get update RUN apt-get install -y openssh-server RUN mkdir -p /var/run/sshd # 设置root ssh远程登录密码为123456 RUN echo "root:123456" | chpasswd # 添加orache java7源,一次性安装vim,wget,curl,java7,tomcat7等必备软件 RUN apt-get install python-software-properties RUN add-apt-repository ppa:webupd8team/java RUN apt-get update RUN apt-get install -y vim wget curl oracle-java7-installer tomcat7 # 设置JAVA_HOME环境变量 RUN update-alternatives --display java RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/environment RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/default/tomcat7 # 容器需要开放SSH 22端口 EXPOSE 22 # 容器需要开放Tomcat 8080端口 EXPOSE 8080 # 设置Tomcat7初始化运行,SSH终端服务器作为后台运行 ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D
需要注意:
ENTRYPOINT/CMD,一般两者可以配合使用,比如:
ENTRYPOINT ["/usr/sbin/sshd"] CMD ["-D"]
在Docker daemon模式下,无论你是使用ENTRYPOINT,还是CMD,最后的命令,一定要是当前进程需要一直运行的,才能够防容器退出。
以下无效方式:
ENTRYPOINT service tomcat7 start #运行几秒钟之后,容器就会退出 CMD service tomcat7 start #运行几秒钟之后,容器就会退出
这样有效:
ENTRYPOINT service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out # 或者 CMD service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
这样也有效:
ENTRYPOINT ["/usr/sbin/sshd"] CMD ["-D"]
构建镜像
脚本写好了,需要转换成镜像:
docker build -t yongboy/java7 .
-t: 为构建的镜像制定一个标签,便于记忆/索引等
. : 指定Dockerfile文件在当前目录下
网速不太好,会等待很长时间。很多操作可能需要科学上网,逼得我只能一直挂着VPN,方能畅通无阻。
构建镜像完成之后,看看运行效果:
docker run -d -p 22 -p 8080:8080 yongboy/java7
在运行命令中,还得需要显式指定 -p 22 -p 8080:8080,否则在Docker 0.8.1版本中不会主动映射到宿主机上。据悉在Docker 0.4.8版本时,就不担心这个问题。 或者,您要有好的方式,不妨告知于我,谢谢。
在Dockerfile中,若没有使用ENTRYPOINT/CMD指令,若运行多个命令,可以这样做:
复制代码 代码如下:
docker run -d -p 22 -p 8080 yongboy/java7 /bin/sh -c "service tomcat7 start && /usr/sbin/sshd -D"
提交/保存镜像
创建好的镜像,可以保存到索引仓库中,便于下次使用(当然,我们直接共享Dockerfile,是最简单的事情,:)) ),但毕竟镜像可以做到开箱即用。
1、https://index.docker.io/ 注册一个账号,例如yongboy
2、构建镜像
docker build -t yongboy/java7 .
上面已经构建OK的话,可省略此步。
3、登陆
docker login
4、提交到Docker索引仓库
docker push yongboy/java7
现在可以起来喝杯热水,出去溜达会,也不一定能够上传完毕,那叫一个慢啊!
上传OK的话,可以得到类似地址:https://index.docker.io/u/yongboy/java7/
5、如何使用镜像
docker pull yongboy/java7
剩下的步骤,就很简单了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# dockerfile构建tomcat
# dockerfile安装tomcat
# docker搭建tomcat
# Centos8.2云服务器环境安装Tomcat8.5的详细教程
# 详解通过Docker搭建Mysql容器+Tomcat容器连接环境
# 搭建Tomcat 8源码开发环境的步骤详解
# Docker 搭建 Tomcat 运行环境的方法
# Tomcat 8.5 环境搭建步骤
# 镜像
# 多个
# 就会
# 重写
# 新源
# 可以做到
# 第一篇
# 几秒钟
# 上传
# 也不
# 运行环境
# 好了
# 你是
# 那是
# 就不
# 初见成效
# 畅通无阻
# 这个问题
# 一大
# 能在
相关文章:
如何通过FTP空间快速搭建安全高效网站?
如何设置并定期更换建站之星安全管理员密码?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何设计高效校园网站?
如何通过IIS搭建网站并配置访问权限?
如何用景安虚拟主机手机版绑定域名建站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
非常酷的网站设计制作软件,酷培ai教育官方网站?
家庭服务器如何搭建个人网站?
建站之星后台管理如何实现高效配置?
如何通过多用户协作模板快速搭建高效企业网站?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
宝塔面板创建网站无法访问?如何快速排查修复?
黑客如何利用漏洞与弱口令入侵网站服务器?
建站之星如何快速更换网站模板?
建站之星会员如何解锁更多建站功能?
电商网站制作价格怎么算,网上拍卖流程以及规则?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
javascript中的try catch异常捕获机制用法分析
北京的网站制作公司有哪些,哪个视频网站最好?
香港服务器部署网站为何提示未备案?
历史网站制作软件,华为如何找回被删除的网站?
如何配置FTP站点权限与安全设置?
详解jQuery中基本的动画方法
内网网站制作软件,内网的网站如何发布到外网?
临沂网站制作公司有哪些,临沂第四中学官网?
盐城做公司网站,江苏电子版退休证办理流程?
代购小票制作网站有哪些,购物小票的简要说明?
网页设计与网站制作内容,怎样注册网站?
建站之星备案是否影响网站上线时间?
C++中引用和指针有什么区别?(代码说明)
如何获取PHP WAP自助建站系统源码?
如何选择CMS系统实现快速建站与SEO优化?
高防服务器如何保障网站安全无虞?
建站之星展会模版如何一键下载生成?
如何在Tomcat中配置并部署网站项目?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何用IIS7快速搭建并优化网站站点?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
已有域名如何免费搭建网站?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何使用Golang安装API文档生成工具_快速生成接口文档
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何选择建站程序?包含哪些必备功能与类型?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
海南网站制作公司有哪些,海口网是哪家的?
广平建站公司哪家专业可靠?如何选择?
*请认真填写需求信息,我们会在24小时内与您取得联系。