Запустите команду docker на хосте - PullRequest
0 голосов
/ 19 мая 2019

Могу ли я запустить команду docker на хосте? Я установил aws внутри моего док-контейнера, теперь я могу как-то использовать команду aws на хосте (которая под капотом будет использовать aws контейнера докера)?

Моя ситуация такова: у меня есть резервные копии базы данных на рабочем хосте. Теперь у меня есть задание Jenkins cron, которое берет файл sql из контейнера db и переносит его в папку на сервере. Теперь я также хочу, чтобы jenkins загрузил этот файл резервной копии в хранилище AWS, но на хосте у меня не установлено aws, также я не хочу устанавливать ничего, кроме docker, на мой хост, поэтому я думаю, что aws должен быть установлен внутри контейнера.

1 Ответ

1 голос
/ 19 мая 2019

Вы не можете сделать это напрямую. Контейнеры и образы Docker имеют изолированные файловые системы, а хост и контейнеры не могут напрямую обращаться к файловым системам и двоичным файлам друг друга.

Теоретически вы могли бы написать сценарий оболочки, который обернул бы docker run, назовите его aws и поместите в свой $PATH

#!/bin/sh
exec docker run --rm -it awscli aws "$@"

, но это плохо масштабируется, требует, чтобы у вас были разрешения на уровне root на хосте, и вы не сможете получить доступ к файлам на хосте (например, ~/.aws/config) или переменным среды (например, $AWS_ACCESS_KEY_ID). ) с дополнительной настройкой.

Вместо этого вы можете просто установить программное обеспечение на ваш хост, и оно будет работать нормально. Нет необходимости использовать Docker для абсолютно всего.

...