Docker打镜像时怎么拉取git仓库
有时我们需要在Docker容器中去拉取git仓库,而这些个仓库很多时候是私有的,需要权限才能拉取。怎么做才合适呢?
我们知道git仓库一般都是支持通过SSH的方式去推送的拉取的,那把具有拉取权限的私钥加到Docker镜像里不就可以了吗?
听起来很简单,实际上要复杂一些,因为直接把私钥文件添加进镜像是不行的,因为还有其它的交互式操作。
Home of Little Jelly
有时我们需要在Docker容器中去拉取git仓库,而这些个仓库很多时候是私有的,需要权限才能拉取。怎么做才合适呢?
我们知道git仓库一般都是支持通过SSH的方式去推送的拉取的,那把具有拉取权限的私钥加到Docker镜像里不就可以了吗?
听起来很简单,实际上要复杂一些,因为直接把私钥文件添加进镜像是不行的,因为还有其它的交互式操作。
在Windows中使用ssh命令连接操作远程服务器时,几分钟不活动可能就会掉线,这时就需要重新连接,比较麻烦。
可以通过一个简单的设置来避免这个问题,步骤:
Ubuntu 20.04 默认情况没有启用SSH服务,不能远程连接。
可以按照以下步骤启用 SSH 服务:
本篇介绍Linux下的known_hosts文件位置及作用,Mac系统同理。
known_hosts文件位于用户目录下的.ssh文件夹中。
Visual Studio Code(VS Code)可以借助Remote SSH扩展实现远程开发,非常方便。
1. 为VS Code安装Remote扩展,MicroSoft官方开发的;
2. 安装成功后左边栏会多一个`远程资源管理器的图标`,点进去,添加新的SSH Target,这里要使用SSH私钥无密码的方式登录;
使用SSH可以无需密码登录Linux服务器。
这里需要搭配使用公钥私钥对儿,私钥存在本地,公钥添加到服务器上。
步骤:
1. 先在本地电脑上使用ssh-keygen生成私钥公钥对
frp是一款代理软件,类似`ngrok`,可以反向代理内网站点、SSH等。
[frp服务端和客户端下载](https://github.com/fatedier/frp/releases),根据平台的不同选择不同的文件。
服务端配置
CentOS下Git导入SSH key
ssh-agent bash –login -i
ssh-add -k /path/to/key
macOS下Source Tree导入私钥.
macOS下可以使用Source Tree作为git版本管理工具。
Source Tree支持SSH,在终端中执行以下命令可以导入私钥。