I'm working with DigitalOcean, specicially the 1-click Docker droplet.
Docker is running on the droplet, and the socket file is at /var/run/docker.sock on the droplet.
I have docker and docker-compose also installed locally on my machine.
I have a docker-compose.yml that works locally on my machine.
I have the public-key on the droplet and the private key added to ssh-add on my local machine. My ssh-key has a passphrase.
I can ssh into my DigitalOcean droplet from my local machine without any problem or password prompts.
Port 22 is open on the droplet.
Edit: docker-compose on both machines is > 1.28
Given these facts, this should work, according to all of the tutorials and documentation that I've read:
docker-compose -H "ssh://root@<my-digital-ocean-droplet-ip-here>" up -d
But it does not work. I get this:
ssh: connect to host <my-digital-ocean-droplet-ip-here> port 22: Connection timed out
ERROR: Couldn't connect to Docker daemon at http+docker://ssh - is it running?
I can't figure it out. I've tried using docker contexts, environment variables for the host, nothing is working. Is there anything I'm missing?
Edit- one more detail. I haven't seen anything to suggest that this would be important, but the end of my public-key says "azuread/ ". Again, this doesn't interfere with normal ssh.
Edit- Here's the docker-compose.yml:
version: '3.9'
 
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: myhardrootpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress_admin_guy
      MYSQL_PASSWORD: myhardpassword
    volumes:
      - db_data:/var/lib/mysql
      
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: pma
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
    restart: always
    ports:
      - 8080:80
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - 8000:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress_admin_guy
      WORDPRESS_DB_PASSWORD: myhardpassword
      WORDPRESS_DB_NAME: wordpress
    working_dir: /var/www/html
    volumes:
      - ./wp-content:/var/www/html/wp-content
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
volumes:
  db_data: {}
Edit: Here's the version numbers:
Local: docker --version
Docker version 20.10.6, build 370c289
Local: docker-compose --version
docker-compose version 1.29.1, build c34c88b2
Server: docker-compose --version
docker-compose version 1.27.4, build 40524192
Server: docker --version
Docker version 19.03.13, build 4484c46d9d
Server: ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1f  31 Mar 2020
https://docs.docker.com/engine/reference/commandline/dockerd/ https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/ https://github.com/docker/compose/issues/4181 https://blog.mikesir87.io/2019/08/using-ssh-connections-in-docker- How to run docker-compose on remote host?
 
    