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

2020-06-17 06:37:20易采站长站整理

以下无效方式:


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

剩下的步骤,就很简单了。

您可能感兴趣的文章:java中接口(interface)及使用方法示例Java NumberFormat 类的详解及实例java @interface 注解详解及实例java中的interface接口实例详解Dockerfile 部署java web的环境详解JavaWeb项目中dll文件动态加载方法解析(详细步骤)解析Java和Eclipse中加载本地库(.dll文件)的详细说明Java调用.dll文件的方法Java调用明华RF读写器DLL文件过程解析