【原作者】http://blog.csdn.net/wsscy2004/article/details/25878223
版权声明:本文为博主原创文章,未经博主允许不得转载。
如何使用
Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等。当前目录下包含Dockerfile,使用命令build来创建新的image,并命名为edwardsbean/centos6-jdk1.7:
docker build -t edwardsbean/centos6-jdk1.7 .
Dockerfile关键字
如何编写一个Dockerfile,格式如下:
# CommentINSTRUCTION arguments
FROM
基于哪个镜像
RUN
安装软件用
MAINTAINER
镜像创建者
CMD
Container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD.
CMD主要用于container时启动指定的服务,当Docker run command的命令匹配到CMD command时,会替换CMD执行的命令。如:
Dockerfile:
CMD echo hello world
运行一下试试:
edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd
hello world
一旦命令匹配:
edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd echo hello edwardsbean
hello edwardsbean
ENTRYPOINT
container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条
ENTRYPOINT没有CMD的可替换特性
USER
使用哪个用户跑container
如:
ENTRYPOINT ["memcached"]
USER daemon
EXPOSE
container内部服务开启的端口。主机上要用还得在启动container时,做host-container的端口映射:
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
container ssh服务的22端口被映射到主机的33301端口
ENV
用来设置环境变量,比如:
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ADD
将文件<src>拷贝到container的文件系统对应的路径<dest>
所有拷贝到container中的文件和文件夹权限为0755,uid和gid为0
如果文件是可识别的压缩格式,则docker会帮忙解压缩
-
如果要ADD本地文件,则本地文件必须在 docker build <PATH>,指定的<PATH>目录下
-
如果要ADD远程文件,则远程文件必须在 docker build <PATH>,指定的<PATH>目录下。比如:
docker build github.com/creack/docker-firefox
docker-firefox目录下必须有Dockerfile和要ADD的文件
注意
:使用docker build - < somefile方式进行build,是不能直接将本地文件ADD到container中。只能ADD url file.
ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。
VOLUME
可以将本地文件夹或者其他container的文件夹挂载到container中。
WORKDIR
切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRYPOINT生效
ONBUILD
ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行
详见here
相关推荐
Dockerfile 组成结构、编写规范、注意事项、常用命令 及Docker-compose yml详解
本篇文章主要介绍了浅谈docker Dockerfile 指令 VOLUME 介绍 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Dockerfile 指令详解,提供常用的Docker指令,指定基础镜像,执行命令,复制文件,设置环境变量,指定工作目录,指定用户,LABEL,ARG,SHELL等指令 操作镜像
008 Dockerfile详解.mp4
007 Dockerfile详解.mp4
详细介绍Docker的每一个只是细节,本册中主要介绍了Dockerfile的编写,各个指令的语法与用法
本集主要讲如何修改Docker容器镜像中的配置信息,如nginx,docker下载一个nginx镜像后,很显然该镜像里面的conf不满足用户 需求,肯定需要被修改,那么如何修改呢,是本集的主要内容。
本集主要讲如何用docker命令制作镜像并发布运行等系列操作。
" Docker基础 — DockerFile 文件详解" 该文档对 DockerFile 文件进行了详细的解释,从 DockerFile 文件的概念到其构建过程、基本结构、注意事项等方面进行了讲解。通过该文档,可以了解 DockerFile 文件的重要性...
分类梳理的Docker API操作指令及Dockerfile文件相关命令分类梳理及最佳实践内容说明
Docker容器详解 1 1. 介绍 1 1.1. 什么是Docker? 1 1.2. 为什么需要Docker? 1 1.3. Docker可以干嘛? 1 1.4. 什么是Dockfile? 1 1.5. 什么是Docker Compose? 5 2. 环境搭建 8 2.1. Docker环境准备 8 ...
docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建的,顶层仓库由docker内部的人来管理的。仓库里存放的是镜像文件,...
docker 详解,从入门到高级。以及docker部署常用软件的详细步骤,例如tomcat ,redis,MySQL等,有需要的可以自行下载
docker-compose配置文件中文详解Compose和Docker兼容性: Compose 文件格式有3个版本,分别为1, 2.x 和 3.x 目前主流的为 3.x 其支持 docker 1.13.0 及其以上的版本常用参数: version # 指定 compose 文件的版本 ...
主要介绍了详解docker中Dockerfile指令创建镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
"Dockerfile详解" Dockerfile是容器化技术Docker的核心组件之一,它是一个包含用于组合映像的命令的文本文档。通过读取Dockerfile中的指令,Docker可以自动生成映像。下面是Dockerfile的详细解释: 一、基础镜像...
Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker...
本课程主要内容为docker入门实战操作与dockerfile的相关问题详解,希望学完之后对你有所收获