Docker Compose - это просто удобная оболочка для команды docker
.
Все, что вы можете делать в docker compose, вы можете делать прямо с запуском docker.
Например, эти докерыКоманды:
$ docker build -t temp .
$ docker run -i -p 3000:80 -v $PWD/public:/docroot/ temp
аналогичны наличию этого файла создания Docker:
version: '3'
services:
web:
build: .
image: temp
ports: ["3000:80"]
volumes:
- ./public:/docroot
и выполнению:
$ docker-compose up web
Хотя преимущества создания Docker наиболее очевидны при использованиинесколько контейнеров, его также можно использовать для запуска одного контейнера.
Мой совет: начинайте без создания докера, чтобы понять, как создать простой образ и как его запустить с помощью docker
командная строка.Когда вы почувствуете себя комфортно с этим, взгляните на docker compose.
Что касается наилучшей практики в отношении копирования файлов в контейнер или их монтирования - ответ будет и , ивот почему:
Когда вы находитесь в режиме разработки, вы не хотите создавать образ при каждом изменении кода.Именно здесь в игру вступает крепление громкости.Однако ваш окончательный образ докера должен содержать ваш код, чтобы его можно было развернуть где-нибудь еще.В конце концов, именно поэтому мы используем контейнеры правильно?Вот тут-то и вступает в игру COPY
.
Наконец, помните, что когда вы монтируете том в контейнер, он будет «затенять» содержимое этой папки в контейнере - это как использовать оба монтированияи COPY
фактически работает так, как вы ожидаете.