- Portainer真是个好东西
-
terminator真是个好东西
如果环境已经准备好了,那么5分钟就能搭建完成一个带dashboard的Docker swarm集群。
环境准备
- 操作系统: ubuntu server 18.04
安装软件
安装Docker
Docker最方便的安装方式还是snap install docker
;
然鹅snap
在我们实验室是真的慢,还是official apt source 靠谱
- 安装一些添加apt源用到的小公举。
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
- 添加docker官方apt源的GPG秘钥。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 添加docker官方apt源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- 安装docker
sudo apt-get install docker-ce
- 将当前用户加入docker组,以保证执行权限
sudo usermod -a -G docker $USER
- 退出terminal然后重新登录以刷新groups;嫌麻烦可以relogin
sudo su - $USER
- 最终结果
docker ps -a
不再返回权限错误
PS: 如果你启用了terminator的broadcast group功能,那么无论几台机子,这些命令cp一遍就够了。
Docker Swarm
PS: 如果你启用了terminator的broadcast group功能,请挑一个管理节点,把它踢出broadcast group
。
- 管理节点:
docker swarm init --advertise-addr [管理节点IP地址]
此时swarm会告知你使用类似
docker swarm join --token [TOKEN] [管理节点IP地址]:2377
的命令来添加worker - 因此其他节点cp该命令:
docker swarm join --token [SWARM返回的TOKEN] [管理节点IP地址]:2377
Portainer
管理节点:
a. 创建一个数据卷。
docker volume create portainer_data
b. 启动portainer官方提供的容器。
docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
c. 部署portainer-agent
curl -L https://downloads.portainer.io/agent-stack.yml -o agent-stack.yml && docker stack deploy --compose-file=agent-stack.yml portainer-agent
前往Web页面
http://[管理节点ip地址]:9000/
进行配置,在添加endpoint的时候选择Agent,然后Endpoint URL为[管理节点ip地址]:9001
,public ip为[管理节点地址]
搞定,现在就可以开心地用web dashboard启动一个容器,开心地去做hackpad的container了