接下来,我们按照官网继续操作
操作前需要在官网注册帐号
1.分享我们的镜像(镜像和容器区别,转载 http://www.cnblogs.com/zhangmingcheng/p/5718042.html)
在Docker终端执行以下命令,将镜像上传到您的仓库中,类似GIT命令
docker login #我登陆的是imily帐号 docker tag friendlyhello imily/repository:hello docker push imily/repository:hello #推送镜像到imily仓库
2.运行仓库中的镜像
docker run -p 4000:80 imily/repository:hello #运行镜像
3.利用容器建立负载均衡测试,
建立docker-compose.yml文件,可创建容器 服务
version: "3" services: web: image: imily/repository:hello deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet networks: webnet:
4.运行容器的5个实例,来进行负载均衡测试
docker swarm init --advertise-addr 192.168.99.100 #换成你的IP docker stack deploy -c docker-compose.yml helloapp #运行实例 docker stack ps helloapp #此命令可查看容器运行栈,会显示5个实例
打开浏览器可看到结果,刷新后会显示不同的hostname
运行期间可直接修改docker-compose.yml文件并运行命令更新 docker stack deploy -c docker-compose.yml helloapp
停止运行可运行如下命令
docker stack rm helloapp
5.集群测试
docker-machine create --driver virtualbox myvm1 #创建虚拟机1 docker-machine create --driver virtualbox myvm2 #创建虚拟机2 docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.101:2377" #利用ssh, 让myvm1执行命令docker swarm init,使之称为管理员 #小提示:可执行 docker-machine ssh myvm1 #转到myvm1虚拟机shell下,运行完后执行exit退出 导出TOKEN : docker-machine ssh myvm1 "docker swarm join-token --quiet worker" > token.txt docker-machine ssh myvm2 #转到myvm2下,执行 docker swarm join --token 你的token 192.168.99.101:2377 成功执行后 exit #返回到主shell控制台 docker-machine scp docker-compose.yml myvm1:~ #复制docker-compose.yml文件到myvm1用户目录 docker-machine ssh myvm1 "docker stack deploy -c docker-compose.yml helloapp" #运行容器服务
此时打开 192.168.99.101 会打不开,这时候需要进入VirtualBox设置myvm1和myvm2网络,打开端口
然后就可以在浏览器打开 http://192.168.99.101 和 http://192.168.99.102 了