wordpress主页在,莆田百度seo排名,静态网站站内搜索,免费建设企业网站docker目录 1 Dockerfile是什么2 Dockerfile能干嘛3 如何书写Dockerfile3.1 Dockerfile构建过程解析3.2 小总结3.3 Dockerfile的基本知识3.5 保留字FROMMAINTAINERRUN 有两种方式EXPOSEWORKDIRENVUSERVOLUMEADDCMDENTRYPOINT 4 后记 1 Dockerfile是什么 Dockerfile顾名思义就是… docker目录 1 Dockerfile是什么2 Dockerfile能干嘛3 如何书写Dockerfile3.1 Dockerfile构建过程解析3.2 小总结3.3 Dockerfile的基本知识3.5 保留字FROMMAINTAINERRUN 有两种方式EXPOSEWORKDIRENVUSERVOLUMEADDCMDENTRYPOINT 4 后记 1 Dockerfile是什么 Dockerfile顾名思义就是跟docker有关的文件官方一点就是用于构建docker镜像的文本文件是由指令和参数组成的脚本。 tipsDockerfile的第一个字母要大写不要问我为什么比如张三就是叫张三。 Dockerfile官网链接给到大家啦自行按需查看捏~ https://docs.docker.com/reference/dockerfile/
2 Dockerfile能干嘛 我们之前了解过相对于传统的虚拟机来说docker的速度能够达到秒级是因为docker的镜像都是十分基础的里面的内核都是必须的不必要的东西都需要后天的去增加功能。比如基础的ubuntu是没有vim、ifconfig的这就需要我们手动操作那不难理解随着我们需求的增加可能不断需要新的增加内容因为我们需求的不断变化使得我们重复安装内容的操作逐渐麻烦所以Dockerfile应运而生。 我的理解是Dockerfile能够批量进行操作运行命令和参数便于我们创建所需的镜像。
3 如何书写Dockerfile 构建三部曲编写Dockerfile------ docker build构建镜像-------- docker run
3.1 Dockerfile构建过程解析 Docker执行Dockerfile的大致流程 1 docker从基础镜像运行一个容器 2 执行一条指令并对容器作出修改 3 执行类似docker commit的操作提交一个新的镜像层 4 docker再基于刚提交的镜像运行一个新容器 5 执行Dockerfile中的下一条指令直到所有指令都执行完成 3.2 小总结
从应用软件的角度来看Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段Dockerfile是软件的原材料Docker镜像是软件的交付产品Docker容器则可以认为是软件镜像的运行态也即依照镜像运行的容器实例。
3.3 Dockerfile的基本知识 1 每条保留字指令都必须为大写字母且后面要跟随至少一个参数 2 指令按照从上到下顺序执行 3 #表示注释 4 每条指令都会创建一个新的镜像层并对镜像进行提交。 是不是看到这里就想啥是保留字啊我刚学的时候也一头雾水了。
3.5 保留字
注意上文提到过保留字都是大写字母且至少跟随一个参数
FROM
基础镜像当前新镜像是基于哪个镜像的指定一个已经存在的镜像作为模板第一条必须是FROM类似与基类或者说父类
MAINTAINER
镜像维护者的姓名和邮箱地址
RUN 有两种方式 RUN yum -y install vim --------相当于shell命令 RUN [“可执行文件”, “参数1”, …] -------------exec格式 我们用shell命令多一点可以发现它就是RUN加上我们的Linux命令更加适合中国宝宝的学习方式更好地迁移学习。 RUN是在 docker build 时运行的
EXPOSE
当前容器对外暴露出的端口
#暴露80端口
EXPOSE 80 WORKDIR
指定在创建容器后终端默认登录的进来工作目录一个落脚点
ENV
用来在构建镜像过程中设置环境变量
USER
指定该镜像以什么样的用户去执行如果都不指定默认是root
VOLUME
容器数据卷用于数据保存和持久化工作
ADD
将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
CMD
指定容器启动后要干的事情 CMD指令的格式和 RUN 类似也是两种格式 1 shell 格式 CMD 命令 2 exec格式 CMD[“可执行文件”,“参数1”“参数2”…] 3 参数列表格式CMD[“参数1”,“参数2”…]在指定了 ENTRYPOINT 指令后用 CMD 指定具体的参数 注意 1 Dockerfile中可以有多个 CMD 指令但只有最后一个生效CMD会被 docker run 之后的参数替换 2 CMD和RUN的区别CMD是在docker run时运行RUN是在docker build时运行 ENTRYPOINT
类似于CMD用来指定一个容器启动时要运行的命令但不会被docker run后面的命令覆盖而且这些命令行参数会被当作参数送给ENTRYPOINT指令指定的程序。 ENTRYPOINT 可以和 CMD一起使用一般是变参才会使用CMD这里的CMD等于是在给ENTRYPOINT传参。 就是说当指定了ENTRYPOINT后CMD的含义就发生了变化不再是直接运行其命令而是将CMD的内容作为参数传递给ENTRYPOINT指令他们的组合会变成ENTRYPOINT CMD 优点 在执行docker run的时候可以指定ENTRYPOINT运行所需的参数。 注意 如果Dockerfile中存在多个ENTRYPOINT指令仅最后一个生效 4 后记 下一篇讲一下Dockerfile的案例记得来看啊~ BB啊如果本文档对您有一点点用的话记得给美丽好学的我点个大大的赞谢谢BB~ 今天带了大圈的耳环尊嘟很好看很开心素颜也好看嘻嘻愿我们都有一个好心情