Docker – porty, połączenie kontenerów

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