淡淡烟草味2017-04-25 09:03:39
컨테이너 간 서로 접근하려면 컨테이너 생성 시 --link 매개변수를 사용해야 하며, 연결된 컨테이너에는 이름을 붙여주는 것이 가장 좋습니다.
docker run --name mysql .......
docker run --name php --link mysql .......
docker run --name nginx --link php .......
이렇게 시작하면 프로그램에서 해당 컨테이너 이름만 사용하면 해당 서비스에 액세스할 수 있습니다.
예를 들어 fastcgi_pass php:9000;
포트가 외부에 노출되어 있는 경우에는 -p 또는 -P 매개변수를 전달해야 하며, -p를 사용하는 것이 가장 좋습니다. docker run --name nginx -p 80:80 -p 443:443 .......
이러한 방식으로 브라우저는 이 서버에서 제공하는 웹 서비스에 액세스할 수 있습니다.
大家讲道理2017-04-25 09:03:39
포트 매핑:
은 로컬 시스템의 포트를 선택하고 이를 컨테이너의 포트에 매핑하므로 요청이 와서 로컬 시스템의 매핑된 포트에 액세스하면 해당 요청은 포트가 됩니다. 컨테이너로 전달된 요청은 컨테이너의 서비스에 의존하여 요청을 처리합니다.
포트 매핑이 필요한 이유는 무엇인가요?
로컬 IP는 1.2.3.4와 같은 공개 IP이지만 로컬 컨테이너 IP는 172.17.0.2와 같은 가상 IP입니다. 외부에서는 컨테이너의 서비스에 직접 접근할 수 없으며, 이때 로컬 머신의 포트에 접속하여 컨테이너 내부의 서비스를 이용할 수 있습니다.
我想大声告诉你2017-04-25 09:03:39
소위 '포위'라는 것이 구체적으로 무엇을 가리키는지 모르겠습니다.
간단히 말하면 NAT의 원리와 유사합니다. 호스트 네트워크가 컨테이너가 제공하는 서비스에 접근할 수 있어야 한다면 컨테이너의 포트가 호스트 네트워크에 노출되어야 합니다.
일반적인 구문은 "docker run"을 실행할 때 "-p 호스트_포트:컨테이너_포트" 매개변수를 가져오는 것입니다.