基础材料
CentOS7.6 minimal 关闭selinux 关闭swap分区 关闭NetworkManager 关闭firewalld
Docker-ce 18.09.0
安装docker
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[root@localhost ~]# yum install -y docker-ce
安装过程中主要做了以下几件事:
在/usr/bin/下生成docker可执行文件(docker、dockerd、containerd、runc等)
在/usr/lib/systemd/system下生成docker.service服务配置文件、docker.socket接口属性文件、containerd.service服务配置文件
在/etc/group中添加docker用户组
在/etc/containerd/下创建了config.toml文件
在/etc/docker下创建了key.json文件
在/etc/alternatives/下生成dockerd软链接文件(实际上是/usr/bin/dockerd软链接到/etc/alternatives/dockerd,再由/etc/alternatives/dockerd链接回/usr/bin/docker-ce)
[root@localhost ~]# mkdir /docker
[root@localhost ~]# sed -i 's/ExecStart\=\/usr\/bin\/dockerd -H unix:\/\//ExecStart\=\/usr\/bin\/dockerd -H unix:\/\/ --data-root=\/docker --log-level=warn/g' /usr/lib/systemd/system/docker.service
说明:由于docker默认使用的日志等级为info、默认的镜像及其相关信息生成在/var/lib/docker下,所以用以上两条命令将日志等级改为warn、将镜像及其相关信息生成的路径指定到/docker下
[root@localhost ~]# mkdir /etc/docker
[root@localhost ~]# cat>/etc/docker/docker-daemon.json<
"registry-mirrors": ["https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],
"max-concurrent-downloads": 20
}
EOF
说明:由于docker参数--config-file的默认值为/etc/docker/docker-daemon.json,所以我们直接创建并修改registry-mirrors为国内加速站点,并且将最大并发下载数由5提高20
[root@localhost ~]# yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
[root@localhost ~]# modprobe br_netfilter
[root@localhost ~]# modprobe ip_vs
下载相关依赖包并加载br_netfilter和ip_vs模块
[root@localhost ~]# cat>>/etc/sysctl.d/99-sysctl.conf<
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
net.ipv6.conf.all.disable_ipv6=1
EOF
[root@localhost ~]# sysctl -p
修改相应内核参数,并使之生效
[root@localhost ~]# iptables -P FORWARD ACCEPT
[root@localhost ~]# echo '/sbin/iptables -P FORWARD ACCEPT'>>/etc/rc.local
由于Docker默认将iptables的Chain FORWARD设置为drop,我们将其改为accept,允许其转发
[root@localhost ~]# systemctl daemon-reload && systemctl enable docker && systemctl restart docker
[root@localhost ~]# systemctl status docker
启动并查看Docker服务是否正常
[root@localhost ~]# journalctl -u docker
查看docker日志,会有一些关于文件系统的告警,由于centos7下使用的是overlay2存储驱动,其他存储的驱动的告警可以忽略
待docker启动完成后:
1、我们会发现在/docker目录下docker已经创建了一些文件,docker所有的images层及container都在该目录下
2、在/run目录会有相关运行时文件生成,此处docker.sock的属组为docker,如果安装时不创建docker组时,此处属组为root,主要运行时文件都存放在docker文件夹下
3、生成默认的docker0网桥
[root@localhost ~]# docker pull centos
[root@localhost ~]# docker images
[root@localhost ~]# docker run -it -d centos /bin/bash
[root@localhost ~]# docker ps
下载一个centos的image并启动
以上便完成了docker yum的安装,docker默认安装最新版,如果要指定版本,则使用如下命令查找可供下载的版本
[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
选择安装18.03.1.ce的版本执行如下命令
[root@localhost ~]# yum install docker-ce-18.03.1.ce -y
相对于yum安装,官方也提供了安装脚本,执行如下命令也可以完成docker安装
[root@localhost ~]# curl -fsSL 'https://get.docker.com/'|sh
总结
1.docker日志由systemd管理,使用journalctl -u docker查看
2.通过yum安装的docker可执行文件默认生成在/usr/bin下
3.在/usr/lib/systemd/system下生成docker.service服务配置文件
4.修改了日志默认级别info为warn
5.修改了docker的默认存储路径/var/lib/docker为/docker
6.在/etc/docker/docker-daemon.json下添加了国内镜像站
7.安装相关依赖包并加载了内核模块br_netfilter及ip_vs
8.在/etc/sysctl.d/99-sysctl.conf中修改了一些内核参数
9.将iptables的Chain FORWARD改为accept
10.docker启动后在--data-root指定目录下生成基础文件,在/run下生成运行时文件,创建docker0网桥