• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法

Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法

作者:聂永 字体:[增加 减小] 来源:互联网

本文主要包含dockerfile构建tomcat,dockerfile安装tomcat,docker搭建tomcat等服务器相关知识,聂永 希望可以进行参考

前言

在第一篇文字中,我们完全人工方式,一个命令一个命令输入,实现一个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/CMD都只能在文件中存在一次,并且最后一个生效 多个存在,只有最后一个生效,其它无效!
  • 需要初始化运行多个命令,彼此之间可以使用 && 隔开,但最后一个须要为无限运行的命令,需切记!

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 部署java web的环境详解
  • 详解使用Docker搭建Java Web运行环境
  • Docker搭建前端Java的开发环境详解
  • 详解docker镜像centos7配置Java运行环境
  • Docker下搭建一个JAVA Tomcat运行环境的方法
  • docker 的java编译环境构建详细介绍
  • Java 使用Docker时经常遇到的五个问题
  • 讲解使用Docker搭建Java Web运行环境
  • 详解Docker学习笔记之搭建一个JAVA Tomcat运行环境
  • 使用Docker搭建Java环境的步骤方法
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法
  • Docker-利用dockerfile来搭建tomcat服务的方法

相关文章

  • 服务器虚拟资源分配原则如何制定?
  • Docker容器使用jenkins部署web项目(总结)
  • Docker教程:使用容器(简单示例)
  • 基于docker的caffe环境搭建方法
  • VirtualBox虚拟机使用技巧
  • Docker使用过程中的一些注意事项
  • VirtualBox 配置虚拟网卡(桥接),实现主机-虚拟机网络互通(图文教程)
  • Docker 搭建 Tomcat 运行环境的方法
  • Dockerfile中CMD和ENTRYPOINT命令详解
  • CentOS系统中一键安装Openstack图文教程

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • KVM与OpenStack的前世今生(1)
    • Docker实践—CentOS7上部署Kubernetes详解
    • VMware下CentOS6.4网卡设置为桥接模式静态IP配置方法详解
    • 服务器整合:虚拟机密度大未必好事
    • 总结红帽RHEV3.0 展望RHEV3.1
    • Openstack 节点维护详细讲解
    • Docker SSH连接docker容器的示例代码
    • VirtualBox中CentOS7安装教程
    • linux常用命令之VMware10中安装CentOS 6.4图文教程
    • Vmware虚拟机启动按F2无法进入BIOS画面的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有