Connecting docker-machine to Azure using the generic driver

I have a Docker-based deployment on Azure. I know that docker-machine has a Azure driver, which can create VMs and generate the certs, etc.. But I’d rather use the Azure tools (CLI and portal).

So I created a VM, and installed my public SSH key on it. And now I’d like to connect to it using docker-machine. I add the server, so that I can see it when I do docker-machine ls:

  • Docker Compose - Not picking up the dump file in the init command?
  • docker private registry user creation
  • Call From quickstart.cloudera/ to quickstart.cloudera:8020 failed on connection exception: Connection refused
  • How can I make my Docker compose “wait-for-it” script invoke the original container ENTRYPOINT or CMD?
  • container monitoring not enabled by default
  • Passing parameter in docker build command with fish
  • NAME        ACTIVE   DRIVER       STATE     URL                        SWARM   DOCKER    ERRORS
    default     -        virtualbox   Stopped                                      Unknown
    serv        -        generic      Running   tcp://XX.XX.XX.XX:2376             Unknown   Unable to query docker version: Unable to read TLS config: open /Users/user/.docker/machine/machines/serv/server.pem: no such file or directory

    When I try to set the environment variables, I see this:

    $ docker-machine env serv
    Error checking TLS connection: Error checking and/or regenerating the certs: 
    There was an error validating certificates for host "XX.XX.XX.XX:2376": 
    open /Users/user/.docker/machine/machines/serv/server.pem: no such file or directory
    You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
    Be advised that this will trigger a Docker daemon restart which will stop running containers.

    When I try to regennerate-certs, I get:

    $ docker-machine regenerate-certs serv
    Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
    Regenerating TLS certificates
    Waiting for SSH to be available...
    Detecting the provisioner...
    Something went wrong running an SSH command!
    command : sudo hostname serv && echo "serv" | sudo tee /etc/hostname
    err     : exit status 1
    output  : sudo: no tty present and no askpass program specified

    I can SSH to the server fine.

    What’s the issue here? How can I make it work?

  • Docker deployments fail on Marathon, work fine otherwise
  • Docker difference between two containers
  • Pass environment variables from docker-compose to container at build stage
  • How can I pass environment variables to a Docker container with Terraform?
  • Running docker on Ubuntu: mounted host volume is not writable from container
  • Is Postgres designed to write to shared data stores?
  • Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.