-
docker开启2375会存在安全漏洞
暴露了2375端口的Docker主机。因为没有任何加密和认证过程,知道了主机IP以后,,任何人都可以管理这台主机上的容器和镜像,以前贪图方便,只开启了没有认证的docker2375端口,后来被黑客通过这个端口推送了一个挖矿木马病毒的镜像并运行,所以非测试开发环境的话,还是要开启需要安全认证的tcp端口
- 安装docker
yum install docker
-
.我们需要在远程 docker 服务器生成 CA 证书,服务器证书,服务器密钥
参考这篇文章
docker的认证 证书生成流程 -
编辑docker文件:/usr/lib/systemd/system/docker.service
vi /usr/lib/systemd/system/docker.service
- 在ExecStart属性后面追加(我们刚刚自己生成的证书路径)
(配置 docker 使用 TLS 认证并监听 tcp 端口)
--tlsverify \
--tlscacert=/etc/docker/ca.pem \
--tlscert=/etc/docker/server-cert.pem \
--tlskey=/etc/docker/server-key.pem \
-H tcp://0.0.0.0:2376 \
-H unix:///var/run/docker.sock \
- 重新加载docker配置后重启docker服务
systemctl daemon-reload
systemctl restart docker
- 用netstat -tunlp查看是否存在2376端口,可以看到端口已启动
注:
1.一开始在没有加上这句-H unix:///var/run/docker.sock \,就会报下面的异常,加上重启docker就可以了
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
2.推送springboot编译的镜像到远程的docker服务器,以及创建容器运行的完整教程 https://blog.csdn.net/qq_21187515/article/details/90302026
如果重启docker报错:
Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details
是因为docker.service的配置没改对,如果把加在了ExecStart的最后一行是不需要加反斜杠:\,我在步骤4的时候是加在了中间,所以写了这个\