Dockerfile 构建镜像例子
使用Dockerfile构建自己的tomcat镜像- 首先建立目录存放构建镜像需要用到的文件。
如图:
我的文件存放在 /www/mydockerfile/tomcat 目录,dockerfile 文件,测试项目apptest目录,tomcat,jdk
dockerfile_tomcat目录文件.png
建立目录,进入目录,下载tomcat,jdk,创建测试页面
- mkdir -p /www/mydockerfile/tomcat/apptest
- cd /www/mydockerfile/tomcat
- echo "Tomcat test app1" > /www/mydockerfile/tomcat/apptest/index.jsp
- wget http://dg1.bt.cn/install/src/apache-tomcat-9.0.62.tar.gz && wget http://dg1.bt.cn/install/src/jdk-8u121-linux-x64.rpm
复制代码
dockerflie建立目录1.png
建立 dockerfile 文件内容如下:请直接使用终端或者SSH工具建立。
- cat > dockerfile << EOF
- FROM centos
- ## FROM 从 centos镜像,开始构建新的镜像
- ADD apache-tomcat-9.0.62.tar.gz /usr/local
- ## ADD 添加文件并且自动解压到 /usr/local/apache-tomcat-9.0.62
- COPY apptest /usr/local/apache-tomcat-9.0.62/webapps/apptest
- ## COPY 复制 apptest 下的所有文件到容器,容器目录不存在时会自动建立 apptest 目录
- COPY jdk-8u121-linux-x64.rpm /tmp/
- ## COPY 复制 jdk-8u121-linux-x64.rpm 文件到 /tmp/
- ENV MYPATH=/usr/local/apache-tomcat-9.0.62
- ## ENV 设置容器环境变量
- WORKDIR \$MYPATH
- ## WORKDIR 设置工作目录,也就是进入容器的默认目录
- EXPOSE 8080 8009
- ## EXPOSE 容器的暴露端口
- RUN rpm -ivh /tmp/jdk-8u121-linux-x64.rpm && rm -f /tmp/jdk-8u121-linux-x64.rpm
- ## RUN 指令安装 jdk,安装完成后删除文件
- CMD ["/usr/local/apache-tomcat-9.0.62/bin/catalina.sh", "run"]
- ## CMD 指定要在容器中运行的命令,启动tomcat。
- EOF
复制代码
建立dockerfile.png
- 构建 tomcat 镜像:
Docker 界面 --> 镜像 --> 构建镜像
Dockerfile:/www/mydockerfile/tomcat/dockerfile
标签:tomcat_test:1.0
构建镜像1.png
开始构建镜像2.png
构建镜像完成
构建镜像完成.png
- 使用构建的镜像创建容器:
容器 --> 添加容器 注:本次添加的容器没有设置数据持久化,有需要请在挂载卷处设置
使用构建的镜像创建容器.png
使用构建的镜像创建容器2.png
容器创建成功
使用构建的镜像创建容器3.png
- 访问容器的tomcat,如无法访问,请在安全组界面开启8080端口
使用浏览器访问,查看效果:http://ip:8080/apptest/
访问容器的tomcat.png
更多 dockerfile 指令使用方法,请查看Docker官方文档:
https://docs.docker.com/engine/reference/builder/ |
|