Comments 20
Если мы не будем хранить состояние, сможем использовать один и тот же образ в разных сценариях
Один и тот же образ можно использовать в разных сценариях, если по разному монтировать папки с данными.
Можно ли использовать JSON вместо YAML в файле для docker-compose, если да — как?
json — подмножество yaml...
Опишите процесс масштабирования контейнеров Docker
Правильный ответ… зависит от вашего оркестратора. А docker-compose в качестве оркестратора для хоть сколько большого прода — смешно.
А docker-compose в качестве оркестратора для хоть сколько большого прода — смешно.
Почему нет? Если у меня три контейнера, два сервиса и один апач. Тоже не подойдёт? Масштабирования пока не планируется. Нужен ли мне на сервере Kybernetes.
Я просто не специалист. Сейчас на сервере апач и томкат установлены прямо на сервере, хочу запаковать все в контейнеры. Проще обновлять. Ну и решил пока не заморачиваться слишком и использовать compose.
Именно для прода попробуйте ansible и конкретно его https://docs.ansible.com/ansible/2.5/modules/docker_container_module.html
Это выглядит почти как docker-compose, работает стабильнее и имеет огромный запас дополнительных батареек (вроде готовой роли, чтобы поставить 1 строчкой docker на сервер). На простых кейсах вы берете чистый сервер, выполняете ansible-playbook site.yml и проект работает.
json — подмножество yaml...
Возможно наоборот?
YAML can therefore be viewed as a natural superset of JSON, offering improved human readability and a more complete information model. This is also the case in practice; every JSON file is also a valid YAML file. This makes it easy to migrate from JSON to YAML if/when the additional features are required.
Хотя, в документации к yaml написано, что это не совсем так. Например,
JSON's RFC4627 requires that mappings keys merely “SHOULD” be unique, while YAML insists they “MUST” be. Technically, YAML therefore complies with the JSON spec, choosing to treat duplicates as an error.
Поэтому исходный вопрос не лишен смысла. Для ответа на него нужно посмотреть, как отреагирует docker-compose, если ему подсунуть
{
"version": "3.7",
"services": {
"node": {
"image": "node:12-alpine",
"image": "node:11-alpine"
}
}
}
который корректный как JSON и некорректный как YAML.Видимо, авторам было не лень проверять, что отступы блоковых элементов должны обязательно быть пробелами, а не табуляцией, а на уникальность ключей, которая точно так же требуется форматом, все забили.
Можно ли исключить часть файлов из образа при его построении?
Да, если определить файл
.dockerignore
. Его синтаксис аналогичен .gitignore
.Чем отличаются команды COPY и ADD?
ADD умеет скачивать файлы и распаковывать архивы. Но если эти фичи не нужны, предпочтительно использовать COPY.
Не обязательно контейнер должен содержать код программы.
Скорее, скомпилированное приложение.
Возможен ли запуск нескольких копий одного и того же compose файла на одном и том же сервере? Как именно?
Это можно сделать с помощью docker-compose, использующего файл YAML для настройки сервисов приложения. После его создания вы можете в одну команду создать и запустить все сервисы.
Это не овечает на вопрос, да и вообще вопрос сформулирован некорректно. Запускаются не копии compose файлов, а связка контейнеров (docker-compose) или сервисов (docker stack) определенных в compose файле. Несколько запустить можно при задании разного COMPOSE_PROJECT_NAME (docker-compose) или имени стека (docker stack) и отсутствия конфликтов в публикуемых портах.
Тут многоотносительно трешевых вопросов и сомнительных ответов, но больше всего позабавил этот:
Можно ли использовать JSON вместо YAML в файле для docker-compose, если да — как?
YAML это суперсет JSON :-)
Docker — одна из последних разработок в контейнеризации, он стал одной из наиболее популярных. Docker, созданный в облачную эру, сделал возможным использование новых функций, ранее отсутствующих в старых технологиях контейнеризации. Самая крутая функция Docker — это работа с использованием любой инфраструктуры, неважно, у вас дома, либо в облаке.
Вызубрю наизусть. После этого ответа меня точно возьмут докер-девопсом!
(ирония)
50 вопросов по Docker, которые задают на собеседованиях, и ответы на них