读书连接:https://yeasy.gitbooks.io/docker_practice/

Docker简介

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。

Docker 技术比虚拟机技术更为轻便、快捷。

Docker学习笔记1

Docker学习笔记2

基本概念

镜像 Image

Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

分层存储的架构,镜像构建时,会一层层构建,前一层是后一层的基础(类似Vmware的snapshot)。

容器 Container

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。

容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。

仓库 Registry

镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。

一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

类似Maven仓库以及其中打好的jar包。可以直接用别人提供的仓库,也可以自己搭建。

下载安装

直接去官网下载对应版本的安装包即可。或者通过apt-get、brew等版本管理工具获取。

安装完成后,terminal中即可使用docker系列命令。

启动容器

在系统图形界面打开Docker的App之后,才可以使用Docker后续功能。

1
2
3
4
docker --version #查看版本
docker run -d -p 80:80 --name webserver nginx #运行一个nginx服务器的容器做测试(此时可以浏览器打开localhost的80端口测试)
docker stop webserver #停止容器
docker rm webserver #删除容器

EOF