Linux容器及Docker安装-01

1、Linux容器

在讲到Docker以前,咱们先来说讲什么是Linux容器,咱们称为Linux concatiner,简称为LXC,LXC容器是一种内核虚拟化的技术,能够将用户空间的资源进行隔离,由Linux Namespace实现(名称空间),Nampspace将如下6个资源进行了隔离从而到达容器技术的实现。
(1) UTS namespace UTS(“UNIX Time-sharing System”) namespace容许每一个container拥有独立的hostname和domain name----->2.6.19内核加入特 性
(2) IPC namespace container中进程交互仍是采用linux常见的进程间交互方法(interprocess communication - IPC)----->2.6.19内核加入特性
(3) PID namespace 每一个namespace中的pid是有本身的pid=1的进程(相似/sbin/init进程) 每一个namespace中的进程只能影响本身的同一个namespace或子namespace中的进程等----->2.6.24内核加入特性
(4) NET namespace 每一个net namespace有独立的 network devices, IP addresses, IP routing tables, /proc/net 目录。这样每一个container的网络就能隔离开来----->2.6.29内核加入特性
(5) MNT namespace 相似chroot,将一个进程放到一个特定的目录执行。mnt namespace容许不一样namespace的进程看到的文件结构不一样,这样每一个 namespace 中的进程所看到的文件目录就被隔离开了。同chroot不一样,每一个namespace中的container在/proc/mounts的信息只包含所在namespace的mount point----->2.4.19内核加入特性
(6) USER namespace 每一个container能够有不一样的 user 和 group id, 也就是说能够以container内部的用户在container内部执行程序而非Host上的用户----->3.8内核加入特性
有了以上6种namespace从进程、网络、IPC、文件系统、UTS和用户角度的隔离,一个container就能够对外展示出一个独立计算机的能力,而且不一样container从OS层面实现了隔离。 然而不一样namespace之间资源仍是相互竞争的,仍然须要相似ulimit来管理每一个container所能使用的资源 - LXC 采用的是cgroup,LXC相似于容器的前端工具可是LXC用起来并非很好用,因此就有了Dokcer,Docker在LXC的基础上更进了一步,使得在容器的前端工具上使用起来至关的容易。前端

2、Docker的基础架构

Linux容器及Docker安装-01

Client: docker的命令行,可使用docker命令管理镜像和容器,docker命令只能本地使用
Docker_Host: 启动docker daemon后的主机,docker是C/S架构
Images: 镜像,docker启动容器离不开镜像,镜像须要使用docker命令从Registry拉取
Containers: docker启动的多个容器,每个容器只启动一个应用,例如Nginx
Registry: docker镜像的公共仓库,使用docker须要连上互联网,除非是自建私有仓库linux

3、安装Docker

内核 系统 版本
3.8以上 CentOS7 Docker-ce

内核必须在3.8以上
建议使用CentOS7,64位操做系统
若是在CentOS6上使用docker,须要升级内核到3.10
docker目前有两个版本docker-ee(企业版须要收费),docker-ce(社区版免费),这里咱们下载使用docker-cedocker

(1)从阿里云镜像站下载docker的repo文件以及EPEL的repo 
    [root@elk_134 ~]# wget -O /etc/yum.repos.d/docker.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    [root@elk_134 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

(2)安装docker-ce社区版,我这里安装的是docker-18.06的版本
    [root@elk_134 ~]# yum install docker-ce -y

(3)建立docker的配置文件,默认状况下docker的配置文件不存在,而且加入阿里云的镜像站加速
    [root@elk_134 ~]# mkdir /etc/docker/
    [root@elk_134 ~]# vim /etc/docker/daemon.json
        { "registry-mirrors": ["https://j3kuccxh.mirror.aliyuncs.com"]  }

(4)启动docker,启动docker以前先关闭ffirewalld和selinux
    [root@elk_134 ~]# systemctl stop firewalld
    [root@elk_134 ~]# setenforce 0
    [root@elk_134 ~]# systemctl start docker

(5)使用docker命令验证docker是否启动成功   
    [root@elk_134 ~]# docker version
    Client:
    Version:           18.06.1-ce
    API version:       1.38
    Go version:        go1.10.3
    Git commit:        e68fc7a
    Built:             Tue Aug 21 17:23:03 2018
    OS/Arch:           linux/amd64
    Experimental:      false
    Server:
    Engine:
    Version:          18.06.1-ce
    API version:      1.38 (minimum version 1.12)
    Go version:       go1.10.3
    Git commit:       e68fc7a
    Built:            Tue Aug 21 17:25:29 2018
    OS/Arch:          linux/amd64
    Experimental:     false

一步一步来!!!!!!!!!!!!!!!!!!!!!!
其实很简单哒!!!!!!!!!!!!!!!!!!!!!json

相关文章
相关标签/搜索