一、环境
(1)虚拟机使用VMware Workstation 14 player
(2)wubantu系统16.4版本
二、问题
当我第一次拉取shipyard相关镜像,然后构建容器后,打开shipyard显示了本地安装的镜像,然后下一次打开,就显示不出来了。后来认为wubantu的ip因为网络变化改了,与构建shipyard时的ip不一致,导致其打开后无法显示。
三、设置wubantu静态ip
修改wubantu的ip,为其设置为静态ip,这样更换网络后,wubantu的ip也不会变化了,在这个也发现了许多的坑,查阅了许多才解决。
1、在root权限下输入下面命令:
vi /etc/network/interfaces
2、输入如下内容:
3、上面内容不同机器是不一样的,不然xshell会连接不上,或者ping不成功等问题。
(1)ens33需要在虚拟机上输入ifconfig查看的,有的可能是ens0等等。
(2)gateway的地址不能随便输入,需要查询宿主机,在命令行输入ipconfig,看这个Vmnet8的地址
(3)address的地址是静态ip地址,与gateway前三位一致,最后一位随便设置,与ipconfig中显示的以太网适配器不一致就可以了。
(4)dns-nameservers这一项必须有,地址可以选择合适的公共DNS
4、做如下虚拟机设置
5、重启服务
(1)要是wubantu桌面版还需要重启虚拟机
sudo /etc/init.d/networking restart
6、这样静态ip就设置好了。
四、操作shipyard
1、在没有修改wubantu为静态ip之前,我是这样安装shipyard和构建的
(1)拉取Shipyard相关镜像,下面代码在虚拟机里一行一行执行。
docker pull shipyard/shipyard
docker pull swarm
docker pull shipyard/docker-proxy
docker pull alpine
docker pull microbox/etcd
docker pull rethinkdb
(2)构建Shipyard容器,第四个命令和第五个命令中的192.168.137.100是在虚拟机中查询ifconfig后ens33的地址,也就是wubantu系统的ip地址。一条一条执行。
docker run -ti -d --restart=always --name shipyard-rethinkdb rethinkdb
docker run -ti -d -p 4001:4001 -p 7001:7001 --restart=always --name shipyard-discovery microbox/etcd:latest -name discovery
docker run -ti -d -p 2375:2375 --hostname=$HOSTNAME --restart=always --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy:latest
docker run -ti -d --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 etcd://192.168.137.100:4001
docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.137.100:2375 etcd://192.168.137.100:4001
docker run -ti -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest server -d tcp://swarm:3375
2、由于之前wubantu的ip更换网络后变了,而构建shipyard容器时的ip还是以前的ip,所以无法显示本地镜像和容器。现在修改成了静态ip,怎么更改为静态ip,我想了好久,最后提供了两种方法。
(1)一种是将shipyard容器删除,重新执行上一步的第(2)个,重新构建shipyard。
(2)另一种找到shipyard容器的配置文件更改ip。
3、在虚拟机中执行删除shipyard镜像命令,一条一条执行。没有成功,说明没有装,因为是自定义安装的,不用管,接着执行下一条。这一步完成后,重新执行上一步的第(2)个,重新构建shipyard就行了。
docker rm -f shipyard-controller
docker rm -f shipyard-rethinkdb
docker rm -f shipyard-swarm-agent
docker rm -f shipyard-swarm-manager
docker rm -f shipyard-proxy
docker rm -f shipyard-certs
docker rm -f shipyard-discovery
docker rm -f shipyard-rethinkdb
五、更改shipyard容器的ip或者端口
1、输入下面命令查看容器信息。
docker ps -a
(1)获取我们要修改的容器id简称
2、查看容器id的全称
(1)555df3935c98为上面查询到的我们想要修改的id
docker inspect 555df3935c98 |grep Id
3、进入该容器配置文件所在文件夹
cd /var/lib/docker/containers/555df3935c98240bbd51756c3fc6faf84b2df185b42635f8fa3e44371e708914
4、查看所有文件
5、找到config.v2.json文件打开,把ip修改为wubantu目前设置的静态的ip,主要找addr和etcd后面会有,改了就行了。
6、把其他需要修改的容器重新执行以上步骤就好了。
六、结果展示
重新打开shipyard后,界面上就有了本地的容器,如图