Oracle 系统管理 - Linux 系统 - Backtrack 5 - 安全 - Juniper 技术 - Cisco 技术 - 思科模拟器 - Cisco 认证 - Cisco ios 下载

您现在的位置是:Docker > Docker > Docker CentOS7安装Docker Swarm 集群及常用操作命令

Docker CentOS7安装Docker Swarm 集群及常用操作命令

时间:2018-06-13 16:28  来源:未知  阅读次数: 复制分享 我要评论

一、安装VMware

版本:VMware-workstation-full-12.0.0-2985596

二、安装CentOS

版本:CentOS-7-x86_64-Everything-1611

安装四个CentOS,1个manager结点,3个worker结点。

各个CentOS服务器信息如下:

VMware安装CentOS服务器信息:

manager     zy   192.168.152.130      (manager节点)

worker1 zy 192.168.152.131

worker2 zy       192.168.152.132

worker3 zy 192.168.152.133

通过ping  ip地址,各个服务器之间可以互通

三、每台CentOS服务器安装Docker

1.    用root用户登录,确保有root权限

2.    保证yum包是最新的:sudo yum update

3.    通过yum命令安装:

yum install docker   或   sudo yum install docker-engine

docker version

4.    启动docker服务

安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

1)    [root@localhost ~]# service docker start

2)    [root@localhost ~]# chkconfig docker on

5.    安装Docker-compose利用pip方式进行安装

1)     安装pip

虽然很简单,还是有URL确认,x权限设定等需要做,如果使用pip进行安装虽然看似绕远,实质上也是绕远,安装来一看吧。CentOS上需要先行安装yum的一个额外的包,这个包里面才有python-pip,缺省的没有。

[root@ localhost ~]# yum -y install epel-release

[root@ localhost ~]# yum -y install python-pip

2)    确认版本

[root@ localhost ~]# pip --version

pip 7.1.0 from/usr/lib/python2.7/site-packages (python 2.7)

3)     安装docker-compose

[root@ localhost~]# pip install docker-compose

6.   安装Docker-machine:参考https://docs.docker.com/machine/install-machine/

curl-L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m`>/usr/local/bin/docker-machine && \

  chmod +x /usr/local/bin/docker-machine
或者curl -L https://github.com/docker/machine/releases/download/v0.8.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && \
chmod +x /usr/local/bin/docker-machine(可安装)

查看版本:    docker-mahine version

7.    卸载docker

开启docker deamon: $ sudo servicedocker start

设置开机自启:sudo chkconfig docker on

卸载安装包 :列出安装过的包

yum list installed | grep docker

删除安装包:$ sudo yum -y remove docker-engine.x86_64
删除镜像/容器等:$ rm -rf /var/lib/docker

8.    判断是否安装了openssh-server

参考:https://my.oschina.net/laiconglin/blog/675317

1)     dpkg  -l | grep openssh-server

2)     安装openssh-server:yum install -y openssl openssh-server
3)     修改配置文件:vim /etc/ssh/sshd_config
4)     启动ssh服务

          systemctl start sshd.service

          systemctl enable sshd.service(开机自启)

5)     设置权限

$ cd ~

$ chmod 700 .ssh                                                                                               

$ chmod 600.ssh/*                                                                                             

$ ls -la .ssh

四、swarm集群创建

参考:http://www.linuxidc.com/Linux/2017-03/142151.htm

1.  初始化swarm,在manager(或leader)机器上执行swarm init命令(添加运行截图)

manager的IP地址:192.168.152.130

       方法一:$ sudo docker swarminit(不可行)

       方法二:$docker swarm init --advertise-addr 192.168.152.130

运行得到以下内容:

Swarm initialized: current node (n3n78v9dzqlntgrzktwteb8p6) is now amanager.

To add a worker to this swarm, run the following command:

docker swarm join \

    --tokenSWMTKN-1-0038kiadp6vm1xrhxjgnao61a04s1m2st0g4p003xv34qn5g27-6ernode3urc6fcwrsamnkhdty\

192.168.152.130:2377

在这个命令的返回值部分,给出了其他机器作为work加入这个网络的指令(蓝色部分),只要拷贝这个指令在其他机器上执行就行了。 

在swarm init的命令里有很多参数,你可以通过--advertise-addr  或者--listen-addr更改通告地址端口和侦听地址端口。默认是0.0.0.0:2377, 建议不要更改,我使用版本1.13.1更改之后,就有BUG。

2.将其他机器加入swarm集群

其他机器的IP地址:192.168.152.131,192.168.152.132,192.168.152.133

在以上机器上运行以下命令:

$docker swarm join \

    --tokenSWMTKN-1-0038kiadp6vm1xrhxjgnao61a04s1m2st0g4p003xv34qn5g27-6ernode3urc6fcwrsamnkhdty\

    192.168.152.130:2377

This node joined a swarm as a worker.

遇到问题:

(1)”Cannotconnect to the Docker daemon. Is the docker daemon running on this host?”

重新启动docker

(2)”Errorresponse from daemon: Timeout was reached before node was joined. The attemptto join the swarm will continue in the background. Use the "dockerinfo" command to see the current swarm status of your node.”

将manager和worker节点的防火墙关闭在执行join操作,关闭命令:iptables -F

(3)”Errorresponse from daemon: This node is already part of a swarm. Use "dockerswarm leave" to leave this swarm and join another one.”

执行命令:docker swarm leave

3.manage查看swarm结点

$ docker node ls

 

 

 

4.以上集群的连接建立好之后,通过docker info检查:

       $ sudo docker info 

Swarm: active
 NodeID: n3n78v9dzqlntgrzktwteb8p6
 Is Manager: true
 ClusterID: sviwh8dsfuqcchmqatt7hll8f
 Managers: 1
 Nodes: 2

能看到manager机器一台,node机器2台(本机即是manager机又是node机)

5.使结点离开swarm集群

$ docker swarm leave

Node left the swarm.

五、Docker hub镜像的上传和下载

1、手动上传image到docker hub上以及下载镜像:docker hub的账户名称:zyhub

参考:http://blog.csdn.net/lianghailun/article/details/71172717(windows上测试可用)

(1)  首先查看镜像文件:docker images

(2)  下载hello-world做演示:docker run hello-world

(3)  本地登录到docker hubdocker login

(4)  把Repository、tag分别修改成自己的namespace下仓库的名字、tag名。修改后可以发现,其<IMAGE_ID>是一样的,只是REPOSITORY及TAG名字不同。

dockertag docker.io/hello-world  zyhub/test:hello-world

docker tag nlknguyen/mpi:latest docker.io/zyhub/mpi:latest

docker tagdocker.io/nlknguyen/alpine-mpich:onbuild docker.io/zyhub/alpine-mpich:onbuild

 

(5)   上传至docker hub上:

dockerpush zyhub/test:hello-world

docker pushdocker.io/zyhub/alpine-mpich:onbuild

上传成功后可在docker hub的镜像仓库中的tags看到

(6)   下载镜像

a.      先将本地镜像删除 :docker rmi 账户名/repos名:镜像tag名称(即Repository:tag)  

例:docker rmi zyhub/test:hello-world

 

b.     删除后查看本地镜像:docker images

c.      下载镜像:docker pull hub的账户名/repos名:镜像tag名称:latest

docker pull zyhub/test:hello-world

d.     下载后再次查看镜像:docker images

六、常用的Docker Swarm命令总结

       启动docker服务:service docker start

      删除节点:docker noderm  node9 docker node rm --forcenode9

       Docker Swarm节点检查:sudo docker info

       查看Swarm节点信息:docker node ls

   

七、问题:在重启docker时需要离开Swarm吗?

暂时先离开swarm,在重启docker,最终重新加入swarm

$ dockerswarm leave

$ sudoservice docker start

$docker swarm join \

    --tokenSWMTKN-1-0038kiadp6vm1xrhxjgnao61a04s1m2st0g4p003xv34qn5g27-6ernode3urc6fcwrsamnkhdty\

    192.168.152.130:2377

相关资讯