Я знаю, что Docker Compose (compose) - это инструмент, который, среди прочего, значительно упрощает настройку взаимосвязанности между контейнерами, но я пытаюсь практиковать это без компоновки, чтобы увидеть, на что похож этот процесс (и получить более глубокую оценкудля создания в долгосрочной перспективе).
Это причина, по которой трудно запустить приложение (в моем случае rails) + сервер SQL без компоновки, потому что они являются изолированными модулями, поэтому они не знают о каждомдругие файловые системы и так не знают, как найти друг друга, и поэтому мы используем compose? Есть ли другая причина?
Как бы вы подошли к подключению контейнеров без использования compose? Если это полезно, я разместил некоторые метаданные о двух контейнерах ниже.
Когда запускается проверка докера на моем контейнере postgres, я вижу ENV и конфигурацию сети:
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/12/bin",
"PGDATA=/var/lib/postgresql/data"
]
"Networks": {
"bridge": {
"NetworkID": "e68fdafe2110067389853515b05b09cd0ce75c500190fae85abff82417794b7f",
"EndpointID": "0d5564c073286bf7c1d708d52146653cf75705f34c1e175963eba4c158424399",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"MacAddress": "02:42:ac:11:00:02",
}
}
А для контейнера rails:
"Env": [
"PATH=/usr/local/bundle/bin:/usr/local/bundle/gems/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
]
"Networks": {
"bridge": {
"NetworkID": "e68fdafe2110067389853515b05b09cd0ce75c500190fae85abff82417794b7f",
"EndpointID": "e76ad694f04b7ca07e388ab39ab81b00409500d4c175b5ce9f90a8c740da7246",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"MacAddress": "02:42:ac:11:00:03",
}
}