Docker ?
Docker 是一个
开源的应用容器引擎
,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化
一个完整的Docker:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker三要素
- 镜像
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 - 容器
容器可以被创建、启动、停止、删除、暂停等。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。
Docker | 面向对象 |
---|---|
镜像 | 类 |
容器 | 对象 |
镜像是静态的定义,容器是镜像运行时的实体。
- 仓库
镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。
Docker在Mac下的安装
- 安装homebrew(先安装homebrew,后通过homebrew来安装docker)
$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- homebrew安装成功
- 使用homebrew安装Docker
- 安装成功后启动,状态栏出现小鲸鱼图标
- Docker加速器
使用 Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用 Docker 的体验。因此 DaoCloud 推出了加速器工具解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度。
- 国内较快的镜像地址
- Docker 官方中国区
https://registry.docker-cn.com - 网易
http://hub-mirror.c.163.com - ustc
https://docker.mirrors.ustc.edu.cn
- Docker 官方中国区
- 查看配置是否成功
Docker的使用
- 查看Docker安装版本
- 列出本地镜像
- 普通启动的容器
docker
: Docker 的二进制执行文件。
run
:与前面的 docker 组合来运行一个容器。
ubuntu:15.10
指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo "Hello world"
: 在启动的容器里执行的命令 - 运行交互式的容器
-t
:在新容器内指定一个伪终端或终端。
-i
:允许你对容器内的标准输入 (STDIN) 进行交互。
此时我们已进入一个 ubuntu15.10系统的容器
cat /proc/version
:查看当前系统的版本信息
ls
:查看当前目录下的文件列表
通过运行exit
命令或者使用CTRL+D
来退出容器。