美文网首页从零学Java笔录凯哥Java-工作总结
docker高级篇第三章-dockerfile案例之制作自己的c

docker高级篇第三章-dockerfile案例之制作自己的c

作者: 凯哥Java | 来源:发表于2022-12-24 15:32 被阅读0次

    在上一篇文章中《Dockerfile介绍及常用保留指令》,我们介绍了Dockerfile是什么以及Dockerfile常用的保留字段。熟悉了这些之后,有没有想自己动手写一个Dockerfile呢?本文咱们就实战自己Dockerfile。

    案例需求:

    我们以远程仓库的centos为模板,制作出代用vim\ifconfig\java8这样的镜像

    jdk镜像地址:https://mirrors.yangxingzhen.com/jdk/

    步骤:编写、构建、运行

    编写:

    准备编写Dockerfile文件。注意:字母D需要大写。

    创建文件夹:myfile

    然后将下载的jdk-8u171-linux-x64.tar.gz复制到myfile文件夹下

    de69c3135ba88e4d9690b78ae0e4e0ab.png

    编写Dockerfile:

    vim Dockerfile

    将以下复制:

    <pre class="brush:as3;toolbar:false" style="margin: 0.5em 0px; padding: 0.4em 0.6em; border-radius: 8px; background: rgb(248, 248, 248);">FROM centos:7
    MAINTAINER kaigejava
    ENV MYPATH /usr/local
    WORKDIR $MYPATH

    安装vim编辑器

    RUN yum -y install vim

    安装ifconfig命令查看网络IP

    RUN yum -y install net-tools

    安装java8及lib库

    RUN yum -y install glibc.i686
    RUN mkdir /usr/local/java

    ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置

    ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

    配置java环境变量

    ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
    ENV JRE_HOME JAVA_HOME/jre ENV CLASSPATHJAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:JRE_HOME/lib:CLASSPATH ENV PATHJAVA_HOME/bin:PATH EXPOSE 80 CMD echoMYPATH
    CMD echo "success--------------ok"
    CMD /bin/bash
    </pre>

    说明:

    FROM :基于哪个基镜像

    MAINTAINER:镜像作者和邮箱

    ENV:用来构建镜像过程中的环境变量。其中环境变量命中是:MYPATH 值为:/usr/local

    WORKDIR:指定创建容器后,终端默认登录进入的工作目录

    RUN:容器构建时候需要运行的命令。上面文件使用的是shell命令格式的。

    如:yum -y install vim、mkdir

    ADD:将宿主机目录下的文件拷贝到镜像中会自动处理url和解压tar压缩包。

    上文中的:ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/ 命令实际上就是将宿主机中的/myfile/ jdk-8u171-linux-x64.tar.gz 这个文件拷贝并解药到 /usr/local/java文件夹下 。

    小技巧:

    可以将构建镜像所需要的所有文件,都放到和Dockerfile同一个目录中,这样在ADD的时候,不用可以直接文件名,相对路径就可以。可以避免,全路径拼写错误导致不必要的麻烦

    CMD echo 输入变量MYPATH的值;输出usccess---ok。执行/bin/bas 伪终端

    构建

    构建命令公式:

    docker build -t 新镜像命中:TAG .

    注意:上面TAG后面有个空格,有个点

    53c6d84ef73e0efdbdc2b39b9cc3ee8d.png

    实例套用命令公式:

    docker build -t centosjava8:1.5 .

    b997445b393a06364a5283626c00bdb2.png

    可以看到17步骤

    当看到如下图:

    a3a240108d9ba0fc0abd8643a2999f7a.png

    说明执行成了。

    使用docker images查看镜像是否制作成功:

    7f1f865a5b72bbf7bfdabdfb045a46fb.png

    可以发现正常。

    运行

    我们运行自己制作的镜像。看看vim/ifconfig/java -verson是否都正常

    运行命令:

    docker run -it 8f844c2c3091 /bin/bash

    我们可以看到运行正常。pwd看下登录后默认路径:

    0927e934f5a2bf22947f8ac236f79bd6.png

    /usr/local

    这个路径就是我们上文,编写Dockerfile时候指定的WORKDIR 路径

    我们试试vim正常。再试试ifconfig

    e18a646362dce449d232789d55ee225e.png

    正常。

    再试试 Java - version

    ab2dc67d036c50c671c6bbc143fe9c81.png

    jdk也正常。这样,我们就制作了一个包含了vim/ifconfig/jdk.18的镜像。

    大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

    结束语

    如操作有问题欢迎去 我的 个人博客(www.kaigejava.com)留言或者 微信公众号(凯哥Java)留言交流哦。

    本系列教程直通车

    直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:

    【图文教程】Windows11下安装Docker Desktop

    【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

    【Docker学习系列】Docker学习1-docker安装

    【Docker学习系列】Docker学习2-docker设置镜像加速器

    【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

    【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令

    【Docker学习系列】Docker学习系列3:常用命令之容器命令

    【Docker学习系列】Docker学习4-常用命令之重要的容器命令

    【Docker教程系列】Docker学习5-Docker镜像理解

    【Docker教程系列】Docker学习6-Docker镜像commit操作案例

    【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

    【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

    「Docker学习系列教程」9-Docker容器数据卷介绍

    「Docker学习系列教程」10-Docker容器数据卷案例

    Docker学习11-Docker常规方式安装软件

    「Docker学习系列教程」基础篇小总结及高级篇预告

    docker高级篇1-dockeran安装mysql主从复制

    docker高级篇2-分布式存储之三种算法

    docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置

    docker高级篇第二章-分布式存储之实战案例:主从容错切换迁移案例

    Docker高级:Redis集群实战!4主4从缩容到3主3从,怎么处理?

    Dockerfile介绍及常用保留指令

    【Docker学习教程系列汇总】笔记及遇到问题解决文章

    相关文章

      网友评论

        本文标题:docker高级篇第三章-dockerfile案例之制作自己的c

        本文链接:https://www.haomeiwen.com/subject/nqobqdtx.html