服务器
CentOS Linux release 7.6.1810 (Core)
Docker
Server Version: 19.03.4
--------------------------------------------------------------
假设服务器ip为192.168.1.100。在启动配置中加上参数 -H 0.0.0.0:2376。即可开放远程访问
比如你的机器ip为192.168.1.150。在命令行中加上 -H 192.168.1.100:2376 即可操作100这台机器。
效果是达到了我们需要的远程访问和操作,也就是说有ip和端口,就可以随便使用你的机器了,这是非常不安全的方法
官方没有像redis的密码设置,需要设置ca、服务器、客户端证书来做安全。
--------------------------------------------------------------
我网上操作了几个方法,证书都能正常配置,但最后都没有完整的成功。
后面在官网的文档下完成了证书配置
https://docs.docker.com/engine/security/https/
可以先按上面的教程生成证书,文档里面有一句话,哈哈哈没看到但是我就是这么干的,因为喜欢使用域名不喜欢用ip。
openssl命令中,有一个$HOSP这个变量,可以改为自己的域名
证书生成完后,下一个命令就是设置证书。这里可能会报错,我也不是很懂,可能就是我们已经启动了的意思,所以他会要求我们删pid文件,其实是要先停掉服务,在运行可能就ok了,但是他占用了你的命令行(不知道怎么说了就是说没有后台运行),文档估计只是给我们做一个demo,命令如下
注意目录
dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem \
-H=0.0.0.0:2376
在centos下,其实是使用服务的方式运行在后台,所以我们要去修改服务的配置,网上的资料也是这么去做的
vi /lib/systemd/system/docker.service
这个文件里面ExecStart参数就是启动命令来的,我们需要将
--tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=0.0.0.0:2378
填写到后面,注意我这里改了一个端口号,别问我为什么
这是我的配置,下面这行注释了,跑不起来也不知道什么原因,不知道是不是顺序问题
到这里其实已经实现了访问问题了,访问方式你就用另外一台可以访问这台ip的机器,通过docker -H ip:2378 info访问。访问不到可以尝试看下是不是防火墙端口没开
我的服务器是centos,这台是我本地电脑,windows