Udostępnienie portów
EXPOSE (Dockerfile) - udostępnione porty są otwarte dla innych kontenerów --expose - tryb wykonawczy docker run - możliwy zakres portów. Nie mapuje portów hosta. # docker run --expose=1000-200 ... -p - jawne mapowanie portów z hostem (tryb wykonawczy) np. # docker run -p 7000-8000:7000-8000 ... # docker run --name nginx -d -p 8080:80 nginx # docker run --name nginx -d -p 8080:80 -p 443:443 nginx -P - mapowanie dynamiczne - proty hosta wybrane losowo dla każdego portu w EXPOSE lub --expose # docker run --name nginx -d -P nginx
Sprawdzenie mapowania portów
# docker port <kontener>
# docker inspect <kontener>
Łączenie kontenerów opcja –link. Kontener docelowy musi działać przed połączeniem. Oba kontenery w trybie bridge (domyślny)
// Kontener docelowy. -e definiuje zmienną środowiskową # docker run -it --name=mysql -e MYSQL_PASSWORD=my-secret mysql // Kontener źródłowy. --link połączenie z kontenerem # docker run -it --name=ubuntu --link mysql:mysql ubuntu
Kontener źródłowy (ubuntu) - dodaje wpis do /etc/hosts dla mysql - przenosi udostępnione zmienne z przedrostkiem MYSQL (nazwa z opcji --link - duże litery) # env