Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

docker-machine connect to existing machine

I have a docker swarm all hosted on AWS, created basically along the lines of this tutorial.

To deploy our code, I need to be able to access this swarm separate of the computer where I created these instances. I don't see anywhere in the docs for the docker-machine amazonec2 driver where I can use my AWS credentials to connect to these existing instances.

Some tutorials I came across use a --url argument to specify via the docker-machine url to connect to an existing instance, but I don't see that argument in my most recent docker-machine version.

Other tutorials mention TLS configuration and using that in conjunction with docker-machine to connect to existing instances, but given unique/secret AWS credentials, this seems redundant and adds a layer of complexity I hope I can avoid.

What is the recommended approach to this?

Unable to connect:

puttygen my-key.pem -L > id_rsa

docker-machine create --driver generic --generic-ip-address=ec2-....compute.amazonaws.com --generic-ssh-key id_rsa Swarm-Dev01

Running pre-create checks... Creating machine... (Swarm-Dev01) Importing SSH key... Waiting for machine to be running, this may take a few minutes... Detecting operating system of created instance... Waiting for SSH to be available...

like image 582
kand Avatar asked Jan 18 '16 05:01

kand


People also ask

How does Docker machine manage virtual host that use Docker?

Docker Engine accepts docker commands from the CLI, such as docker run <image> , docker ps to list running containers, docker image ls to list images, and so on. Docker Machine is a tool for provisioning and managing your Dockerized hosts (hosts with Docker Engine on them).


1 Answers

To get access to an existing instance, you can use the docker-machine create --driver generic command. The command will ssh onto the machine, make sure docker is installed, and then download certificates that it stores for future access e.g. using docker-compose.

Command:

docker-machine create \
    --driver generic \
    --generic-ip-address=<your_ip> \
    --generic-ssh-key ~/.ssh/id_rsa \
    vm

Documentation: https://docs.docker.com/machine/drivers/generic/

like image 193
markus-hinsche Avatar answered Oct 25 '22 02:10

markus-hinsche