【问题标题】:How to acknowledge existing digital ocean droplet with docker-compose?如何使用 docker-compose 确认现有的数字海洋水滴?
【发布时间】:2015-11-04 01:41:02
【问题描述】:

我有一个在 Digital Ocean 上运行的 droplet(虚拟机),它是从另一台笔记本电脑创建的。机器称为“生产”。我确实有用于创建该机器的令牌。我在这里真的很困惑,如何在另一台计算机上“确认”那个水滴。我不想重新创建它,因为在一个容器中我有一个包含一些数据的数据库。用 docker-machine/compose 控制 DO 液滴似乎很舒服。唯一的问题,有时我需要在这里切换笔记本电脑。此外,有时数字海洋水滴会从docker-machine ls 中徒劳地消失,但它在 DO 上运行。

Vagrant 实际上在数字海洋插件中具有这种功能,可以确认那里已经运行了 VM。我很确定 docker-machine 也一定可以做到这一点。

【问题讨论】:

标签: docker docker-compose docker-machine


【解决方案1】:

据我所知,docker-machine“保存状态”的唯一方法是通过它创建的配置文件。每个使用docker-machine 启动的主机都会在~/.docker/machine/machines/ 下创建一个文件夹来保存其配置,有关DigitalOcean Droplet 的信息存储在config.json 文件中。我们以一个具体的为例:

$ cat ~/.docker/machine/machines/docker-001/config.json | jq .
{
  "DriverName": "digitalocean",
  "Driver": {
    "AccessToken": "9dasd89ssf6542notarealtoken455b44sdgf4685",
    "DropletID": 4906043,
    "DropletName": "",
    "Image": "ubuntu-14-04-x64",
    "MachineName": "docker-001",
    "IPAddress": "45.32.128.70",
    "Region": "nyc3",
    "SSHKeyID": 7697371,
    "Size": "512mb",
    "CaCertPath": "/home/asb/.docker/machine/certs/ca.pem",
    "PrivateKeyPath": "/home/asb/.docker/machine/certs/ca-key.pem",
    "DriverKeyPath": "",
    "SwarmMaster": false,
    "SwarmHost": "tcp://0.0.0.0:3376",
    "SwarmDiscovery": ""
  },
  "CaCertPath": "/home/asb/.docker/machine/certs/ca.pem",
  "ServerCertPath": "",
  "ServerKeyPath": "",
  "PrivateKeyPath": "/home/asb/.docker/machine/certs/ca-key.pem",
  "ClientCertPath": "",
  "SwarmMaster": false,
  "SwarmHost": "tcp://0.0.0.0:3376",
  "SwarmDiscovery": ""
}

因此,在您的计算机之间同步 ~/.docker/machine/ 目录应该可以解决问题。

【讨论】:

  • 不错的信息,最好指定 SSHKeyID,这样使用通用驱动程序 ID 就可以重新插入这台机器。
猜你喜欢
  • 2019-11-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 2015-02-16
  • 1970-01-01
相关资源
最近更新 更多