73人参与 • 2024-08-08 • Docker
dockerfile就是一个文本文件,其中包含一个个的指令(instruction),用指令来说明要执行什么操作来构建镜像。
每一个指令都会形成一层layer。
注意:第一行必须是 from 指令才行
需求:
基于ubuntu镜像构建一个新镜像,运行一个java项目
将本文最上面的资源下载到本地
等会我们直接使用这个文件就可以依次执行这些指令帮助我们构建好自己的镜像(每个指令都会分一层)
# 指定基础镜像 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
mkdir docker-demo cd docker-demo
直接借助 finalshell 拖动上传即可:
docker build -t javaweb:1.0 .
最后空格后面要加一个点,代表的是dockerfile所在的目录(也就是我们现在所在的 docker-demo 目录)
可以看到镜像构建完成了
docker run --name my-javaweb -p 8090:8090 -d javaweb:1.0
启动成功
http://自己的服务器地址:8090/hello/count
其实之前的实例中我们的 dockerfile 还可以简化一些不需要我们写的东西,当然并不是不用写了,而是别人帮我们写好了
ⅰ.更改 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 # 启动容器
http://自己的服务器地址:8091/hello/count
1.dockerfile的本质是一个文件,通过指令描述镜像的构建过程
2.dockerfile的第一行必须是from,从一个基础镜像来构建
3.基础镜像可以是基本操作系统,如ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论