使用Dockerfile创建镜像案例
一、制作Tomcat镜像
1.准备好tomcat和jdk的压缩包,放入/docker目录,解压后重命名:
[root@192 docker]# tar -zxvf apache-tomcat-8.0.47.tar.gz
[root@192 docker]# tar -zxvf jdk-8u77-linux-x64.tar.gz
[root@192 docker]# mv apache-tomcat-8.0.47 tomcat
[root@192 docker]# mv jdk1.8.0_77 jdk
2.删掉jdk文件夹下多余文件, 降低build的镜像大小
rm -rf /docker/jdk/*src.zip \
/docker/jdk/lib/missioncontrol \
/docker/jdk/lib/visualvm \
/docker/jdk/lib/*javafx* \
/docker/jdk/jre/lib/plugin.jar \
/docker/jdk/jre/lib/ext/jfxrt.jar \
/docker/jdk/jre/bin/javaws \
/docker/jdk/jre/lib/javaws.jar \
/docker/jdk/jre/lib/desktop \
/docker/jdk/jre/plugin \
/docker/jdk/jre/lib/deploy* \
/docker/jdk/jre/lib/*javafx* \
/docker/jdk/jre/lib/*jfx* \
/docker/jdk/jre/lib/amd64/libdecora_sse.so \
/docker/jdk/jre/lib/amd64/libprism_*.so \
/docker/jdk/jre/lib/amd64/libfxplugins.so \
/docker/jdk/jre/lib/amd64/libglass.so \
/docker/jdk/jre/lib/amd64/libgstreamer-lite.so \
/docker/jdk/jre/lib/amd64/libjavafx*.so \
/docker/jdk/jre/lib/amd64/libjfx*.so
3.进入/docker目录, 在当前目录下创建Dockerfile文件
#使用的基础镜像
FROM centos
#作者信息
MAINTAINER by wanglinyong ([email protected])
#创建目录
RUN mkdir -p /java/jdk1.8.0_77
#把当前目录下的jdk文件夹添加到镜像
ADD jdk /java/jdk1.8.0_77
#创建tomcat目录
RUN mkdir -p /java/apache-tomcat-8.0.47
#把当前目录下的tomcat文件夹添加到镜像
ADD tomcat /java/apache-tomcat-8.0.47
#添加环境变量
ENV JAVA_HOME /java/jdk1.8.0_77
ENV CATALINA_HOME /java/apache-tomcat-8.0.47
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#暴露8080端口
EXPOSE 8080
#启动时运行tomcat
CMD ["/java/apache-tomcat-8.0.47/bin/catalina.sh","run"]
4.开始构建docker镜像文件
[root@192 docker]#docker build -t centos-tomcat8:0.0.1 .
-t 设置tag名称, 命名规则registry/image:tag
. 表示使用当前目录下的Dockerfile文件
出现Successfully built b2fb42f77ca7,说明镜像创建成功,镜像创建完成之后,查看当前宿主机镜像列表
[root@192 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos-tomcat8 0.0.1 ba6111759e00 49 seconds ago 398 MB
docker.io/centos latest 5182e96772bf 2 months ago 200 MB
5.根据centos-tomcat8镜像创建一个容器并启动(如果有需要可以创建数据卷)
docker run -d -p 8081:8080 --name test-tomcat centos-tomcat8:0.0.1
参数说明:
- -d 后台运行
- -p 宿主机port:容器port (端口映射)
- --name 容器名称
然后直接访问http://192.168.108.128:8081/ 即可出现tomcat首页,如下