欢迎光临范阳布衣的运维博客
分享工作和学习中的知识、技术

docker-安装

docker安装

Docker是什么
Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器。 Docker早起版本实现是基于LXC,并进一步对其封装,包括文件系统、网络互联、镜像管理等方面,极大简化了容器管理。从0.7版本以后开始去除LXC,转为自行研发的libcontainer,从1.11版本开始,进一步演进为使用runC和containerd。 Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序,程序之间相互隔离。

Docker是什么

Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器。 Docker早起版本实现是基于LXC,并进一步对其封装,包括文件系统、网络互联、镜像管理等方面,极大简化了容器管理。从0.7版本以后开始去除LXC,转为自行研发的libcontainer,从1.11版本开始,进一步演进为使用runC和containerd。 Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序,程序之间相互隔离。

Docker体系结构


Containerd:是一个简单的守护进程,使用runC管理容器。向Docker Engine提供接口。
Shim:只负责管理一个容器。
runC:是一个轻量级的工具,只用来运行容器。

内部组件

Ø  Namespaces
命名空间,Linux内核提供的一种对进程资源隔离的机制,例如进程、网络、挂载点等资源。
Ø  CGroups
控制组,Linux内核提供的一种限制进程资源的机制;例如CPU、内存等资源。
Ø  UnionFS
联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型。

虚拟机与容器区别

4.1 以KVM举例,与Docker对比

Ø  启动时间
Docker秒级启动,KVM分钟级启动。

Ø  轻量级
容器镜像大小通常以M为单位,虚拟机以G为单位。

容器资源占用小,要比虚拟机部署更快速。

Ø  性能
容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,容器性能基本接近物理机;
虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,虚拟化开销大,因而降低性能,没有容器性能好。

Ø  安全性
由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,容器具有一定权限访问宿主机内核,存在一定安全隐患。

Ø  使用要求
KVM基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持;

容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。

Docker应用场景

场景一:节省项目环境部署时间

单项目打包
整套项目打包
新开源技术试用
场景二:环境一致性

场景三:持续集成

场景四:微服务

场景五:弹性伸缩

 

Linux安装Docker

版本区分 在2017年5月份左右开始划分版本

Docker EE企业版本
Docker CE开发版本
官方安装文档:
https://docs.docker.com/engine/installation/linux/docker-ce/centos/#docker-ee-customers

CentOS7安装docker

安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

添加Docker软件包源

yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

更新yum包索引

yum makecache fast

安装Docker CE

yum install docker-ce

启动

systemctl start docker
systemcet enable docker

卸载

yum remove docker-ce 
rm -rf /var/lib/docker

查看docker版本

docker info
安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# yum -y install docker-ce-17.12.0.ce-1.el7.centos

Ubuntu14.06/16.04

安装证书

sudo apt-get install \
apt-transport-https \
a-certificates \
curl \
software-properties-common

添加Docker源的KEY

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加Docker软件包源

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

更新apt包索引

sudo apt-get update

安装

sudo apt-get install docker-ce

卸载

sudo apt-get purge docker-ce
sudo rm -rf /var/lib/docker
未经允许不得转载:范阳布衣 » docker-安装