docker系列之file基本操作
dockerfile基础操作
Dockerfile 是记录了镜像是如何被构建出来的配置文件, 可以被 docker 直接执行以创建一个镜像. 它的样子:
FROM ubuntu:14.04
MAINTAINER YS.Zou <> ADD run /root/run
ADD sources.list /etc/apt/sources.list
ADD id_rsa.pub /tmp/pubkey
ADD requirements /root/requirements RUN mkdir -p /root/.ssh && \
cat /tmp/pubkey >> /root/.ssh/authorized_keys && \
rm -rf /tmp/pubkey
... CMD ["bash", "/root/run"]
把文件命名为 Dockerfile , 进入文件所在目录, 输入:
docker build .
就可以开始构建过程, 并且得到一个新的镜像了.
Dockerfile 支持一些很简单的命令:
- FROM
- 以哪个镜像为基础开始构建.
- MAINTAINER
- 作者信息.
- RUN
- 运行一条命令.
- CMD
- docker run IMAGE_ID cmd这里的默认命令.
- ENTRYPOINT
- docker run IMAGE_ID cmd这里的默认命令的前面部分,- run中- cmd可以作为后续参数.
- EXPOSE
- 声明会用到的端口.
- ENV
- 设置环境变量
- ADD
- 从当前目录复制文件到容器. 会自动处理目录, 压缩包等情况.
- COPY
- 从当前目录复制文件到容器. 只是单纯地复制文件.
- VOLUME
- 声明一个数据卷, 可用于挂载.
- USER
- RUN 命令执行时的用户.
- WORKDIR
- RUN, CMD, ENTRYPOINT 这些命令执行时的当前目录.
- ONBUILD
- 前缀命令, 放在上面这些命令前面, 表示生成的镜像再次作为"基础镜像"被用于构建时, 要执行的命令.
build 的过程, 会依次执行上面的命令, 实际上, docker 做的事, 也就是从基础镜像启一个容器, 然后执行一条命令, 修改之后提交此容器为新镜像. 以此类推, 直到所有命令都执行完. 所以在得到最终构建的镜像时, 会生成很多"中间镜像". 而如果 Dockerfile 中某条命令有错, 也是在当前中止, 过程中的"中间镜像"及"当前构建用的容器"仍然存在的.
docker系列之file基本操作的更多相关文章
- Docker 容器基本操作[Docker 系列-2]
		Docker 入门及安装[Docker 系列-1] 镜像就像是一个安装程序,而容器则是程序运行时的一个状态. 查看容器 查看容器 启动 docker 后,使用 docker ps 命令可以查看当前正 ... 
- Docker系列-(1) 原理与基本操作
		Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器 ... 
- Docker系列-(3) Docker-compose使用与负载均衡
		上一篇文章介绍了docker镜像的制作与发布,本文主要介绍实际docker工程部署中经常用到的docker-compose工具,以及docker的网络配置和负载均衡. Docker-compose介绍 ... 
- 8天入门docker系列 —— 第一天 docker出现前的困惑和简单介绍
		docker出来也有很多年了,但用到的公司其实并不是很多,docker对传统开发是一个革命性的,几乎颠覆了之前我们传统的开发方法和部署模式,而大多 公司保守起见或不到万不得已基本上不会去变更现有模式. ... 
- Docker系列10—容器编排工具Docker Compose详解
		本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ... 
- TortoiseGit学习系列之TortoiseGit基本操作拉取项目(图文详解)
		前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseG ... 
- Docker 容器高级操作[Docker 系列-3]
		关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. 上篇文章向读者介绍了一个 Nginx 的例子,对于 Nginx 这样一个容器而言,当它启动成功后,我们 ... 
- Docker系列-(2) 镜像制作与发布
		上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图 ... 
- Docker系列——Grafana+Prometheus+Node-exporter钉钉推送(四)
		近期搭建的服务器监控平台,来进行一个总结.主要分为监控平台的搭建.告警中心的配置以及消息的推送.推送的话,支持多种终端.具体详细可查看之前的博文,在这里罗列下,方便查看. Docker系列--Graf ... 
随机推荐
- get 和 post 请求的区别(转)
			转自 http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html http://www.nowamagic.net/librarys/ve ... 
- Python入门小练习
			Python入门小练习 001 备份文件 Python入门小练习 002 批量下载网页链接中的图片 Python入门小练习 003 利用cookielib模拟登录获取账户信息 
- python入门之集合set
			集合(无序不重复) 创建 s = {} s = set() 转换 s = set(li) 方法 s.add("chy") #添加元素 s.clear() #清除元素 a = s.d ... 
- 083 Remove Duplicates from Sorted List 有序链表中删除重复的结点
			给定一个排序链表,删除所有重复的元素使得每个元素只留下一个.案例:给定 1->1->2,返回 1->2给定 1->1->2->3->3,返回 1->2- ... 
- code与const void*指针
			关于指针: 当定义int *p时,它也会在内存中给指针变量p分配一个内存单元,假设这个单元在内存的编址为0x1003:此时,0x1003中的值是不确定的,(因为我们没有给指针赋值),当编译器遇到了p= ... 
- windows 服务器开设端口
			主要用于服务器建设网站的时候开设端口 依次点击“开始”—“控制面板”—“windows防火墙” 2 先点击“打开或关闭windows防火墙”将windows防火墙打开 3 点击“高级设置” 4 设置入 ... 
- Java基础之面向对象
			面向对象 1.面向对象思想: (1)概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对象,强调具备功能的对象: (2)思想特点: ... 
- silverlight GPS监控,视频监控界面
			周末闲着自己做了个玩玩 
- Handler消息机制的一些原理(直接用code讲解)——Android开发
			package com.example.handlertest; import android.os.Bundle; import android.os.Handler; import android ... 
- 项目在cocos 2.23移植到cocos 3.1.0所出现的bug
			在建项目时一定要注意选择源代码!而不是预编译库 "extensions/ExtensionMacros.h”: No such file 项目右键-属性-配置属性-c/c++ - 常规-附加 ... 
