用命令行去管理容器时间久了会有点繁琐,我们需要一个可视化界面来帮我们简化工作。
1、安装portainer-agent
⚠️2台机器都要操作
由于直接开放docker的Access API(2375端口)是不安全的,特别是生产环境中。因此,我们采用agent的方式来管理docker,而不是直连docker的2375端口。下面我们分别在2台机器上都安装portainer-agent。
在test-node-1机器上执行:
docker run -d \
--network app_network \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/docker/volumes:/var/lib/docker/volumes \
--name portainer_agent_1 \
portainer/agent
在test-node-2机器上执行
docker run -d \
--network app_network \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/docker/volumes:/var/lib/docker/volumes \
--name portainer_agent_2 \
portainer/agent
安装完成后,我们先放一边。
2、安装portainer-ce
portainer-ce是docker的可视化管理工具,2.x系列的portainer已经改名为portainer-ce
,值得注意的是portainer-ce不再支持直连docker的2375端口了,似乎这个安全问题被更加重视了。
在test-node-1上执行:
docker run -d \
-p 8000:8000 \
-p 9000:9000 \
--name=portainer \
--network=app_network \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/portainer:/data \
portainer/portainer-ce
3、配置portainer-ce
安装完成后,在浏览器中访问http://172.16.113.9:9000
,由于是第一次打开,我们需要设定账号和密码。完成后我们会进入这一步:
选择agent选项,填入portainer_agent_1
,portainer_agent_1:9001
,然后点击connent
按钮,我们就可以正常进入了。这里有同学可能会有疑惑了,为什么不填入IP地址。主要是因为portainer-ce和portainer-agent安装在同一个网段了,可以用容器名访问。
这个时候只有一个节点,我们还需要把另外的一个节点给添加进来:
依旧选择agent,然后填入第二个agent的参数:
填写完成后点击底部的
Add endpoint
按钮即可。
此刻回到Home页面,我们可以发现2个节点都在了,并且都可以点进去查看更多的信息了。如下面的2张图:
4、小结
这一节主要是使用了portainer-ce来进行管理docker,通过portainer的agent来和portainer-ce进行通信。