原理
docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源
支持内核
支持3.8,不过有的特性无法使用。最好使用3.10版本以上。国内生产环境很多都是使用CentOS,所以一般使用CentOS7即可
查看内核版本:
uname -r
系统准备:
- 阿里云镜像站上面可以找到docker-ce的软件源,使用国内的源速度比较快;
- 内核,我这里使用:3.10.0-327.el7.x86_64 ;
- 安装依赖;
yum install -y yum-utils device-mapper-persistent-data lvm2
yum makecache fastyum -y - 添加软件源;
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
这里可能会报错类似这类错误
File “/usr/bin/yum-config-manager”, line 135
except yum.Errors.RepoError, e:
^
SyntaxError: invalid syntax
这里你需要修改该文件/usr/bin/yum-config-manager 我这里安装的python3.6,所有引用都是3.6,也就是说yum无法使用,vi打开文本后需要将python改为python2,在执行可通过。
- 删除缓存数据
yum clean all
安装
yum -y install docker-ce
启动方式
service docker start#启动docker
service docker stop#停止docker
service docker restart#重启docker
检验
docker version
类似显示为:
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:25:41 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:24:18 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
***这说明安装成功***
设置开机自启
systemctl enable docker
填写命令
docker info
会有如下错误:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release.
WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
***解决前两个***
vi /etc/sysctl.conf
1.添加两行
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
2.后面的是警告信息
docker daemon启动参数加入 DOCKER_STORAGE_OPTIONS="--storage-opt dm.no_warn_on_loop_devices=true"来规避警告