그건 당신이 호스트에 동일한 포트를 사용하지 않는 명령. -p
의 명명법은 "hostPort : containerPort"입니다. 따라서 컨테이너의 포트 80을 모두 포트 80, 90 및 100의 호스트로 매핑 할 수 있습니다. 전혀 충돌이 없습니다.
어쨌든, 가능한 충돌에 대한 귀하의 질문에 대답하십시오. 첫 번째 인스턴스에서, 당신의 명령이 있어야한다 :이 방법으로
docker container run --publish 80:80 -d -it --name wp wordpress
docker container run --publish 80:80 -d -it --name ci jenkins
docker container run --publish 80:80 -d -it --name gitlab gitlab/gitlab-ce
, 당신이 할 수있는 것을 명령하지만 당신은 아마 Bind for 0.0.0.0:80 failed: port is already allocated.
말하는 오류가 발생합니다.
어쨌든, 오류없이 허용하는 도커의 경우 ... "도커 실행"명령에 컨테이너에서 호스트로 포트를 여는 명령이 있기 때문에 매핑 할 첫 번째 맵이 작동합니다 iptables 규칙은 "첫 번째 일치가 작동합니다"스타일에서 작동합니다. 이 경우에는 3 가지 iptables 규칙을 갖게 될 것이지만 작동 할 첫 번째 규칙은 1 가지입니다.
이렇게하면 "도커 컨테이너 실행 - 게시 80:80 -d -it --name wp WordPress/도커 컨테이너 실행 - 게시 90:80 -d -it -name ci jenkins/도커 컨테이너 실행 - 게시 100 : 80 -d -it --name gitlab gitlab/gitlab-ce "그러나 호스트는 다른 포트를 사용합니다. – 001
그러나 세 명령을 실행 한 후 호스트에서 http://127.0.0.1에 액세스하면 WordPress 사이트 만 제공됩니다. 나는 이미 그것을 테스트했다. – OscarAkaElvis
마지막에 localhost : 80 (wordpress), localhost : 90 (jenkins), localhost : 100 (gitlab) 포트를 추가해야합니다. – 001