Numatytasis "docker" konteinerio tinklas yra tilto pavidalu (tame pačiame LAN kaip ir pagrindinis kompiuteris, bet naudojant atskirą LAN IP), kai programa veikia gamybos aplinkoje, jums tereikia sukonfigūruoti atitinkamą paslaugos adresą, kad galėtumėte prisijungti prie duomenų bazės, pertvarkyti ir pan.
Kūrimo aplinkoje, jei paslauga veikia "Docker", o duomenų bazė veikia vietoje, konfigūruoti 127.0.0.1 nėra lengva.
Tai galima išspręsti dviem būdais.
1 sprendimas:
Pagrindinį kompiuterį ir konteinerį traktuokite kaip du atskirus įrenginius ir konfigūruodami adresą sukonfigūruokite pagrindinio kompiuterio LAN IP arba viešąjį IP.
2 sprendimas:
Tačiau parašykite pagrindinio kompiuterio adresą tiesiogiai kaip: host.docker.internalAntrajam metodui reikalinga didesnė nei 18.03 doko versija ir jis turi būti pasiekiamas "Windows" ir "Mac"。
Norėdami patikrinti, ar šie du metodai gali pasiekti pagrindinį kompiuterį, galite tiesiogiai paleisti vaizdą naudodami "docker", kad nukreiptumėte komandinę eilutę:
Kaip matote iš aukščiau esančio paveikslėlio, prieiga prie konteineriohost.docker.internalGalite pasiekti pagrindinio kompiuterio paslaugą, patikrinę failą /etc/hosts, pamatysite, kad nėra domeno vardo peradresavimo ir nežinote konkretaus pagrindinio doko principo.
Tiek pagrindinis kompiuteris, tiek konteineris gali pasiekti pagrindinio kompiuterio paslaugas per host.docker.internal, tačiau ping komandos grąžintas adresas skiriasi taip:
|