Docker是基于Linux内置的Namespace和CGroup等系统内隔离机制而抽象出来的一种轻虚拟化技术。与虚拟机相比,它以一种轻量级的方式实现了运行空间的隔离。不难理解,Docker并不能基于一种内核(Linux)提供另一种内核(Windows)的虚拟化运行环境。所以,基于Linux的Docker是不支持运行Windows应用的,Docker只能在Linux环境下安装(可选择在宿主机安装,也可以选择在虚拟机安装)。
一、环境准备
关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
说明:
- docker后不要再随意清楚防火墙规则,docker有些场景需要用到iptables相关规则
- Linux宿主机更不要清楚nat表规则,因为kvm虚拟机的nat网络要用到nat规则上外网
关闭SELinux
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
二、配置yum源
docker的软件安装需要配置docker专属的yum源;
阿里云镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
可根据步骤进行安装配置
也可以将docker源的配置文件下载到本地
[root@localhost ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
三、docker安装
安装命令
[root@localhost ~]# yum install docker-ce -y
Docker服务启动时会首先在主机上创建一个docker0的虚拟网桥,实际上是一个Linux网桥。网桥可以理解为一个软件交换机,负责挂载其上的接口之间进行包转发。同时,Docker随机分配一个本地未占用的私有网段中的一个地址给docker0接口。常用172.17.0.1/255.255.0.0。此后启动的容器内的网口也会自动分配一个该网段的地址。
当创建一个docker容器时,同时会创建一对veth pair互联接口。当向任意一个接口发包时,另外一个接口自动收到相同的包。互联接口的一端位于容器内,即eth0;另一端在本地并被挂载到docker0网桥,也以veth开头。通过这种方式,主机可以与容器通信,容器之间也可以互相通信。如此一来,docker就创建了在主机和所有容器之间一个虚拟共享网络。
每次创建一个新容器的时候,docker从可以用的地址网段中选择一个空闲的IP地址分配给容器的eth0端口,并且使用本地主机上docker0接口IP地址作为容器的默认网关。docker默认使用的是Linux自带的网桥实现,可以替换为功能更强大的OpenVSwitch虚拟交换机实现。