使用Dockerfile制作Docker镜像
最近项目中使用到Docker,因此趁在周末时间,研究下Docker。Docker环境安装之前已经安装就绪,请参考:《在Centos中安装Docker CE》。我们从简单的开始,使用Dockerfile制作一个能运行Java应用程序的Docker镜像
1、准备JDK和Tomcat,将JDK和Tomcat放到/usr/local/soft目录下,soft目录是我自己新增的
2、在/usr/local/soft目录下创建Dockerfile文件,文件内容如下
#VERSION 0.0.1
#base image
FROM ubuntu:latest
MAINTAINER longwentao “aaa@qq.com126.com”
#install jdk and tomcat
ADD jdk-7u79-macosx-x64.dmg /usr/local/
ADD apache-tomcat-7.0.72 /usr/local/apache-tomcat-7.0.72
ADD onStart.sh /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.7.0_79 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin
RUN echo "JAVA_HOME=/usr/local/jdk1.7.0_79.jdk CALSSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nPATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
#add execute privilege
RUN chmod +x /usr/local/onStart.sh
EXPOSE 8888
#start tomcat
ENTRYPOINT /usr/local/onStart.sh
TIPS:
1) FROM 表示基于哪个基础镜像制作镜像,这里是基于ubuntu的最新镜像
2) MAINTAINER 表示由哪个维护这个镜像
3) ADD 表示将宿主机上的文件复制到镜像的指定目录,这里是将jdk和tomcat复制到镜像的/usr/local目录下;onStart.sh是另一个文件,在ENTRYPOINT中会指定需要运行什么样的命令,因此将这些命令统一放在onStart.sh文件中
4) 因此onStart.sh是新增文件,因此还需要给它添加可执行权限,不然会报权限错误
5) ENV 表示指定环境变量
6) RUN 运行指定的命令,这里用于配置Java环境变量
7) EXPOSE 8888 指定暴露8888端口
8) ENTRYPOINT 进入点,后面跟的是需要执行的脚本
3、在/usr/local/soft目录下创建onStart.sh文件,文件内容如下
#!/bin/bash
/usr/local/apache-tomcat-7.0.72/bin/startup.sh
#tail -f /usr/local/apache-tomcat-7.0.72/logs/onSart.log
4、进入到/usr/local/soft目录下,使用docker build 制作Docker镜像
docker build -t="tomcat-ubuntu:v1.0" .
TIPS:
1) -t=”tomcat-ubuntu:v1.0” 指定镜像名称为tomcat-ubuntu,tag为v1.0
2) 最后的一点(.)表示当前目录下的Dockerfile文件
5、最后通过docker images查看生成的镜像
上一篇: 水蒸蛋水和蛋的比例,快点掌握起来吧!
下一篇: Docker Compose容器编排
推荐阅读
-
使用dockerfile构建nginx镜像的方法示例
-
详解docker下的Mysql镜像的使用方法
-
CentOS 6.5 制作可以ssh登录的Docker镜像
-
Docker的boot2docker.iso镜像使用
-
Docker使用Dockerfile来创建镜像
-
[图文] Fedora 28 使用 Virt-Manager 制作并优化QCOW2镜像——Windows 10 1709
-
Docker如何使用Dockerfile构建镜像
-
详解制作各种docker镜像
-
Docker入门 - 安装docker并使用docker搭建PHP环境,初步了解Dockerfile
-
docker中Dockerfile方式建立镜像HelloWorld