《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结

简介: 《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结

image.png

@[toc]

二、高级篇(大厂进阶)

2.DockerFile解析

image.png

2.1 是什么

image.png

问题:DockerFile是什么?

答案:Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

2.2 DockerFile构建过程解析

image.png

  • Docker执行Dockerfile的大致流程
    (1)docker从基础镜像运行一个容器
    (2)执行一条指令并对容器作出修改
    (3)执行类似docker commit的操作提交一个新的镜像层
    (4)docker再基于刚提交的镜像运行一个新容器
    (5)执行dockerfile中的下一条指令直到所有指令都执行完成
  • 小总结
    image.png

2.3 DockerFile常用保留字指令

image.png
image.png

注意点1:
ENV-用来在构建镜像过程中设置环境变量
image.png

注意点2:
ENTRYPOINT-命令格式和案例说明
image.png

注意点3:
RUN-两种格式

  • shell格式
    image.png

  • exec格式
    image.png

注意点4:
CMD-指定容器启动后的要干的事情
image.png

注意点5:
小总结
image.png

2.4案例

image.png

2.4.1自定义镜像mycentosjava8

image.png

使用步骤:
1)编写Dockerfile文件
2)构建:docker build -t 新镜像名字:TAG .
3)运行:docker run -it 新镜像名字:TAG

注意点1:
JDK的下载镜像地址,官网下载地址:https://www.oracle.com/java/technologies/downloads/#java8

image.png

其他下载地址:https://mirrors.yangxingzhen.com/jdk/
image.png

注意点2:
执行命令创建目录:mkdir /myfile -> 进入 /myfile目录 -> 准备编写Dockerfile文件执行命令vim Dockerfile -> 大写字母D
image.png

FROM centos:7
MAINTAINER zzyy
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

注意点3:
构建命令docker build -t 新镜像名字:TAG .

docker build -t centosjava8:1.5 .

image.png
image.png

注意点4:

问题:执行命令:docker build -t centosjava8:1.5 .可能会报错如图?

image.png

答案:尚硅谷视频安装的是Centos7环境,而你看红框显示Cnetos8进行下载,明显版本不匹配。
视频原配置为FROM centos
所以需要配置版本号Dockerfile的from命令为FROM centos:7,注意后面有版本号,而视频源代码为FROM centos。

详情请看其他人博客:https://blog.csdn.net/weixin_45630258/article/details/124361367?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166011738116781790737138%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166011738116781790737138&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-124361367-null-null.142^v40^pc_rank_34_ctr0,185^v2^control&utm_term=The%20command%20%2Fbin%2Fsh%20-c%20yum%20-y%20install%20vim%20returned%20a%20non-zero%20code%3A%201&spm=1018.2226.3001.4187

注意点5:
运行命令docker run -it 新镜像名字:TAG

 docker run -it centosjava8:1.5 /bin/bash

image.png

注意点6:
再体会下UnionFS(联合文件系统)
image.png

2.4.2 虚悬镜像

image.png

注意点1:

问题:虚悬镜像是什么?

答案:仓库名、标签都是的镜像,俗称dangling image

注意点2:
Dockerfile写一个虚悬镜像

1 vim Dockerfile
from ubuntu
CMD echo 'action is success'

2 docker build .

image.png

注意点3:
虚悬镜像查看命令docker image ls -f dangling=true
命令结果
image.png

注意点4:
虚悬镜像删除命令docker image prune
image.png

2.5 小总结

image.png

本人其他相关文章链接

1.《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
2.《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
3.《docker高级篇(大厂进阶):3.Docker微服务实战》
4.《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
5.《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
6.《docker高级篇(大厂进阶):6.Docker轻量级可视化工具Portainer》
7.《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
8.docker基础篇:安装tomcat
9.docker基础篇:安装mysql单机版
10.docker基础篇:安装redis单机版
11.docker高级篇(大厂进阶):安装mysql主从复制
12.docker高级篇(大厂进阶):安装redis集群

image.png

重要信息

image.png

目录
相关文章
|
2天前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
31 10
|
18天前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
1月前
|
存储 监控 调度
云服务器成本优化深度解析与实战案例
本文深入探讨了云服务器成本优化的策略与实践,涵盖基本原则、具体策略及案例分析。基本原则包括以实际需求为导向、动态调整资源、成本控制为核心。具体策略涉及选择合适计费模式、优化资源配置、存储与网络配置、实施资源监控与审计、应用性能优化、利用优惠政策及考虑多云策略。文章还通过电商、制造企业和初创团队的实际案例,展示了云服务器成本优化的有效性,最后展望了未来的发展趋势,包括智能化优化、多云管理和绿色节能。
|
1月前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
67 9
|
1月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
88 3
|
2月前
|
安全 持续交付 Docker
深入理解并实践容器化技术——Docker 深度解析
深入理解并实践容器化技术——Docker 深度解析
77 2
|
5月前
|
Docker 容器
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
|
8月前
|
Linux Docker 容器
Docker Dockerfile 语法与指令
Docker Dockerfile 语法与指令
87 0
|
Linux Docker 容器
Docker Dockerfile 语法与指令
Docker Dockerfile 语法与指令
163 0
|
应用服务中间件 Linux Shell
Docker进阶 dockerfile指令构建docker镜像
Docker进阶 Dockerfile指令,编译dockerfile文件构建镜像,dockerfile常用指令,实操训练:Dockerfile构建Nginx镜像: FROM #指定基础镜像,一切从这里开始构建 MAINTAINER #镜像是谁写的,姓名+邮箱 RUN #镜像构建的时候需要运行的命令 ADD #步骤:tomcat镜像,这个tomcat压缩包!添加内容 WORKDIR #镜像的工作目录 VOLUME #挂载的目录 EXPOST #暴露端口配置
Docker进阶 dockerfile指令构建docker镜像

热门文章

最新文章