도커를 사용하여 포트를 두 개 이상 노출하려면 어떻게 해야 합니까?
그래서 저는 기계의 인터페이스에 노출되어야 하는 포트가 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
위에서 정의한 대로 호스트 포트를 컨테이너 포트와 매핑합니다.EXPOSE
의Dockerfile
.
예.
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
'programing' 카테고리의 다른 글
드롭다운의 트리거 변경 이벤트 (0) | 2023.08.15 |
---|---|
com.google.android.gms.maps에 대한 다른 조각으로 ID, 태그 null 또는 상위 ID가 중복됩니다.지도 조각 (0) | 2023.08.15 |
확인란을 선택해야 함 (0) | 2023.08.15 |
C x86의 64비트 루프 성능 (0) | 2023.08.15 |
도커 파일에서 도커 인스턴스를 실행하려면 어떻게 해야 합니까? (0) | 2023.08.15 |