2015-01-19 3 views
0

Я новичок в докер, я читаю документацию докера. есть простой пример в немЧто такое «COPY./Src» для создания изображения

https://docs.docker.com/examples/nodejs_web_app/

https://github.com/enokd/docker-node-hello/

Я запутался об этом "COPY./ЦСИ" в Dockerfile.

В этом примере "." представляют каталог, в котором находится файл Dockerfile (текущий каталог, на моем компьютере, это/home/pete). Так зачем мне копировать все файлы в/home/pete в/src? (делает ли это то, что инструкция значит?)

ответ

0

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

Если у вас есть 20 Tera данных в/home/pete, ваша сборка будет очень длинной, без причины.

Редактировать: вы увидите «контекст загрузки», что означает, что докер читает и сжимает все файлы в/home/pete и во всех ваших подкаталогах ...

+0

Благодарим вас за ответ. так, в примере https://github.com/enokd/docker-node-hello/ только потому, что «Dockerfile» не создан в '/ src', требуется инструкция «COPY./Src» ? этот пример, если я просто создаю «Dockerfile» в side '/ src' (spesific dir как то, что вы сказали), мне больше не нужна эта инструкция «COPY»? – kknight

+0

Нет, это означает, что вы хотите скопировать все ваши локальные файлы ('.') в каталог/src вашего изображения. Вам нужен бродячий файл, index.js и package.json. Когда вы строите, хорошей привычкой является использование тега 'docker build -t myappli_v1 .' или любое значащее имя – user2915097

+0

, чтобы выяснить, что нужно для изображения, действительно важно, поэтому мне просто нужна эта« копия »инструкции. В этом примере я думаю, что index.js и package.json были созданы в '/src'.so мне не нужно ничего копировать. Тогда мой вопрос: «Если бы я также создал« Dockerfile »в«/src », мне нужна инструкция по копированию?» – kknight

1

COPY копирует файлы из каталога хоста (где хост - это система, выполняющая докер) в контейнер докера. Вы можете начать с Docker's tutorial - легко читаемый и сэкономит вам время.

редактировать

Технически в примерах вы показать вам не нужно копировать все содержимого текущего каталога в контейнере - вы бы просто отлично только с index.js и package.json, но авторы копируют . для простоты.

+0

Благодарим вас за консультацию ~ в этом примере, является ли '/ src' хостом dir? Итак, если я просто создаю «Dockerfile» внутри этого каталога, мне нужна эта инструкция больше? – kknight

+0

Docker build не будет переносить файлы каталога, содержащего файл Docker по умолчанию. Так что да, если вам нужны эти файлы. –

+0

извините..Я не получаю «да» за то, что ..... вы имеете в виду, если я создал «Dockerfile» внутри dir '/ src', который содержит то, что нужно для изображения, я могу удалить «копию» ./src "в этом примере. это то, что вы имеете в виду? – kknight

Смежные вопросы