[docker] Docker로 둘 이상의 포트를 노출시키는 방법은 무엇입니까?

그래서 나는 기계의 인터페이스에 노출되어야하는 3 개의 포트가 있습니다. Docker 컨테이너 로이 작업을 수행 할 수 있습니까?



답변

하나의 포트만 노출 시키려면 다음과 같이하십시오.

docker run -p <host_port>:<container_port>

여러 포트를 표시하려면 여러 -p인수 를 제공하십시오 .

docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>


답변

1 단계

당신의에서 Dockerfile, 당신은 동사를 사용하여 EXPOSE여러 포트를 노출.
예 :

EXPOSE 3000 80 443 22

2 단계

그런 다음 위를 기반으로 새 이미지를 만들고 싶습니다 Dockerfile.
예 :

docker build -t foo:tag .

3 단계

그럼 당신은 사용할 수 있습니다 -p위에 정의 된 컨테이너 포트와 호스트 포트를 매핑 EXPOSEDockerfile.
예 :

docker run -p 3001:3000 -p 23:22

다양한 연속 포트를 노출하려면 다음과 같이 docker를 실행할 수 있습니다.

docker run -it -p 7100-7120:7100-7120/tcp


답변

docker-compose.yml파일 을 사용하는 경우 :

services:
    varnish:
        ports:
            - 80
            - 6081

호스트 / 네트워크 포트를 지정할 수도 있습니다

varnish:
    ports:
        - 80:80
        - 6081:6081


답변

이미지에서 컨테이너를 작성하고 여러 포트를 공개하려는 경우 (게시 아님) 다음 명령을 사용할 수 있습니다.

docker create –name container name–expose 7000 –expose 7001image name

이제 docker start명령을 사용하여이 컨테이너를 시작하면 위의 구성된 포트가 노출됩니다.


답변