每当我重新启动它时,由~/.ssh/my_id_rsa创建的VM中的docker-machine create都会消失。我已阅读docs.docker.com上的文档,但找不到有关此问题的信息。

我的主机是Mac(El Capitan),而docker-machine的版本如下:

$ docker-machine version
docker-machine version 0.6.0, build e27fb87

我使用以下选项创建了VM:
$ docker-machine create --driver virtualbox dev

关于如何解决此问题有什么建议吗?我应该去哪里看看?

更具体地说,我想知道如何避免此问题:
(host) $ docker-machine create --driver virtualbox dev
(host) $ docker-machine ssh dev
(dev) $ ssh-keygen
...
(dev) $ ls ~/.ssh
authorized_keys   authorized_keys2  id_rsa            id_rsa.pub
(dev) $ logout
(host) $ docker-machine restart dev
(host) $ docker-machine ssh dev
(dev) $ ls ~/.ssh
authorized_keys   authorized_keys2

“id_rsa”和“id_rsa.pub”在哪里?

最佳答案

通常,我不指定有关ssh密钥的任何内容:docker-machine~/.docker/machine/machines/<amachine>/中创建无密码短语的ssh密钥

如果要指定自己的名称,请参见this example from the docker-machine documentation:

$ docker-machine create \
  --driver generic \
  --generic-ip-address=203.0.113.81 \
  --generic-ssh-key=~/.ssh/id_rsa \
  vm

OP添加:
(dev) $ logout
(host) $ docker-machine restart dev
(host) $ docker-machine ssh dev

那就是在虚拟机本身中创建ssh密钥:基于TinyCore的boot2docker仅保留/ var / lib / boot2docker中的内容,而没有其他保留。
它确实安装了/Users,但是除此之外,其他任何东西(包括/home/docker~中的~/.ssh)在下次重新启动时都会重置为boot2docker.iso原始内容。
参见“boot2docker: Persist data

为了使这些ssh密钥在整个 session 中持续存在,您需要执行以下任一操作:
  • 在/ Users / any / path / you / want中生成它们(因为它们实际上将存储在主机上)
  • 或以/var/lib/boot2docker生成它们
  • 关于docker - 如何将RSA KEY保存在Docker Machine中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36232018/

    10-16 16:03