网站首页 > 技术文章 正文
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 “\ndaemonoff:” >> /etc/nginx/nginx.conf
#容器启动时的指令
CMD /usr/sbin/nginx
操作一下:
首先创建目录testDockerfile并进入
vi Dockerfile
创建命令:
docker build –t =“<镜像名称>”.
注意:执行此命令要和Dockerfile在同级目录,文件名称必须为Dockerfile。命令后面的”.”表示在当前目录下执行。
2.Dockerfile指令集
1 FROM
格式为 FROM <image>或<image>:<tag> .
第一条指令必须为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技术文章。分享给大家。感谢大家的转发,关注和收藏。
猜你喜欢
- 2024-09-27 【容器篇】认识Dockerfile dockerfile示例
- 2024-09-27 Dockerfile常用指令大全及详解 dockerfile中最常见的指令是什么
- 2024-09-27 阿里云Docker/Kubernetes(K8S) 日志解决方案与选型对比
- 2024-09-27 Docker 镜像构建之 Dockerfile docker镜像在哪个文件夹
- 2024-09-27 docker进击之Dockerfile最佳实践 dockersfile
- 2024-09-27 Dockerfile简单使用 dockerfile示例
- 2024-09-27 Dockerfile你值得拥有 dockerfile sh
- 2024-09-27 DockerFile文件详解 dockerfile文件详解java
- 2024-09-27 Docker实战九之Docker Dockerfile
- 2024-09-27 Docker篇(三):Dockerfile实战开启
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)