如何在不复制密钥的情况下在Docker容器中启用ssh访问?

时间:2014-11-10 20:17:56

标签: git ssh docker ssh-keys

我想构建一个Docker容器,从私有GitHub存储库下载一些东西(在构建时!)。这意味着我需要提供SSH密钥,但我不想将它们复制到容器中,因为这样他们就可以访问容器了。

我该如何解决这个问题?

基本上,我正在寻找类似SSH代理转发的东西,但不是在容器运行时,而是在容器构建时。

任何提示?

2 个答案:

答案 0 :(得分:0)

一种简单而安全的方法是从git下载到主机,然后将下载的文件从主机复制到容器中。无需钥匙。

获取短容器ID:

docker ps

获取完整的容器ID:

docker inspect -f '{{.Id}}' SHORT_CONTAINER_ID

复制文件(在主机中):

sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE

答案 1 :(得分:-1)

建议的方法是将Dockerfile添加到repo的根目录。克隆工作站上的repo,然后执行“docker build”,它将当前目录(构建上下文)发送到docker守护程序。

通常,几乎不需要在(或服务器上)的Dockerfile中克隆私有存储库