Docker使用Dockerfile自定义镜像方式
什么是Dockerfile
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。
每一个指令都会形成一层Layer。
常见指令
注意:第一行必须是 FROM 指令才行

看实例
需求:
基于Ubuntu镜像构建一个新镜像,运行一个java项目
1.下载资料
将本文最上面的资源下载到本地

2.查看Dockerfile
等会我们直接使用这个文件就可以依次执行这些指令帮助我们构建好自己的镜像(每个指令都会分一层)
# 指定基础镜像 FROM ubuntu:16.04 # 配置环境变量,JDK的安装目录 ENV JAVA_DIR=/usr/local # 拷贝jdk和java项目的包 COPY ./jdk8.tar.gz $JAVA_DIR/ COPY ./docker-demo.jar /tmp/app.jar # 安装JDK RUN cd $JAVA_DIR \ && tar -xf ./jdk8.tar.gz \ && mv ./jdk1.8.0_144 ./java8 # 配置环境变量 ENV JAVA_HOME=$JAVA_DIR/java8 ENV PATH=$PATH:$JAVA_HOME/bin # 暴露端口 EXPOSE 8090 # 入口,java项目的启动命令 ENTRYPOINT java -jar /tmp/app.jar
3.新建目录
mkdir docker-demo cd docker-demo

4.上传资料
直接借助 FinalShell 拖动上传即可:

5.构建镜像
docker build -t javaweb:1.0 .
最后空格后面要加一个点,代表的是Dockerfile所在的目录(也就是我们现在所在的 docker-demo 目录)

可以看到镜像构建完成了

6.启动容器
docker run --name my-javaweb -p 8090:8090 -d javaweb:1.0
启动成功

7.浏览器访问
http://自己的服务器地址:8090/hello/count

四、实例升级
1.为什么升级
其实之前的实例中我们的 Dockerfile 还可以简化一些不需要我们写的东西,当然并不是不用写了,而是别人帮我们写好了

2.如何升级
Ⅰ.更改 Dockerfile
我们可以直接基于已经安装好 jdk 的镜像 openjdk:8-alpine 来构建我们的镜像,只需要将 Dockerfile 更改为如下:
# 指定基础镜像 FROM openjdk:8-alpine COPY ./docker-demo.jar /tmp/app.jar # 暴露端口 EXPOSE 8090 # 入口,java项目的启动命令 ENTRYPOINT java -jar /tmp/app.jar
Ⅱ.构建镜像并运行容器
docker build -t javaweb:2.0 . # 构建镜像 docker run --name my-javaweb-2.0 -p 8091:8090 -d javaweb:2.0 # 启动容器

3.再次测试
http://自己的服务器地址:8091/hello/count

总结
1.Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
2.Dockerfile的第一行必须是FROM,从一个基础镜像来构建
3.基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
springboot中shiro使用自定义注解屏蔽接口鉴权实现
本文主要介绍了springboot中shiro使用自定义注解屏蔽接口鉴权实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-07-07
Centos6.5下Jdk+Tomcat+Mysql环境安装图文教程
这篇文章主要为大家详细介绍了Centos6.5系统下Jdk+Tomcat+Mysql环境安装过程,感兴趣的小伙伴们可以参考一下2016-05-05
Java 获取Html文本中的img标签下src中的内容方法
今天小编就为大家分享一篇Java 获取Html文本中的img标签下src中的内容方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06


最新评论