为什么是Docker?

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker解决了什么问题
- 快速交付和部署(镜像与容器)
- 资源的高效利用和隔离(高密度部署)
- 轻松的迁移和扩展(一次封装,到处运行)

Docker使用步骤
- 安装Docker(安装应用商店)
- 寻找/下载镜像(寻找/下载app)
- 启动容器(启动应用)
- 移植(别的手机安装应用商店,继续以前流程)
容器化对比虚拟机
对比属性 | Container | VM |
---|
隔离性 | 基于进程隔离 | 提供资源的完全隔离 |
启动时间 | 秒级 | 分钟级 |
内核 | 共用宿主机内核 | 使用独立内核 |
占用资源 | MB级 | GB级 |
系统支持容量 | 单机支持上千个容器 | 一般几十个 |
核心概念

Docker 镜像
Docker镜像类似于虚拟机镜像,可以将他理解为一个只读的模板。
Docker 容器
Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建来的。容器可以启动、停止、删除,容器之间彼此隔离,互不可见。
可以把容器看做是一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子
Docker 仓库
Docker仓库是存储镜像的仓库。可以有Public(公有仓库)和Private(私有仓库)。最大的公有仓库是Docker Hub
安装启动
阿里云安装
yum install docker
systemctl enable docker
systemctl start docker
docker -v
docker info
标准方式安装
#移除旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#安装Docker其他依赖
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
#设置Docker yum源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#安装Docker CE
yum install -y docker-ce docker-ce-cli containerd.io
#安装指定版本的Docker
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
#启动Docker
systemctl enable docker
systemctl start docker