Docker compose: можно ли подключить локальный файл к удаленному демону?

Сценарий использования такой:

У меня есть инстанс AWS EC2, на котором уже установлена ​​docker-machine.

Я хочу использовать docker-compose для удаленного запуска нескольких контейнеров на этом экземпляре EC2.

В файле компоновки есть такой раздел:

  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "8888:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - /home/ubuntu/nginx.tmpl:/app/nginx.tmpl:ro

Если я использую docker-compose up -d локально, это сработает, так как файл "/home/ubuntu/nginx.tmpl" присутствует на моем локальном компьютере.

Но если я попытаюсь использовать docker-compose для управления удаленным демоном в AWS следующим образом:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://x.y:2376"
export DOCKER_CERT_PATH="somedir"
docker-compose up -d

Это не удастся, так как файл "/home/ubuntu/nginx.tmpl" отсутствует на удаленном компьютере.

Я попытался создать такой файл на удаленной машине в том же каталоге, он работает, но мне кажется, что это неправильно ... ...

Как лучше всего подключить локальный файл к удаленному демону докеров?


person Cui Pengfei 崔鹏飞    schedule 16.09.2016    source источник
comment
Я ответил на тот же вопрос здесь stackoverflow.com/a/39348811/1556338   -  person Bernard    schedule 16.09.2016


Ответы (1)


В Docker Machine есть команда scp, поэтому вы можете скопировать локальный файл на удаленную машину и наоборот:

 docker-machine scp ~/my/local/nginx.tmpl machine-name:/home/ubuntu/nginx.tmpl

Вот справочные документы.

person Elton Stoneman    schedule 16.09.2016
comment
На самом деле я собираюсь запустить эту команду с моего сервера CI. Я узнал, что для запуска scp потребуется мой закрытый ключ, который я не хочу загружать в jenkins. - person Cui Pengfei 崔鹏飞; 19.09.2016