programing

도커를 사용하여 포트를 두 개 이상 노출하려면 어떻게 해야 합니까?

yoursource 2023. 8. 15. 15:08
반응형

도커를 사용하여 포트를 두 개 이상 노출하려면 어떻게 해야 합니까?

그래서 저는 기계의 인터페이스에 노출되어야 하는 포트가 3개 있습니다.도커 컨테이너로 이것이 가능합니까?

포트를 하나만 표시하려면 다음 작업을 수행해야 합니다.

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 run -it -p 7100-7120:7100-7120/tcp 

을 이용하면docker-compose.yml파일:

services:
    varnish:
        ports:
            - 80
            - 6081

호스트/네트워크 포트를 다음과 같이 지정할 수도 있습니다.HOST/NETWORK_PORT:CONTAINER_PORT

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

이를 예로 들 수 있습니다.

docker create --name new_ubuntu -it -p 8080:8080 -p  15672:15672 -p 5432:5432   ubuntu:latest bash

생성한 내용을 확인하고 컨테이너 ID xxxxxx를 복사합니다.

docker ps -a 

이제 기적을 만드는 사람의 단어(시작)를 쓰십시오.

docker start xxxxx

행운을 빌어요

이미지에서 컨테이너를 생성하는 경우 게시하지 않고 여러 포트를 노출하려는 경우 다음 명령을 사용할 수 있습니다.

docker create --name `container name` --expose 7000 --expose 7001 `image name`

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

추가할 점은 하나뿐입니다.도커 파일을 실행할 때 표시할 포트 범위를 지정할 수 있습니다.

도커 파일:

EXPOSE 8888-8898

이미지 빌드:

docker build -t <image_name>:<version> -f dockerfile .

이미지를 실행할 때:

docker run -it -p 8888-8898:8888-8898 -v C:\x\x\x:/app <image_name>:<version>

언급URL : https://stackoverflow.com/questions/20845056/how-can-i-expose-more-than-1-port-with-docker

반응형