По подразбиране мрежата на docker контейнера е под формата на мост (в същата LAN като хоста, но с отделен LAN IP), когато програмата работи в продукционната среда, трябва само да конфигурирате съответния адрес на услугата, за да се свържете с базата данни, redis и т.н.
В среда за разработка, ако услугата работи в Docker и базата данни работи локално, конфигурирането на 127.0.0.1 не е лесно за използване.
Това може да се реши по два начина.
Решение 1:
Третирайте хост машината и контейнера като две отделни машини и конфигурирайте LAN IP или публичния IP адрес на хоста при конфигуриране на адреса.
Решение 2:
Запиши адреса на хоста директно като: host.docker.internal, обаче.Вторият метод изисква docker версия над 18.03 и трябва да е достъпна за Windows и Mac。
За да проверите дали тези два метода могат да достъпят хоста, можете директно да стартирате образ с docker, за да пингнете командния ред:
Както се вижда от изображението по-горе, достъп до контейнераhost.docker.internalМожете да достъпите услугата на хоста, като проверите файла /etc/hosts, ще откриете, че няма пренасочване на домейн име и не знаете конкретния основен принцип на docker.
И хостът, и контейнерът могат да имат достъп до услугите на хоста чрез host.docker.internal, но адресът, върнат от ping командата, е различен, както следва:
|