Docker
Swarm使用pipwork网络工具
|
节点 |
系统版本 |
Dokcer版本 |
IP地址 |
|
master |
Centos7.5 1804 |
Docker-ce18.09 |
10.16.10.20 |
|
node01 |
Centos7.5 1804 |
Docker-ce18.09 |
10.16.10.21 |
|
...... |
...... |
...... |
...... |
|
nodeN |
Centos7.5 1804 |
Docker-ce18.09 |
10.16.10.x |
注:以下操作没有特殊说明均在所有节点执行,以master为例
修改主机名
|
[root@localhost ~]# hostnamectl set-hostname master |
修改网卡配置
|
[root@master
~]# cat /etc/sysconfig/network-scripts/ifcfg-enp7s0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp7s0 UUID=b180a47f-8b4e-4f80-ba55-2ab57019af97 DEVICE=enp7s0 ONBOOT=yes IPADDR=10.16.10.20 NETMASK=255.255.255.0 GATEWAY=10.16.10.1 |
关闭防火墙和SeLinux
|
[root@master
~]# systemctl stop firewalld [root@master
~]# systemctl disable firewalld [root@master
~]# sed -i 's/enforcing/disabled/g' /etc/selinux/config [root@master
~]# setenforce 0 [root@master
~]# reboot |
检查SeLinux是否关闭
|
[root@master
~]# getenforce Disabled |
添加DNS地址解析
|
[root@master
~]# vi /etc/resolv.conf nameserver
114.114.114.114 |
添加主机名映射
|
[root@master
~]# vi /etc/hosts 10.16.10.20
master 10.16.10.21
node01 |
安装yum插件
|
[root@master
~]# yum install -y yum-utils |
docker-ce是docker公司维护的开源项目,是一个基于moby项目的免费的容器产品
docker-ee是docker公司维护的闭源产品,是docker公司的商业产品。
添加docekr-ce源
[root@master ~]#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
添加docker-engine源(简称docker-ee)
[root@master ~]# cat >/etc/yum.repos.d/docker.repo <<EOF[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject.org/gpgEOF |
修改内核
|
[root@master
~]# cat <<EOF >/etc/sysctl.conf net.ipv4.ip_forward
= 1 net.ipv4.conf.default.rp_filter
= 0 net.ipv4.conf.all.rp_filter
= 0 EOF [root@master
~]# sysctl -p |
安装docker
|
[root@master
~]# yum install -y docker-ce 或 [root@master
~]# yum install -y docker-engine [root@master
~]# systemctl start docker && systemctl enable docker |
更改docker镜像源
|
[root@master
~]# vi /etc/docker/daemon.json { "registry-mirrors":
["https://docker.mirrors.ustc.edu.cn"] } |
修改docker监听端口调用API
|
[root@master
~]# vi /lib/systemd/system/docker.service 将 ExecStart=/usr/bin/dockerd -H fd://
--containerd=/run/containerd/containerd.sock 修改为 ExecStart=/usr/bin/dockerd -H
tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock [root@master
~]# systemctl daemon-reload [root@master
~]# systemctl restart docker |
拉取swarm镜像
|
[root@master
~]# docker pull swarm |
初始化Swarm集群(master节点执行)
|
[root@master
~]# docker swarm init --advertise-addr
10.16.10.20 Swarm
initialized: current node (svk2fh1hpfprenw69ipnxrg35) is now a manager. To add
a worker to this swarm, run the following command: docker swarm
join --token SWMTKN-1-1xbq3kjccuahxf9aejusdjdbqkxmya2e4n6pfyt2kllzop9cee-4w2ea1x4mlw77lihvjzfjaxky
10.16.10.20:2377 To add
a manager to this swarm, run 'docker swarm join-token manager' and follow the
instructions. |
主节点初始化会返回上面蓝色的token,在node节点执行
|
[root@node01
~]# docker swarm join --token
SWMTKN-1-1xbq3kjccuahxf9aejusdjdbqkxmya2e4n6pfyt2kllzop9cee-4w2ea1x4mlw77lihvjzfjaxky
10.16.10.20:2377 |
验证集群
|
[root@master
~]# docker node list ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION svk2fh1hpfprenw69ipnxrg35
* master Ready Active Leader 18.09.2 h4hqpmqu8fb09kopdy7f7f5th node01 Ready Active 18.09.2 a1pw2ryflfrunc7q1rykpv9ho node02 Ready Active 18.09.2 |
master节点上执行
拉取仓库镜像
|
[root@master
~]# docker pull registry |
运行镜像仓库容器
|
[root@master
~]# docker run -d -p 5000:5000 --restart=always --name registry
registry:latest |
配置仓库地址
|
[root@master
~]# vi /etc/docker/daemon.json { "registry-mirrors":
["https://xxxx.mirror.aliyuncs.com"],
"insecure-registries":["10.16.10.20:5000"] } |
加载并重启docker
|
[root@master
~]# systemctl daemon-reload [root@master
~]# systemctl restart docker |
使用http客户端查看
http://IP:5000/v2/_catalog
以下操作均在