Linux容器及Docker安装-01

一、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的基础上更进了一步,使得在容器的前端工具上使用起来相当的容易。

二、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需要连上互联网,除非是自建私有仓库

三、安装Docker

内核系统版本
3.8以上CentOS7Docker-ce

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

(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

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

转载于:https://blog.51cto.com/10869205/2404538

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值