常识
docker:开源的应用容器引擎,基于 Go 语言,遵从 Apache2.0 开源协议
- 特点:用于打包应用及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可实现弹塑性力学化。
- 容器性能开销极底
- 分为:
- CE:Community Edition:社区版
- EE:Enterprise Editioin:企业版
- 用途:快速交付、测试和部署代 dccg
- web 应用自动化打包与发布
- 自动化测试和持续集成、发布
- 在服务型环境中部署和调整数据库或其他后台应用
- 从头编译或扩展现有 OpenShift 或 CloudFoundry 平台来搭建自己的 PaaS 环境。
名词解释
Dockerfile:用来构建镜像的文本文件,包含了相关指令与说明
镜像:Image:相当于一个 root 文件系统,是一个包含有文件系统的面向 Docker 引擎的只读模板。镜像是一个模板,装了一些系统的配置文件,我们可以通过镜像建立更多的容器,容器从镜像启动时,Docker 在镜像的上层创建一个可写层,镜像本身不变。
容器:Container:容器是基于镜像创建, 相互隔离的, 可以理解为小型虚拟机,真正的执行单元。
- 镜像与容器,可以看作类与实例,镜像是静态的定义,容器是镜像运行时的实体,容器可以被创建、启动、停止、删除、暂停等。
- Docker 容器通过 Docker 镜像来创建。
仓库:Repository:可看成一个代码控制中心,用来存放镜像
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用 tag 进行区分.
Docker Hub是 Docker 公司提供的一个注册服务器(Register)来保存多个仓库<仓库名>:<标签>:来指定具体是某软件某版本的镜像,默认使用 latest 作为标签
Docker Machine:一个简化 Docker 安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装 Docker,如 VirtualBox、Microsoft Azure。
安装
1 | sudo pacman -S docker |
信息查看
1 | 查看可用命令 |
基本操作
1 | 获取镜像 |
创建镜像
Dockerfile文件(无后缀)
1 | 选择一个镜像作为基础 |
1 | docker build -t="zjeff/centos:gitdir" . |
容器操作
1 | docker run ubuntu:15.10 /bin/echo "Hello World" |
