Docker之Dockerfile镜像自定义

网友投稿 272 2022-09-21

Docker之Dockerfile镜像自定义

Docker之Dockerfile镜像自定义

​​镜像的结构​​​​使用Dockerfile​​

镜像的结构

一些所用的镜像我们直接可以用现成的,可以直接从docker hub拉取,或者下载响应的tar包进行构建。 自定义镜像的用处在于对自己的项目的一个运行的需求。

镜像本身是将我们应用程序以及函数库,包括了环境,配置,依赖打包,如果没有这些基础的话,是不能在docker运行成为一个独立的容器程序的。

镜像的结构是什么? 首先是基础镜像,也叫BaseImage。 基础镜像提供了镜像所需要的函数库,环境配置等等。 然后就是各种层,也叫Layer,这个层啊是在我们的基础镜像上添加的一些配置 然后就是我们的入口,可以是java项目的启动命令。

使用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# 安装JDKRUN cd $JAVA_DIR \ && tar -xf ./jdk8.tar.gz \ && mv ./jdk1.8.0_144 ./java8# 配置环境变量ENV JAVA_HOME=$JAVA_DIR/java8ENV PATH=$PATH:$JAVA_HOME/bin# 暴露端口EXPOSE 8090# 入口,java项目的启动命令ENTRYPOINT java -jar /tmp/app.jar

我们可以基于ubuntu做这个镜像,这样没有什么问题,centos也可以去用。里面都是一些基础的配置。

部署一个简单的javaweb项目进行测试就完了,因为再大的项目也是一样的道理。

我们需要jdk,那么就需要引入jdk的包。

所以做这个镜像一共需要 Dockerfile,jdk包,以及我们的项目jar包。

把他们放在一个目录下面

现在我们开始执行命令

docker build -t javaweb:1.0 .

这是我们构建镜像的命令

-t 指定了镜像的名字以及版本。

镜像的名字就叫做javaweb

版本1.0,

注意后面有一个空格,然后 .代表使用当前目录的 Dockerfile。我们后面执行的命令会使用到这个脚本文件执行。

查看有没有构建成功

docker

启动,注意要看一下Dockerfile的暴露端口

docker run --name web -p 8090:8090 -d javaweb:1.0

–name 后面是给这个运行的容器起一个名字

-p后面是端口映射

-d 是后台运行

javaweb:1.0 基于javaweb这个镜像的1.0版本

不细说了。

然后我们去访问的话,还是服务器外网ip地址加上这个端口号。还有就是防火墙的端口开放,不说了。一定要记住服务器面板端口也要开放。

这样就访问成功了。

但是我们的脚本文件可以做进一步的简化。

From java:8-alpineCOPY ./docker-demo.jar /tmp/app.jar# 暴露端口EXPOSE 8090# 入口,java项目的启动命令ENTRYPOINT java -jar /tmp/app.jar

java:9-alpine 简化了哪些操作 它是别人做好的镜像,它已经囊括了这么几步。

## 配置环境变量,JDK的安装目录#ENV JAVA_DIR=/usr/local### 拷贝jdk的包#COPY ./jdk8.tar.gz $JAVA_DIR/## 安装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

你看,主要是做了jdk的配置

以后用这个也可以,都行,这个Dockerfile就更加简化了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:不足百字:蚂蚁二次约谈消息稿释放三个强烈信号!
下一篇:仓储模式是否依然适用于EF Core?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~