How to run docker-compose on remote host?

前端 未结 6 1297
刺人心
刺人心 2021-01-31 16:53

I have compose file locally. How to run bundle of containers on remote host like docker-compose up -d with DOCKER_HOST=?

6条回答
  •  渐次进展
    2021-01-31 17:26

    After the release of Docker 18.09.0 and the (as of now) upcoming docker-compose v1.23.1 release this will get a whole lot easier. This mentioned Docker release added support for the ssh protocol to the DOCKER_HOST environment variable and the -H argument to docker ... commands respectively. The next docker-compose release will incorporate this feature as well.

    First of all, you'll need SSH access to the target machine (which you'll probably need with any approach).

    Then, either:

    # Re-direct to remote environment.
    export DOCKER_HOST="ssh://my-user@remote-host"
    
    # Run your docker-compose commands.
    docker-compose pull
    docker-compose down
    docker-compose up
    
    # All docker-compose commands here will be run on remote-host.
    
    # Switch back to your local environment.
    unset DOCKER_HOST
    

    Or, if you prefer, all in one go for one command only:

    docker-compose -H "ssh://my-user@remote-host" up
    

    One great thing about this is that all your local environment variables that you might use in your docker-compose.yml file for configuration are available without having to transfer them over to remote-host in some way.

提交回复
热议问题