在上一篇文章中《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文件夹下
编写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 build -t centosjava8:1.5 .
可以看到17步骤
当看到如下图:
说明执行成了。
使用docker images查看镜像是否制作成功:
可以发现正常。
运行
我们运行自己制作的镜像。看看vim/ifconfig/java -verson是否都正常
运行命令:
docker run -it 8f844c2c3091 /bin/bash
我们可以看到运行正常。pwd看下登录后默认路径:
/usr/local
这个路径就是我们上文,编写Dockerfile时候指定的WORKDIR 路径
我们试试vim正常。再试试ifconfig
正常。
再试试 Java - version
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学习系列教程」10-Docker容器数据卷案例
docker高级篇1-dockeran安装mysql主从复制
docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置
docker高级篇第二章-分布式存储之实战案例:主从容错切换迁移案例
Docker高级:Redis集群实战!4主4从缩容到3主3从,怎么处理?
相关推荐
离线环境下,在centos7.6系统上安装docker-ce-19.03,nvidia-docker2.4版本,其中docker-ce-19.03在docker-local.tar压缩文件里面,nvidia-docker2在nvidia-docker2.zip文件中。 具体安装流程如下: 1.安装docker ...
centos 7 离线安装docker-engine-1.12.6 yum localinstall *.rpm Installing : docker-engine-1.12.6-1.el7.centos.x86_64 8/8 Verifying : libsemanage-python-2.5-11.el7.x86_64 1/8 Verifying : setools...
docker-ce-17.03.2.ce-1.el7.centos.x86_64 Centos7 离线安装包和依赖包、 audit-libs-python-2.7.6-3.el7.x86_64.rpm checkpolicy-2.5-4.el7.x86_64.rpm docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm docker-ce-...
centos7.6.1810---镜像包dockercentos7.6.1810---镜像包dockercentos7.6.1810---镜像包docker
aspnet:5.0 构建Docker基础镜像-alpine Dockerfile文件 解决生成图片 二维码 PDF等问题 适用于.net项目Docker容器化部署
在CentOS 7.6上离线安装Docker CE 19.03和Nvidia Docker 2可以按照以下步骤进行操作: 首先,您需要从Docker官方网站或Nvidia Docker官方网站下载对应版本的安装包。确保选择与您的操作系统和架构(例如x86_64)...
29_DockerFile之CMD, ENTRYPOINT 的区别和联系.mp4 85.8MB 28_DockerFile通过VOLUME实现容器卷.mp4 47.2MB 27_DockerFile构建自定义Tomcat.mp4 91.7MB 26_DockerFile构建自定义centos.mp4 54.1MB 25_DockerFile...
canal-adapter-v1.1.7,docker镜像,参考的制作流程:https://blog.csdn.net/qiaodaima0/article/details/125561823?spm=1001.2014.3001.5501
【课程大纲】01-什么是docker02-Docker在Windows下的安装03-Docker在MAC下的安装04-Docker在Linux下的安装105-Docker在Linux下的安装206-Docker有何用?07-虚拟化与Docker08-容器与虚拟机09-Docker组件10-什么是镜像...
26_Docker_DockerFile案例-CMD-ENTRYPOINT命令案例
有docker.io-centos软件包,docker的centos镜像包!
Docker基础-7-使用Dockerfile DIY第一个镜像.rar
说明:在最小化CentOS Linux release 7.6.1810 中制作yum源,docker-ce是centos 7系统x86架构rpm包。 使用: 1、上传文件到/data/docker-ce解压,或者任意目录后修改docker-ce-26.1.0.repo 中baseurl路径。 2、mv ...
docker-engine-1.12.1-1.el7.centos.x86_64.rpm docker-engine-1.12.1-1.el7.centos.x86_64.rpm docker-engine-1.12.1-1.el7.centos.x86_64.rpm
解压上传到服务器 安装docker sh install.sh docker-18.03.1-ce.tgz 卸载docker sh uninstall.sh 安装docker-compose sh docker-compose.sh docker-compose-Linux-x86_64 如有不明白的欢迎随时咨询
查了很多资料都说不支持Centos6,需要升级内核,后来终于找到不升级内核的办法,成功安装上docker,必须要用到这个版本的docker安装包,CentOS6能用的docker完整安装包,已在生产环境稳定使用。
遇到内网环境下不能将开通通讯,无法直接拉取docker镜像,分享给大家做好的docker离线镜像包,centos7系统环境下可用,可通过查看本人博客教程安装部署 地址: ...
自动构建阿里云源的Ubuntu_14.04的docker基础镜像Dockerfile_docker-ubuntu
Docker基础-14-Dockerfile实战练习2.rar
Docker基础-11-Dockerfile语法基本介绍.rar