>

퍼즐 조각이 없습니다. 다음을 통해 도커 이미지 실행 (예 : Linux EC2 인스턴스)

> sudo docker run -p 80:xyzw webapp_image:version

포트 80에서컨테이너에 접근 할 수있게합니다 ( EXPOSE xyzw 를 통해).   Dockerfile 에서 ) 컨테이너가 호스트에 영향을 미쳤음을 나타냅니다.

Docker 컨테이너의 전제와 모순되지 않습니까? 가상화와 마찬가지로 컨테이너가 샌드 박스에서 실행되고 호스트에 영향을 줄 수 없다는 아이디어가 나타났습니다. 그러나 여기서는 호스트 포트에 노출 될 수 있습니다. 이것이 가능하다는 사실이 가정 된 격리를 위반하지 않습니까? 컨테이너가 아닌 호스트의 명령 행에서 맵핑을 수행하지 않아야합니까? 동일한 호스트에 두 개의 컨테이너가 있고 둘 다 동일한 포트를 통해 노출하려고 시도하면 누가 먼저 도착하는지 알기 위해 경쟁이 발생할 수 있습니다. 아니면 호스트의 명령 행에서 매핑이 발생한다는 것을 제외하고 샌드 박싱이 실제로 관찰된다는 생각입니까?


  • 답변 # 1

    와이즈 비즈

    컨텍스트를 이해했다면 아래 명령을 실행하여이 작업을 수행 할 수 있습니다-
    와이즈 비즈

    이것은 호스트 머신의 포트 80을 컨테이너의 포트 80으로 라우팅합니다.

    이후 EC2 인스턴스의 보안 그룹에서 포트 80을 열어야합니다. 그래도 작동하지 않으면 검사 점을 따르십시오-
    1. iptables, selinux 등과 같은 호스트 시스템의 방화벽
    2. AWS에서 EC2 인스턴스 보안 그룹의 유효성을 검사합니다.
    3. AWS에서 서브넷에 대한 NACL 규칙의 유효성을 검사합니다.

  • 답변 # 2

    이 줄을

    How do I route port 80 of the EC2 instance to port 80 of the container?

    로 추가 했습니까  Docker 파일에 있습니까? 그렇다면 $ sudo docker run -p 80:80 webapp_image:version 를 실행하십시오. . -p 80:80 옵션은 컨테이너의 노출 된 포트 80을 호스트 시스템 (EC2)의 포트 80에 매핑합니다.

    EXPOSE 80

  • 이전 javascript - 쉼표 만 마지막 문자가되도록하는 방법
  • 다음 android - ffmpeg를 사용하여 비디오에서 오버레이 된 GIF에 투명도 추가