Dockerfile编写
2018-03-31 11:23
381 查看
基本语法
FROM 指定基础镜像
使用FROM指定基础镜像进行定制,官方给我们提供了很多基础镜像,比如1、服务类的镜像,如 nginx、redis、mongo、mysql、httpd、php、tomcat 等;也有一些方便开发、构建、运行各种语言应用的镜像,如 node、openjdk、python、ruby、golang 等。可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。
2、操作系统镜像,如 ubuntu、debian、centos、fedora、alpine 等
3、Docker 还存在一个特殊的镜像,名为 scratch。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。
4、不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 swarm、coreos/etcd。对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 FROM scratch 会让镜像体积更加小巧。
RUN执行命令
一、其格式有两种:
shell 格式:RUN <命令>,就像直接在命令行中输入的命令一样。刚才写的 Dockerfile 中的 RUN 指令就是这种格式。RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
exec 格式:RUN [“可执行文件”, “参数1”, “参数2”],这更像是函数调用中的格式。
FROM debian:jessie RUN buildDeps='gcc libc6-dev make' \ && apt-get update \ && apt-get install -y $buildDeps \ && wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" \ && mkdir -p /usr/src/redis \ && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \ && make -C /usr/src/redis \ && make -C /usr/src/redis install \ && rm -rf /var/lib/apt/lists/* \ && rm redis.tar.gz \ && rm -r /usr/src/redis \ && apt-get purge -y --auto-remove $buildDeps
Union FS 是有最大层数限制的,比如 AUFS,曾经是最大不得超过 42 层,现在是不得超过 127 层。
构建镜像
docker build [选项] <上下文路径/URL/->
相关文章推荐
- 如何编写最佳的Dockerfile
- docker 应用-2(Dockerfile 编写以及镜像保存提交)
- 编写Dockerfile构建你自己的镜像
- 手把手教你写Dockerfile, 附赠MongoDB和Nginx Dockerfile编写实例
- 在 Docker 上开发应用 - 编写 Dockerfile 的最佳实践
- Docker学习三两事(三)Dockerfile 编写
- 脉冲云在线指定Dockerfile文件--如何编写Dockerfile文件
- 莫然大神CICD文章,dockerfile编写原则
- docker 应用-2(Dockerfile 编写以及镜像保存提交)
- docker 应用-2(Dockerfile 编写以及镜像保存提交)
- windows中docker编写一个dockerfile文件
- 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署
- Dockerfile编写
- Dockerfile编写总结
- Dockerfile 简版大全,附赠编写实例
- (转)编写 DockerFile
- 编写最佳的Dockerfile的方法
- 编写 DockerFile
- Dockerfile编写 phpmyadmin