博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
非节点主机通过内网远程管理docker swarm集群
阅读量:5877 次
发布时间:2019-06-19

本文共 1087 字,大约阅读时间需要 3 分钟。

这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下。

在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管理集群。但是在另外一台不是集群节点的主机上,虽然设置了DOCKER_HOST环境变量

export DOCKER_HOST="tcp://manger节点内网IP:2377"

但连接不上

# docker psCannot connect to the Docker daemon at tcp://x.x.x.x:2377. Is the docker daemon running?

后来在 CoreOS 网站上找到了解决方法 - :

1. 创建 /etc/systemd/system/docker-tcp.socket 文件并添加下面的配置

[Unit]Description=Docker Socket for the API PartOf=docker.service[Socket]ListenStream=x.x.x.x:2375BindIPv6Only=bothService=docker.service[Install]WantedBy=sockets.target

注:上面的 x.x.x.x 是 manager 节点的内网 IP 地址

2. 重启相关服务使设置生效

systemctl enable docker-tcp.socketsystemctl stop dockersystemctl start docker-tcp.socketsystemctl start docker

或者

systemctl enable docker-tcp.socket && systemctl stop docker && systemctl start docker-tcp.socket && systemctl start docker

3. 设置 DOCKER_HOST 环境变量

export DOCKER_HOST="tcp://manger节点内网IP:2375"

或者直接

docker -H tcp://manger节点内网IP:2375 ps

就可以连接并正常远程管理 docker swarm 集群了。

注:一定要添加 PartOf=docker.service ,不然服务器重启后,docker-tcp.socket 不会自动启动。

转载于:https://www.cnblogs.com/dudu/p/7220021.html

你可能感兴趣的文章
oracle之检查点(Checkpoint)
查看>>
美国数学月刊征解题
查看>>
[zz]Lessons from Pixar: Why Software Developers Should Be Storytellers
查看>>
C# 导出数据到Excel模板中(转)
查看>>
UVA532 Dungeon Master
查看>>
sqlite3开发环境搭建
查看>>
关于Microsoft CRM 2013自动保存Autosave功能的10点说明
查看>>
分页-Page
查看>>
Yii2 自定义独立验证器
查看>>
php 利用socket发送GET,POST请求
查看>>
iPhone/android的viewport 禁止页面自动缩放
查看>>
Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件(原创)
查看>>
数据搬运工DSS~介绍
查看>>
大叔推荐博客索引
查看>>
EF架构~一个规范,两个实现(续)~性能可以接受的批量增删改操作
查看>>
为TextBox装饰水印
查看>>
ES6 箭头函数易出错细节
查看>>
[leetcode]143. Reorder List
查看>>
逆波兰表达式
查看>>
PID参数调整的口诀
查看>>