分享好友 最新动态首页 最新动态分类 切换频道
Docker开启并配置远程安全访问
2024-12-27 04:36

在工作学习中,为了提高项目部署效率,一般会在Idea中直接使用Docker插件连接服务器Docker容器,然后将项目打包与DockerFile一起build成Docker镜像部署运行。但是不可能服务器总是跟着主机的,因此呢时常会面临的一个问题就是从A端访问B端服务器上的Docker从而引发的Docker的远程访问问题。

由于在默认情况下,Docker的守护进程会生成一个socket文件来进行本地进程通信,而不会监听任何端口,因此大多数情况下我们只能在本地使用docker客户端或者使用Docker API进行操作。如果想在其他主机上操作Docker主机,就需要让Docker守护进程监听一个端口,这样才能实现远程通信。

但需要注意的是不要将此方式用在外部网络环境,以免带来安全问题,因为在外部网络环境下暴露端口是很危险的事,别人随时能攻击甚至窃取你的数据。因此官方也给出了详细警告及处理信息

 下面,我们一步一步来~

根据官网方法,进入docker.service文件,编辑并在ExecStart上添加配置 -H tcp://127.0.0.1:2375

 

这里相当于开放了2375端口,因此除了配置文件以外还要在防火墙开放端口,云服务器还需要开放端口策略等等。

 

重启服务使得更改后的配置生效,并查看docker启动状态

 
 

1,在指定文件夹新建一个存放CA密钥的文件夹,笔者这里再docker文件下存放。

 

2,在Docker主机上通过命令生成CA私钥和公钥

执行命令openssl genrsa -aes256 -out ca-key.pem 4096

 

这里需要输入密码并确认,只要两次输入一致就行,否则会像重置密码数据两次新密码一样报验证错误。需要注意的是Linux上并不会显示输入的密码信息,因此要格外注意别输错了。

如果成功,该文件下就有了pem证书文件生成

 

3,补全CA信息

执行命令openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem根据要求依次输入访问密码、国家、省、市、组织名称、单位名称、随便一个名字、邮箱等,需要这些信息作为证书申请。

 

现在我们有了CA,就可以创建服务器密钥和证书签名请求(CSR)。

Tips:确保“Common Name”与用于连接Docker的主机名匹配,否则后续远程连接会失败

4,生成service-key.pem

执行命令openssl genrsa -out server-key.pem 4096

 

5,用CA签署公钥

由于TLS连接可以通过IP地址和DNS名称进行,因此在创建证书时需要指定IP地址或者域名。填写的或者域名,都是将来对外开放的地址,也就是用于连接的地址。例如,要允许使用127.0.0.1进行连接

执行命令openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr

 

6,匹配白名单

设置允许哪些可以远程连接。

  1. 允许指定可以远程连接。

     

    是你的或者域名,使用时将替换为自己的或者域名。

     
  2. 允许所有连接

    设置为即可。

     

    :只允许永久证书的才可以连接成功

然后需要将Docker守护进程密钥的扩展使用属性设置为仅用于服务器身份验证

 

7,生成已签名的证书(signed certificate

这里执行命令后需要输入之前设置的密码

 

授权插件提供了更细粒度的控制,以补充来自双向TLS的身份验证。除了上述描述的其他信息外,在Docker守护进程上运行的授权插件还接收用于连接Docker客户端的证书信息。

如果第二次申请颁发证书,可能会出现ca.srl: No such file or directory的问题。

此时我们echo “01” > ca.srl 即可,这个文件影响到ca颁发的证书的序号,而证书序号应该是唯一的,所以这点需要控制好。

8,生成客户端key

对于客户端身份验证,我们还需要创建客户端密钥和证书签名请求

注意:为了简化接下来的几个步骤,我们可以在Docker守护进程的主机上执行此步骤。

 

此外为了使密钥适合客户端身份验证,还需要创建一个新的扩展配置文件

 

然后就可以生成已签名的客户端key了。

 

此时可以看到我们当初创建的ca_key文件里已经有很多文件了。

 

但是有很多多余的配置文件,生成,后,一些签名请求和扩展配置文件可以安全删除了。

 

9,修改权限

为了防止密钥文件被误删或者损坏,我们可以改变一下文件权限,让它只读就可以。

 

为了防止证书损坏,我们也删除它的写入权限。

 

归集服务器证书

将证书存放在docker配置文件夹下

 

10,修改Docker配置

这里需要设置的守护程序,让它仅接收来自提供了信任证书的客户端连接。

 

将 属性值进行修改

 

重载配置并启动Docker

 
 

将服务器中的如下四个证书文件下载到本地,并创建文件夹存放。

 然后在IDEA中配置docker证书地址与远程连接配置。证书文件夹就是本地存放那四个证书文件的本地目录。

看到下面的连接成功就证明IDEA已经与远程Docker连接成功,就可以在项目中用Docker进行协同操作了。

看了这么一大串配置流程,一步一步来操作显然非常麻烦,而且大多操作其实完全可以进行封装使用,因此将创建证书的操作用脚本封装起来用才能事半功倍。具体的脚本和使用方法已经放到笔者资源里了。有需求自取即可~

最新文章
用AI轻松生成高清美女写真,超简单教程来啦!
在这个数字化迅速发展的时代,生成美女写真已经不再是专业摄影师的专属特权。如今,任何人都可以借助AI技术,轻松制作出逼真的美女照片。不知道宝子们有没有遇到过这样的烦恼:想要一张完美的照片,却苦于自己没有摄影技巧,或者身边没有合
搜狗搜索广告如何助力宠物行业获客?
搜狗是国内耳熟能详的搜索引擎,作为比较出名的推广渠道,却在宠物行业中声名不显。其最主要的原因,莫过于很多人不懂宠物行业在搜狗的推广规律,导致很多人没有做出预期的效果,接下来,就给大家主要介绍一下宠物行业在搜狗的推广秘籍。账
多样性问题设计_今日生物多样性问题设计教程
摘要:多样性问题设计,今日生物多样性问题设计教程,新片场素材小编梁锦若多样性问题设计,今日生物多样性问题设计教程相关内容整理,如果您对多样性问题设计,今日生物多样性问题设计教程感兴趣欢迎访问免费阅读。多样性问题设计,今日生物多
免费扫描app 好用的手机扫描软件大全排行榜
你是否厌倦了手动输入信息和搜索内容的繁琐过程?但是不清楚免费扫描app有哪些,小编今天为大家带来好用的手机扫描软件大全排行榜,普通的扫码软件功能也已经无法满足日益增长的需求量。那么现在的问题是,有没有更高效、更智能的扫描软件
“抢盐潮”要不要囤盐?专家:不用!!!
8月24日日本核污染水排放入海受此影响,韩国盐价大涨民众“举国囤盐”而在国内也有不少地区出现抢购食用盐现象食盐会受影响吗?我们的食盐储备量够不够?对此湖南相关部门、湘企雪天盐业集团股份有限公司8月24日18时,记者通过盒马鲜生APP
宣城漏水维修电话〈免费上门〉宣城卫生间防水补漏师傅
不砸砖、不砸墙;免砸砖防水补漏技术,2小时快速解决漏水问题,超长保修期。漏水维修服务项目:天花板渗水、房顶漏水、泳池渗水、房屋墙面起皮、墙壁发霉、卫生间漏水、飘窗防水、女儿墙渗水、高压注浆堵漏、洗手间渗水、厂房漏水维修、阳台防
竞价推广代运营企业的实战之路
在竞价推广的浪潮中,我深知每一分投入都需精准转化。凭借多年实战经验,我发现许多企业虽投入巨资,却难获理想回报。这正是竞价推广代运营的价值所在——用专业力量,让每一分钱都花在刀刃上。一、竞价推广代运营的核心价值作为竞价推广的
人工智能在社会领域的应用
导读Foreword人工智能作为跨领域通用技术,正迅速渗透社会各领域。但是,利用人工智能的项目需结合研究成果,有效融入,并进行严格评估。麻省理工学院的研究人员评估了其在提升社会项目影响力方面的实践,发现人工智能在消除贫困与应对气候
网站优化应该怎样增加外链
我们知道网站SEO优化重要的一点就是增加外链。外链有什么作用呢?外链主要是要在别人的网站导入自己网站的链接,可以为网站倒流,从而获得更多的流量。那么网站优化应该怎样增加外链呢?网站优化应该怎样合理增加外链一、切忌买卖链接、群发
游戏优化大师:游戏玩家必备
电脑游戏能否玩得酣畅淋漓,机器的硬件配置当然是第一位的,但一味的升级硬件并不现实,此时系统优化的作用就显现出来了。盛大创新院近日推出游戏优化大师,针对电脑游戏为计算机做出专门优化,游戏玩家们一定要试试看。评测环境:一键优化
相关文章
推荐文章
发表评论
0评