首页 > 系统相关 >docker高级篇第三章-dockerfile案例之制作自己的centos镜像

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

时间:2022-12-24 17:02:53浏览次数:64  
标签:系列 centos Dockerfile 学习 镜像 docker dockerfile Docker

在上一篇文章中​​《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文件夹下

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_Docker

编写Dockerfile:

vim Dockerfile

将以下复制:

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 CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash

说明:

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后面有个空格,有个点

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_java_02

实例套用命令公式:

docker build -t centosjava8:1.5 .

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_Docker_03

可以看到17步骤

当看到如下图:

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_Docker_04

说明执行成了。

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

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_java_05

可以发现正常。

运行

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

运行命令:

docker run -it 8f844c2c3091   /bin/bash

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

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_docker_06

/usr/local

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

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

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_docker_07

正常。

再试试 Java - version

docker高级篇第三章-dockerfile案例之制作自己的centos镜像_java_08

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学习教程系列汇总】笔记及遇到问题解决文章​



标签:系列,centos,Dockerfile,学习,镜像,docker,dockerfile,Docker
From: https://blog.51cto.com/kaigejava/5967158

相关文章

  • Docker+Jenkins+Gitee+Node+Vue构建dist包并通过publish over ssh传输到服务器替换重
    场景docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/12837......
  • 46使用docker出现的问题与解决方法
    从docker仓库安装最新的centos,无法安装git解决方法如下:进入目录#1.cd/etc/yum.repos.d/修改文件内容#2.sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/Ce......
  • docker高级篇第三章-dockerfile案例之制作自己的centos镜像
    在上一篇文章中《Dockerfile介绍及常用保留指令》,我们介绍了Dockerfile是什么以及Dockerfile常用的保留字段。熟悉了这些之后,有没有想自己动手写一个Dockerfile呢?本文咱们......
  • Docker学习笔记
    一、容器化技术相关概念1、容器化技术概念在软件开发过程中环境配置永远是最让人头疼的在开发之前我们需要准备各种运行环境、IDE及辅助工具同时软件部署也为程序员的谢......
  • centos 启动出现:you are in emergency mode
    本机是centosstream9。启动后,进不了系统登录界面。刚刚开始我是认为是不是我系统忘记关闭centos自动升级导致升级带来的问题。开机的时候遇到如下图:按Control-D。如下图,通......
  • Linux 平台的最强 docker 管理面板 Portainer
    PortainerPortainer是一个可视化的Docker操作界面,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示......
  • 解决pipline找不到docker命令:/Users/beck/.jenkins/workspace/locust_test@tmp/durabl
    问题一:/Users/beck/.jenkins/workspace/locust_test@tmp/durable-884e1b18/script.sh:line1:docker:commandnotfound完整的pipeline如下,在dockerhub上我打包了locu......
  • centos8、9 设置服务开机自动开启
    第一步:进入到/lib/systemd/system/目录cd/lib/systemd/system/第二步:创建nginx.service文件,并编辑vimnginx.service文件内容[Unit]Description=ng......
  • 将镜像上传到Docker Hub中央仓库中
    首先创建一个镜像,点击:​​创建一个简单的Docker镜像​​1.先注册帐号 ​​https://hub.docker.com/​​         2.将镜象推上去[root@localhostdocker]#docker......
  • 44docker
    笔记dockerdockerDocker概述Docker安装Docker命令镜像命令容器命令操作命令....Docker镜像容器数据卷DockerFileDocker网络原理IDEA整合D......