1.安装docker并配置工作目录
安装docker
以17.03版本为例
[root@Ieat4 ~]# curl https://releases.rancher.com/install-docker/17.03.sh | sh
测试安装是否成功
[root@Ieat4 ~]# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
添加"youuser"用户到docker组
[root@Ieat4 ~]# sudo usermod -aG docker youuser
添加之后该用户使用docker命令可以不加sudo
设置docker服务开机启动
[root@Ieat4 ~]# systemctl enable docker.service
设置docker挂载盘
通常安装完之后docker的数据目录都在/var/lib/docker 文件夹下面,一般这个都在我们的系统盘下面,系统盘一般比较小而且一旦重装系统很可能面临数据丢失。所以要docker的工作目录映射到我们的数据盘下面,如下:
映射磁盘到目录
假如要映射到/data目录
如果映射到已有目录就跳过下面步骤
新建/data目录
[root@Ieat4 ~]# mkdir /data
假设我们有一块新磁盘尚未映射,下面查看所有磁盘
[root@Ieat4 ~]# fdisk -l
假设查看到/dev/sdb没有被映射,下面我们映射一下
[root@Ieat4 ~]# mount /dev/sdb /data
如果新磁盘有读写保护:
mount: /dev/sdb 写保护,将以只读方式挂载
mount: 文件系统类型错误、选项错误、/dev/sdb 上有坏超级块、
缺少代码页或助手程序,或其他错误
有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。
我们先格式化
[root@Ieat4 ~]# mkfs.ext4 /dev/sdb
下面是结果
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
244154368 inodes, 1953234944 blocks
97661747 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4102029312
59608 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
接着再挂载
[root@Ieat4 ~]# mount /dev/sdb /data
查看是否挂载成功,发现已经成功,/data目录有7.3T的可用空间
[root@Ieat4 ~]# df -h /data
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb 7.3T 23G 6.9T 1% /data
设置开机自动挂载目录,否则重启主机之后,磁盘未自动挂载导致docker服务运行异常,通过往/etc/fstab中追加一条记录来实现
[root@Ieat4 ~]# echo '/dev/sdb /data ext4 defaults 0 0' >> /etc/fstab
查看一下是否写入成功
[root@Ieat4 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Sep 29 14:00:46 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 1 1
UUID=0a7a28d0-04ad-4ed2-912c-bf31fc53b13d /boot xfs defaults 1 2
/dev/mapper/centos-home /home xfs defaults 1 2
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb /data ext4 defaults 0 0
映射docker工作目录
停止docker服务
[root@Ieat4 ~]# service docker stop
将默认docker工作目录移动到/data下,不要使用cp,移动后/var/lib/docker目录应该不存在了才对
[root@Ieat4 ~]# sudo mv /var/lib/docker /data
结果我们要把docker工作目录放在/data/docker下面
[root@Ieat4 ~]# ls /data/docker
containers image network overlay plugins swarm tmp trust volumes
建立软连接,文件夹后面不要加 “/”,这样/var/lib/docker即为/data/docker的快捷方式,往/var/lib/docker写的话,实际写入了/data/docker目录
[root@Ieat4 ~]# ln -s /data/docker /var/lib/docker
查看软连接是否成功
[root@Ieat4 ~]# ls -la /var/lib/docker
lrwxrwxrwx 1 root root 12 7月 14 17:20 /var/lib/docker -> /data/docker
启动docker
sudo service docker start
查看是否正常工作
[root@Ieat4 ~]# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2.安装rancher-server
注意将所有主机的主机名设置好,一定不要用localhost、127.0.0.1等,以免引起集群网络通讯不通的问题
挑选一台主机192.168.0.101安装,在这里选择rancher-server的1.6版本
[root@Ieat4 ~]# sudo docker run --name rancher-server -d --restart=unless-stopped -p 18180:8080 rancher/server
等待一两分钟后,浏览器访问一下该主机的18180端口,即看到安装成功,进入界面后,按照提示添加主机即可
3.添加主机
比如要添加:192.168.0.106
-
设置rancher-server ip地址,设置为其他主机可以访问的ip
-
点击添加主机
-
选择Custom -> 输入要添加主机的ip -> copy docker 命令
在要添加的主机上运行copy的docker命令
sudo docker run -e CATTLE_AGENT_IP="192.168.0.106" --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.10 http://192.168.0.101:18180/v1/scripts/78D7F7E9398F93E7A5B6:1514678400000:xCO6dhSSWPpVF3bGQXWWVZrvgvE
- 返回主界面即可看到添加成功