
저는 docker로 시작하여 웹 애플리케이션으로 Docker 컨테이너를 실행하고 로컬 네트워크에서 이를 보려고 합니다.
추가 서비스(GUI 없음, LAMP 없음, OpenSSH 없음...) 없이 VirtualBox에 새로운 Ubuntu 14 LTS를 설치한 다음 Docker만 설치했습니다.
curl -sSL https://get.docker.com/ | sh
Odoo(OpenERP) 컨테이너를 실행했습니다(이전에는 postgree 컨테이너를 실행했습니다).
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres
docker run -p 127.0.0.1:8069:8069 --name odoo --link db:db -t odoo
매우 간단합니다. 작동하는 것 같습니다. 브라우저를 설치하지 않았는데 Telnet으로 127.0.0.1:8069에 접속해서 GET 요청을 보냈습니다. 대답했다.
이제 외부에서 서비스에 액세스해야 합니다. 어떻게?
VirtualBox 네트워크 인터페이스가 브리지로 구성됩니다.
Ubuntu eth0 인터페이스에 고정 IP(192.168.0.150)를 설정했습니다.
UFW가 비활성화되었습니다
다른 컴퓨터에서 192.168.0.150으로 핑을 보낼 수 있고 우분투가 응답합니다.
그러나 브라우저는 192.168.0.150:8069에서 아무것도 감지하지 못합니다.
텔넷을 통해 192.168.0.150:8069에 연결할 수 없습니다.
포트 리디렉션이나 인터페이스 매핑의 일부 구성이어야 한다고 가정합니다. 저를 도와주실 수 있나요? :)
답변1
마침내 나는 답을 찾았습니다. 문제는 포트 할당이었습니다. 다음을 설정한 경우:
-p 127.0.0.1:8069:8069
localhost만 노출하고 있습니다. 로컬 서비스만 필요하고 서버에서만 액세스하려는 경우 이는 훌륭한 보안 옵션입니다. 그러나 포트를 모든 인터페이스에 노출하려면 다음을 입력하십시오.
-p 8069:8069
그러면 eth0 인터페이스를 통해 네트워크를 통해 서비스에 접근할 수 있습니다 :)