Пусть на моем докер клиентской машине у меня есть следующие переменные окружения:Как фильтровать переменные среды клиента докеров в команду запуска docker?
myValA=B
DOCKER_CONTAINER_VALUE_C=networksettingD
myValE=F
DOCKER_CONTAINER_VALUE_G=arbitrarySettingH
и я хочу передать два из этих значений в мой Докер контейнер я бегу. (Те, которые содержат DOCKER_CONTAINER
).
Теперь я мог вручную жёстко его, как это:
docker run -e DOCKER_CONTAINER_VALUE_C='networksettingD' -e DOCKER_CONTAINER_VALUE_G='arbitrarySettingH' --name container_name dockerhub_id/image_name
Но я хочу, чтобы автоматизировать этот процесс.
Что-то вроде:
docker run -e ${env | grep "DOCKER_CONTAINER"} ...
Мой вопрос: Как фильтровать переменные окружения клиента докер в команду докер выполнения?
Это действительно не сработает. Если ваша заключительная команда - «xargs docker запустите myimage», результатом от xargs будет «docker run myimage -e ...», который не будет делать то, что вы хотите.Кроме того, переменные, содержащие пробелы, будут в любом случае зависеть от этого, и если бы вы надеялись провести интерактивную сессию докеров, вам было бы не повезло. – larsks
@larsks Спасибо за отзыв. На самом деле я не использую докер, но я внесла свой ответ, чтобы объяснить, что дальнейшие аргументы могут следовать за опциями -e. –
Это все равно не будет выполнено, потому что 'xargs' передает' -e DOCKER_CONTAINER_VALUE_C = networksettingD -e DOCKER_CONTAINER_VALUE_G = произвольныйSettingH' как один аргумент, что приводит к ошибке. – larsks