Я пытаюсь развернуть веб-приложение в экземпляре виртуальной машины в Google Compute Engine (GCP). Я подключаюсь к экземпляру через ssh и развертываю оркестрованное приложение docker-compose. Что запускает два контейнера докеров, как показано ниже.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
6824c19fad9b wordpress:latest "docker-entrypoint.s…" 3 hours ago Up 22 seconds 0.0.0.0:8065->80/tcp
3079c9872e3d mysql:5.7 "docker-entrypoint.s…" 3 hours ago Up 3 hours 3306/tcp
В соответствии с моим предыдущим опытом я сопоставил порт 8065 экземпляра хоста с портом контейнера wordpress. 80 (который отлично работает на моем локальном компьютере и некоторых других машинах) Итак, как вы могли видеть выше, докер правильно выполнил сопоставление, как я предполагаю.
Чтобы проверить настройку экземпляра, когда я запускаю curl http://localhost:8065
терминал отвечает curl: (52) Empty reply from server
Поскольку я не могу заставить работать внутреннее отображение, его также бесполезно отображать извне. Однако я сделал новые входить и выход правила брандмауэра включить TCP: 8065 для этого экземпляра. Однако все равно не повезло.
Я знаю, что GCP рекомендует использовать свой Kubernates Engine для развертывания контейнерных приложений. Однако переход на этот вариант - не то решение, которого я здесь жду. Я просто хочу убедиться, что пошло не так и как заставить текущую настройку работать на той же платформе.
Вам следует «Разрешить HTTP-трафик» и «Разрешить HTTPS-трафик».
Перейдите к своим экземплярам ВМ, отредактируйте экземпляр и установите флажки «Разрешить HTTP-трафик» и «Разрешить HTTPS-трафик». Он будет отображать внешний трафик виртуальной машины, а докер будет обрабатывать его внутренне.