1.利用Dockerfile创建镜像

什么是Dockerfile?

定义:Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义镜像。

基本结构:

Dockerfile由一行行的命令语句组成。并且支持以#开头的注释行。一般Dockerfile分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的指令。

Dockerfile示例:

#This is a Dockerfile

#Author:liming

#第一行必须指定基础镜像

FROM ubuntu

#维护者信息

MAINTAINER <394498036@qq.com>

#镜像的操作指令

RUN apt-get update

RUN apt-getinstall -y nginx

RUN echo “daemonoff:” >> /etc/nginx/nginx.conf

#容器启动时的指令

CMD /usr/sbin/nginx

操作一下:

首先创建目录testDockerfile并进入

vi Dockerfile

创建命令:

docker build –t =“”.

注意:执行此命令要和Dockerfile在同级目录,文件名称必须为Dockerfile。命令后面的”.”表示在当前目录下执行。

2.Dockerfile指令集

1 FROM

格式为 FROM 或: .

第一条指令必须为FROM指令,用于指定基础镜像。

2 MAINTAINER

格式为 MAINTAINER ,指定维护者信息。

3 RUN

格式为 RUN ,会在shell终端运行命令。

4 EXPOSE

格式为 EXPOSE [ ...],容器需要暴露的端口号。镜像启动可以通过 –P 或 -p 进行端口映射的绑定。

5 ENV

格式为 ENV 。

指定一个环境变量,可以被后续的RUN引用,并且在容器中记录该环境变量。

6 ADD

格式为 ADD 。

该命令将复制指定的到容器中的。其中可以是Dockerfile所在目录的一个相对路径;也可以是url,还可以是tar文件(自动解压)。

7 VOLUME

格式为 VOLUME [path]。

创建一个可以从本地主机或其他容器挂载点,一般用来存放需要保持的数据。

8 USER

格式为 USER 。

指定运行容器时的用户名,后续的RUN也会指定该用户。

9 WORKDIR

格式为 WORKDIR 。

指定工作空间,运行完WORKDIR后,后续执行的RUN、CMD、ENTRYPOINT都会在此目录下执行。

10 COPY

格式为 COPY 。

复制本地主机的到容器中的,目标路径不存在时,会自动创建。

当使用本地目录为源目录时,推荐使用COPY。

11 CMD

推荐格式为 CMD [“executable”,”param1”,”param2”] 。

作为ENTRYPOINT的默认参数为 CMD[”param1”,”param2”]。

指定容器的启动命令,每个Dockerfile只能有一条CMD命令,如果指定多条,只有最后一条会执行。

用户启动容器时指定运行命令,会覆盖掉Dockerfile中的CMD命令。

12 ENTRYPOINT

格式为 ENTRYPOINT [“executable”,”param1”,”param2”]。

配置容器启动后的命令,可被docker run提供的--entrypoint参数覆盖。

每个Dockerfile只能有一条ENTRYPOINT命令,如果指定多条,只有最后一条会执行。

3.容器内安装工具的方法

4.Dockerfile最佳实践

1 错误定位

每个Dockerfile的指令可以生成新的一层镜像,如果通过Dockerfile创建镜像出错,可以根据出错所在步骤的上一层启动容器,然后手工执行出错层的命令,以达到调试目的。

2 好的使用习惯

http://dockone.io/article/131

http://dockone.io/article/132

PS:感谢大家支持,我会每天继续写docker技术文章。分享给大家。感谢大家的转发,关注和收藏。

docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile相关推荐

  1. docker 覆盖 entrypoint_最佳实践,Dockerfile中ENTRYPOINT与CMD指令的区别与建议

    通过本文你会获得什么 熟悉Dockerfile中ENTRYPOINT和CMD指令之间的区别,以及在实际项目中的使用建议. 1 - 开始前准备 首先你要有个docker环境,以下实验基于:docker ...

  2. Docker 入门终极指南:边学边用

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者:jartto 出处:http://jartto.w ...

  3. 跟风学Docker之四:Docker网络解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 跟风学Docker之四:Docker网络解决方案 博客分类: docker 前言:前面的部分一直都是单机跑docker,但实际 ...

  4. 【云原生 | 从零开始学Docker】六、如何写出自己的镜像——Docker file

    该篇文章已经被专栏<从零开始学docker>收录 Docker file 数据卷容器 mysql数据共享 结论 Docker File Docker File的介绍 构建步骤 Docker ...

  5. 跟我一起学docker(17)--多节点mesos集群

    >>原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! >>原文链接地址:跟我一起学docker(17)–多节点mesos集群 多节点mesos集群 1.配置maste ...

  6. 解惑篇|Docker和 K8s 到底啥关系?想学K8s,必须得先学 Docker 吗?

    想学K8s,必须得先学会 Docker 吗?这是很多网友在开始琢磨着想要学 K8s 的时候都会冒出来的想法.那么今天我们就跟大家说说这个话题,要回答这个问题,我们需要先搞清楚 Docker 和 K8s ...

  7. 想学Docker?我教你啊~

    文章目录 Docker与虚拟机的区别 Docker的使用场景 Docker的核心概念 CentOS安装Docker的两种方式 实际安装Docker 首先我们先安装依赖环境 先做网络yum源 安装依赖包 ...

  8. 零基础学Docker【3】 | 一文带你快速进行Docker实战

    前言 本篇是零基础学Docker系列的第三篇文章,在上一篇文章

  9. 公司要新招美女跟我学docker,你来吗?

    Docker 快速入门 "这是一个非常棒的docker学习历程.我把一个国外的docker实践入门教学进行了简略的翻译,比起国内博客学习的总结性文章,它更注重让小白在实战背景下容易理解与感悟 ...

最新文章

  1. Delphi 与 DirectX 之 DelphiX(89): TDIB.DrawAlphaMask();
  2. Kubernetes系统架构简介
  3. JavaScript使用localStorage缓存Js和css文件
  4. 657. Robot Return to Origin 机器人能否返回原点
  5. 为什么要使用spring IOC
  6. VS封装给Unity使用的DLL
  7. div中文字,图片居中对齐,兼容FF、IE
  8. NLP 《seq2seq》
  9. android 功耗(1)---android 功耗分析方法和优化
  10. 蔚来:ET7首批预生产车正式下线
  11. 基于Windows字库的点阵数据提取方法
  12. Atitit. 构造ast 语法树的总结attilax v2 q0f
  13. android引用X5内核webview部分问题记录
  14. 系统集成j2cache
  15. 中科院计算机专业,中科院计算所博士平均年薪都超过50万了,计算机专业真是可以无脑选的那种...
  16. 垃圾回收只知道标记清除?一文帮你打通V8垃圾回收
  17. vue如何获取并操作DOM元素
  18. 小程序/app 商城 源码 发布(包括后台)
  19. java 线程的插队运行_Java线程插队
  20. 计算机网络和http权威指南 读书笔记

热门文章

  1. lua中元素的下标是从1开始的
  2. Android线程机制——AsyncTask
  3. Linux rm 删除指定文件外的其他文件 方法汇总
  4. Liferay SSO CAS 集成
  5. 潜伏研发群一个月,我发现了程序员不为人知的秘密!这也太可爱了吧
  6. Python:为什么必须在方法定义和调用中明确使用'self'?
  7. 不对应该是撒尿C++五子棋
  8. C#2005中如何把unicode编码的数字转化为EBCDIC编码
  9. 32岁,程序员,年薪60W,果断辞职考进体制内,月薪5K
  10. 揭秘!月薪30K的大牛到底看了哪些视频?【共2000G】