@
- 二、高级篇(大厂进阶)
- 2.DockerFile解析
- 2.1 是什么
- 2.2 DockerFile构建过程解析
- 2.3 DockerFile常用保留字指令
- 2.4案例
- 2.4.1自定义镜像mycentosjava8
- 2.4.2 虚悬镜像
- 2.5 小总结
- 2.DockerFile解析
- 本人其他相关文章链接
二、高级篇(大厂进阶)
2.DockerFile解析
2.1 是什么
问题:DockerFile是什么?
答案
:Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
-
概述
-
官网
https://docs.docker.com/engine/reference/builder/ -
构建三步骤
1)编写Dockerfile文件
2)docker build命令构建镜像
3)docker run依镜像运行容器实例
2.2 DockerFile构建过程解析
-
Docker执行Dockerfile的大致流程
(1)docker从基础镜像运行一个容器
(2)执行一条指令并对容器作出修改
(3)执行类似docker commit的操作提交一个新的镜像层
(4)docker再基于刚提交的镜像运行一个新容器
(5)执行dockerfile中的下一条指令直到所有指令都执行完成 -
小总结
2.3 DockerFile常用保留字指令
注意点1:
ENV-用来在构建镜像过程中设置环境变量
注意点2:
ENTRYPOINT-命令格式和案例说明
注意点3:
RUN-两种格式
-
shell格式
-
exec格式
注意点4:
CMD-指定容器启动后的要干的事情
注意点5:
小总结
2.4案例
2.4.1自定义镜像mycentosjava8
使用步骤:
1)编写Dockerfile文件
2)构建:docker build -t 新镜像名字:TAG .
3)运行:docker run -it 新镜像名字:TAG
注意点1:
JDK的下载镜像地址,官网下载地址:https://www.oracle.com/java/technologies/downloads/#java8
其他下载地址:https://mirrors.yangxingzhen.com/jdk/
注意点2:
执行命令创建目录:mkdir /myfile
-> 进入 /myfile目录
-> 准备编写Dockerfile文件
,执行命令
:vim Dockerfile
-> 大写字母D
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 .
注意点4:
问题:执行命令:docker build -t centosjava8:1.5 .可能会报错如图?
答案
:尚硅谷视频安装的是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-2allsobaiduend~default-1-124361367-null-null.142v40pc_rank_34_ctr0,185v2control&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
注意点6:
再体会下UnionFS(联合文件系统)
2.4.2 虚悬镜像
注意点1:
问题:虚悬镜像是什么?
答案
:仓库名、标签都是
注意点2:
Dockerfile写一个虚悬镜像
1 vim Dockerfile
from ubuntu
CMD echo 'action is success'2 docker build .
注意点3:
虚悬镜像查看命令
:docker image ls -f dangling=true
命令结果
注意点4:
虚悬镜像删除命令
:docker image prune
2.5 小总结
本人其他相关文章链接
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集群
重要信息
- 官网:https://ais.cn/u/vEbMBz