Nettverk er en viktig del av Docker det som gjør det mulig container
å kommunisere med hverandre og med det eksterne nettverket. Her er en detaljert veiledning for hvordan du kobler til og administrerer nettverk i Docker:
Standard bronettverk
Docker gir et standardnettverk bridge
kalt container
. Når du oppretter et container uten å spesifisere et nettverk, kobles det automatisk til standardnettverket bridge
.
Container s på samme bridge
nettverk kan kommunisere med hverandre ved hjelp av deres interne IP-adresser. Docker gir DNS-oppløsning for å tillate container kommunikasjon via domenenavn.
Container
Kobling
Ved å bruke --link
alternativet kan du koble en container
til en annen, slik at kommunikasjon mellom dem ved hjelp av den tilknyttedes container navn eller miljøvariabler.
For eksempel, når du kjører en container
fra et bilde som heter webapp
, kan du koble det til en MySQL container kalt mysql
med følgende kommando: docker run --name webapp --link mysql:mysql webapp-image
Egendefinerte nettverk
Du kan opprette egendefinerte nettverk Docker for å la container s innenfor samme nettverk kommunisere.
Bruk docker network create
kommandoen for å opprette et tilpasset nettverk. For å opprette et nettverk som heter my-network
, kan du for eksempel bruke kommandoen: docker network create my-network
Koble Container
til tilpassede nettverk
Når du oppretter en container
, bruk --network
alternativet for å koble container
til et tilpasset nettverk.
For å koble container
til et "mitt-nettverk"-nettverket kan du for eksempel bruke kommandoen: docker run --network my-network my-image
Koble Container
til vertsnettverket
Bruk alternativene --publish
eller --publish-all
for å koble container
porter til porter på vertsmaskinen eller til tilfeldige porter på verten.
container
For å koble port 80 av a til port 8080 på verten, kan du for eksempel bruke kommandoen: docker run -p 8080:80 my-image
Ved å bruke nettverksfunksjonene i Docker kan du administrere tilkoblingen og kommunikasjonen mellom container
og nettverkene i Docker miljøet ditt. Dette gir et fleksibelt og skalerbart miljø for applikasjonene dine, slik at components
innsiden container
kan samhandle med hverandre og med det eksterne nettverket sømløst.