赞
踩
最近工作中用到了ubuntu系统,所以自己在虚拟机上搭了一个docker swarm,前面用的系统版本比较低,各种报错,这里推荐用ubuntu16.04.
1.VMware安装,一直下一步就行了。
推荐教程 https://blog.csdn.net/qq_40950957/article/details/80467513
2.ubuntu16.04下载
这里推荐阿里云的地址http://mirrors.aliyun.com/ubuntu-releases/16.04/
我这里用的ubuntu-16.04.6-server-amd64.iso 这个镜像
3.安装虚拟机
推荐教程 https://blog.csdn.net/qq_42104296/article/details/100516020
4.配置ip
推荐教程 https://www.jianshu.com/p/2e5fecf2a7df
5.安装SecureCRT
推荐教程 https://www.cnblogs.com/dearcabbage/articles/12844389.html
6.连接虚拟机
这里直接连连不上,需要安装ssh客户端和服务端
sudo apt-get install openssh-server
sudo apt-get install openssh-client
sudo /etc/init.d/ssh restart
7.安装docker
(1).sudo vi /etc/apt/sources.list
这里没有安装vim 所以用vi 按a编辑 找到里面deb cdrom开头的注释掉,这个是因为有时候apt-update的时候会报错,#号注释掉。这里如果写错了按Delete键删除,删除以后想要再写必须再按a编辑。
(2).因为是傻瓜式安装,这里推荐教程 https://blog.csdn.net/jinking01/article/details/82490688
(3).这里又有个坑,就是每次输入docker命令都要sudo,以下三条命令解决
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
8.搭建docker私服库
(1).推荐使用阿里云镜像加速 https://www.cnblogs.com/ianduin/p/8678922.html
(2).docker pull registry ##拉取私服镜像
(3).docker tag docker.io/:registry xxx.xxx.xxx.xxx:5000/learn:registry ##这里是将docker.io/:registry这个镜像命名为你的虚拟机ip地址:5000/learn:registry这个名字
(4).docker run -p xxx.xxx.xxx.xxx:5000:5000 -v/opt/data/registry:/var/lib/registry -i -t -d docker.io/registry ##这里xxx.xxx.xxx.xxx换上你的虚拟机ip地址
9.将docker私服库配置到你的docker配置文件中
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"],
"insecure-registries": ["xxx.xxx.xxx.xxx:5000"] ##添加你的私服地址
}
10.上传镜像到私服中
(1).docker tag 镜像名:版本 ${你的虚拟机ip}:5000/自定义镜像名:自定义版本
例如 docker tag rabbitmq:management 127.0.0.1:5000/rabbitmq:management
(2).docker push ${你的虚拟机ip}:5000/自定义镜像名:自定义版本
例如docker push 127.0.0.1:5000/rabbitmq:management
(3).查看镜像
输入: curl http://127.0.0.1:5000/v2/_catalog可以查询私服库信息
再查询这个文件夹下的镜像,输入:curl http://127.0.0.1:5000/v2/rabbitmq/tags/list 可以查看版本信息
(4).删除镜像docker exec 私服进程id rm -rf /var/lib/registry/docker/registry/v2/repositories/镜像名
例如docker exec 04b79d42aa2e rm -rf /var/lib/registry/docker/registry/v2/repositories/rabbitmq
11.搭建docker swarm
(1).docker pull swarm ##拉取docker swarm
(2).docker swarm init --advertise-addr 你的ip ##初始化一个集群的master服务器
返回以下一串东西:docker swarm join --token SWMTKN-1-5fli7xt3s4hbt3pghkmaosgz98ttvmnd1t5lolnkfn446s6gpj-15893cufutsyuc7ewg89iwhz3 xxx.xxx.xxx.xxx:2377
(3).在另一台服务上面输入上面返回的那一串docker swarm join --token SWMTKN-1-5fli7xt3s4hbt3pghkmaosgz98ttvmnd1t5lolnkfn446s6gpj-15893cufutsyuc7ewg89iwhz3 xxx.xxx.xxx.xxx:2377
(4).在主机上输入docker node ls 查看集群的信息
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
0210x7er3ptyri5qw0g5bu9i4 * ubuntu Ready Active Leader 19.03.10
4h1p0adx52t5zo1h7ri1trfr9 ubuntu Ready Active 19.03.10
12.部署一个docker swarm集群项目
(1).docker service create --replicas 2 --name rabbitmq -p 8080:8080 xxx.xxx.xxx.xxx:5000/镜像名:版本号
例如:docker service create --replicas 2 --name rabbitmq -p 5672:5672 -p 15672:15672 192.168.52.131:5000/rabbitmq:management
这里的replicas是部署几台服务器,swarm集群会先从本地找有没有对应的镜像,如果有则直接run该镜像,如果没有则从docker私服库上拉取,然后一个服务器一个服务器run镜像生成容器
(2).docker service ls ##查看目前服务的情况
(3).docker service rm 运行镜像起的别名或者id##删除服务
例如:docker service rm rabbitmq ,docker service rm 708bc6af7e5e
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。