使用dockerfile定制对象小结
2017-11-07 17:52
218 查看
FROM:images_name 这条语句是指定基础镜像,假如是静态编译的程序,不需要系统的支持可用Scrach(空镜像)。
RUN:shell命令或者 可执行程序 有两种执行方式,
shell方式:RUN echo ‘
这里要注意的是每执行一条命令是创建一个新的容器,在容器可写层执行命令,然后再comit形成新的镜像,删除刚才的容器。在写dockerfile时一定要注意在镜像定制过程中每一层的任务关联性,比如编译和搭建一整个服务时,往往就放在一层镜像中。union FS 最大层数限制是127层。镜像的文件不会在下一层被删除,会一直跟随的整个镜像,因此在构建新的一层镜像最后,需要做的是清理不需要的缓存和文件,比如说apt的缓存文件。
在创建一个简单的镜像前两个命令就够用了,然后我们需要的是在我们机器上构建这个镜像。
docker build [选项] [需要文件的上下文路径]
同时docker支持使用git-repo和下载地址
docker build https://github.com/sky-2016yty/nothing-.git
会自动clone仓库到本地执行Dokcerfile
如果下载地址的内容是压缩包的话会先解压在构建,并且将解压后文件当着上下文。
docker build https:ww.skypointer.cn/test.tar.gz
同样的会使用标准输入流来执行docker build 命令 ,默认会将当前目录作为上下文展开。
cat Dockerfile |docker build 或 docker build -< Dockerfile
接下来是Dokcerfile的其他命令:
COPY:拷贝文件到镜像中
COPY
ADD:比COPY多一些功能,比如说下载,解压缩
CMD:指定容器主进程,默认的主进程是/bin/bash 需要注意的是docker不是虚拟机,中的说有应用都是运行在前台,并不是像虚拟机一样把服务启动在后台,容器并没有后台服务的概念。
CMD service nginx start 这样执行实际效果是 sh -c service nginx start ,这样sh就会被作为主进程,当命令执行完成过后,sh退出,容器就会退出,并不关心辅助线程的状况。
正确的做法是直接执行可执行文件,并要求以前台方式运行,
CMD [ “nginx”,”-g”,”daemon off:”] (使用双引号)
RUN:shell命令或者 可执行程序 有两种执行方式,
shell方式:RUN echo ‘
hello docker!
’ >/usr/share/index.html
exec方式:RUN [可执行程序,“参数1”,“参数2”]这里要注意的是每执行一条命令是创建一个新的容器,在容器可写层执行命令,然后再comit形成新的镜像,删除刚才的容器。在写dockerfile时一定要注意在镜像定制过程中每一层的任务关联性,比如编译和搭建一整个服务时,往往就放在一层镜像中。union FS 最大层数限制是127层。镜像的文件不会在下一层被删除,会一直跟随的整个镜像,因此在构建新的一层镜像最后,需要做的是清理不需要的缓存和文件,比如说apt的缓存文件。
在创建一个简单的镜像前两个命令就够用了,然后我们需要的是在我们机器上构建这个镜像。
docker build [选项] [需要文件的上下文路径]
同时docker支持使用git-repo和下载地址
docker build https://github.com/sky-2016yty/nothing-.git
会自动clone仓库到本地执行Dokcerfile
如果下载地址的内容是压缩包的话会先解压在构建,并且将解压后文件当着上下文。
docker build https:ww.skypointer.cn/test.tar.gz
同样的会使用标准输入流来执行docker build 命令 ,默认会将当前目录作为上下文展开。
cat Dockerfile |docker build 或 docker build -< Dockerfile
接下来是Dokcerfile的其他命令:
COPY:拷贝文件到镜像中
COPY
ADD:比COPY多一些功能,比如说下载,解压缩
CMD:指定容器主进程,默认的主进程是/bin/bash 需要注意的是docker不是虚拟机,中的说有应用都是运行在前台,并不是像虚拟机一样把服务启动在后台,容器并没有后台服务的概念。
CMD service nginx start 这样执行实际效果是 sh -c service nginx start ,这样sh就会被作为主进程,当命令执行完成过后,sh退出,容器就会退出,并不关心辅助线程的状况。
正确的做法是直接执行可执行文件,并要求以前台方式运行,
CMD [ “nginx”,”-g”,”daemon off:”] (使用双引号)
相关文章推荐
- 使用Dockerfile定制LNMP环境镜像
- 使用Dockerfile定制镜像
- Docker 实践 05 使用Dockerfile定制镜像
- 使用.NET FileSystemWatcher对象监控C#目录改变
- javascript Array对象使用小结
- MemoryMappedFile使用小结
- javascript Array对象使用小结
- 在JAVA中使用文档对象模型DOM经验小结[转载]
- 使用.NET FileSystemWatcher对象监控磁盘文件目录的改变
- 进程间通信:使用file-mapping kernel object(文件映射内核对象)
- 使用 AIR 中的 File 对象
- VBA中Dictionary对象使用小结
- Windows下使用脚本语言操作文件系统之五-file对象
- 从零开始学C++之对象的使用(三):static 与单例模式、auto_ptr与单例模式、const 用法小结、mutable修饰符
- 使用.NET FileSystemWatcher对象监控磁盘文件目录的改变
- ASP.NET 2.0之HtmlInputFile控件使用小结
- 使用FileSystemWatcher对象监控目录改变
- JS FileSystemObject 对象使用
- 使用windows服务和.NET FileSystemWatcher对象来监控磁盘文件目录的改变
- 使用Regex实现的为JFileChooser使用的FileFilter对象的创建类