关于IT运维技术的
最佳实践博客网站

快速理解docker的基本概念

参考:

  • http://blog.csdn.net/colorant/article/details/20608157
  • http://dockerpool.com/static/books/docker_practice/index.html

基本概念

Docker 包括三个基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

理解了这三个概念,就理解了 Docker 的整个生命周期。

Docker 镜像

Docker 镜像就是一个只读的模板。

例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

镜像可以用来创建 Docker 容器。

Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

Docker 容器

Docker 利用容器来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

*注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

Docker 仓库

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问。

当然,用户也可以在本地网络内创建一个私有仓库。

当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

*注:Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。

各主流系统Docker安装

Ubuntu 系列安装 Docker

#要安装最新的 Docker 版本,首先需要安装 apt-transport-https 支持,之后通过添加源来安装。
sudo apt-get install apt-transport-https
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
#安装之后启动 Docker 服务。
sudo service docker start

 CentOS 系列安装 Docker

//CentOS6
#对于 CentOS6,可以使用 EPEL 库安装 Docker,命令如下
$ sudo yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
$ sudo yum install docker-io
//CentOS7
#CentOS7 系统 CentOS-Extras 库中已带 Docker,可以直接安装:
$ sudo yum install docker

MAC OSX安装 Docker

参考文档:

  • 官方文档:http://docs.docker.com/installation/mac
  • 理解文档:http://tech.uc.cn/?p=2726(强烈推荐)

Docker它依赖于 LXC(Linux Container),因为它的底层核心是个 LXC,由于LXC本身不支持Mac内核,所以在 Mac OS X 下需要在 VirtualBox 中跑一个精小的 LXC,docker 的 daemon运行在 default 虚拟机中,(这里是一个 Tiny Core Linux,完全在内存中运行,个头只约 24MB,启动时间小于 5 秒的 default 虚拟机)构建在 VirtualBox 中。

mac_docker_host

现在新的版本中在MAC OSX中安装非常简单,直接下载:https://www.docker.com/toolbox 下一步下一步的进行。

官方建议使用 Docker Toolbox 安装 docker 后会有一些工具:

  • docker-machine 创建和管理在机器上运行 docker,在 mac 上管理 LXC。
  • docker 运行和管理容器的工具。
  • docker-compose 定义并且运行多容器应用
  • Kitematic图形化管理docker
  • 自动为shell 配置 Docker命令行环境变量
  • 会安装Oracle VM VirtualBox

mac 上基本使用

1、初次安装完成后,会自动装好一个 default 虚拟机,它用于运行LXC。mac 上的docker都运行与此,在进入docker 镜像、容器、仓库的之前,必须先保证 这个LXC是运行的状态。
//default是默认的docker运行所在的机器
#查看有哪些docker machine
docker-machine ls
#查看运行了哪些 docker machine
docker-machine active
#查看 docker machine 的配置
docker-machine config default
#登陆 docker machine 
docker-machine ssh default
#查看环境变量 
docker-machine env default
2、开始使用docker的方法:

第一种:Docker Quickstart Terminal 使用默认自带命令行工具。

第二种:使用自己的shell终端进入。

☁  ~  docker images
Get http:///var/run/docker.sock/v1.20/images/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

打开系统自带的终端运行 一系列 docker 命令都会提示如上信息。

因此需要查看docker运行所在的LXC信息是什么

☁  ~  docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/nibuw/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"

运行最后一行是保证shell能运行docker命令环境变量的条件:

eval "$(docker-machine env default)"

其它一些docker操作管理参考:http://dockerpool.com/static/books/docker_practice/image/README.html

赞(0)
未经允许不得转载:菜鸟HOW站长 » 快速理解docker的基本概念

留下你的脚印

  Subscribe  
提醒