У вас есть несколько вариантов. Используя что-то вроде docker-compose
, вы можете автоматически создавать уникальное изображение для каждого контейнера, используя ваше базовое изображение в качестве шаблона. Например, если у вас docker-compose.yml
, которые выглядят полюбились:
container0:
build: container0
container1:
build: container1
И тогда внутри container0/Dockerfile
вы имели:
FROM larsks/thttpd
COPY index.html /index.html
А внутри container0/index.html
вы имели все, что содержание вы хотели, то работает docker-compose build
будет генерировать уникальный изображения для каждой записи (и запуск docker-compose up
начнет все вверх).
Я собрал пример вышеуказанного here.
Используя только командную строку Docker, вы можете использовать монтирует тома хоста, которые позволяют монтировать файлы в контейнер, а также каталоги. Используя мой thttpd
в качестве примера снова, вы можете использовать следующий -v
аргумент переопределить /index.html
в контейнере с содержанием вашего выбора:
docker run -v index.html:/index.html larsks/thttpd
И вы могли бы сделать то же самое с docker-compose
через volume
запись:
container0:
image: larsks/thttpd
volumes:
- ./container0/index.html:/index.html
container1:
image: larsks/thttpd
volumes:
- ./container1/index.html:/index.html
Я хотел бы предложить, что использование механизма build
имеет смысл, если вы пытаетесь отменить много файлов, используя при ИЗДЕ umes отлично подходит для одного или двух файлов.
Основное различие между этими двумя механизмами является то, что при создании изображений, каждый контейнер будет иметь копию файлов, при использовании монтирует тома, изменения, внесенные в файл в пределах изображения будут отражаться на хост файловой системе.
Похоже, вы хотите использовать встроенные аргументы в докере 1.9 до – danday74
Я полагаю, что если я использую build args, он не перестроит все промежуточные контейнеры? Он просто добавляет нового посредника в конец и копирует файл? – Breedly
Build args позволяют создать изображение с x, установленным в 6, и другое изображение с x, установленным в 7 из того же файла докеров. U затем запускает контейнеры с любого изображения обычным способом, я полагаю, что обычный посредник используется везде, где это возможно – danday74