Docker는 개발자가 이 뛰어난 도구를 사용하여 로컬, 클라우드 또는 모바일 장치에서 모든 애플리케이션을 신속하게 패키징, 배포 및 실행할 수 있도록 하는 오픈 소스 애플리케이션 컨테이너 엔진입니다. Docker의 가장 큰 특징은 실행 중인 컨테이너를 다양한 호스트에 빠르게 배포할 수 있고 환경의 일관성이 유지된다는 점입니다. Docker는 뛰어난 성능과 사용 편의성으로 인해 클라우드 컴퓨팅, DevOps, 마이크로서비스 및 기타 분야에서 널리 사용되었습니다. 이 문서에서는 Docker 컨테이너에 대한 포트 매핑을 소개합니다.
Docker 컨테이너의 각 서비스는 포트 번호를 차지해야 합니다. 컨테이너 내부에서 실행되는 서비스가 외부 시스템과 통신해야 하는 경우 이 포트 번호를 호스트의 포트에 매핑해야 합니다. 이 프로세스를 포트 매핑이라고 부를 수 있습니다.
Docker에서는 docker run
명령을 통해 컨테이너를 시작하고 포트 매핑 매개변수를 지정할 수 있습니다. 예를 들어 웹 서비스가 컨테이너에서 실행 중이고 수신 포트가 8080
이라고 가정하면 다음 명령을 사용하여 컨테이너의 8080
포트를 호스트의 >8000
포트: docker run
命令来启动一个容器,并指定端口映射参数。例如,假设在容器内运行的是一个Web服务,监听端口为8080
,我们可以使用下面的命令将容器内的8080
端口映射到主机的8000
端口:
docker run -p 8000:8080 my-web-service
这个命令的参数-p 8000:8080
表示将容器内的8080
端口映射到主机的8000
端口。最后一个参数my-web-service
是指定要运行的Docker镜像。
如果容器内运行的服务需要暴露多个端口,可以通过多次添加-p
参数进行映射。例如,假设在容器内运行的服务需要同时监听8080
和8081
两个端口,我们可以使用下面的命令将这两个端口映射到主机上的不同端口:
docker run -p 8000:8080 -p 8001:8081 my-web-service
这个命令的参数-p 8000:8080
表示将容器内的8080
端口映射到主机的8000
端口,参数-p 8001:8081
表示将容器内的8081
端口映射到主机的8001
端口。
默认情况下,Docker容器映射的端口是绑定到主机的所有网卡接口上。如果要指定映射到某个特定的IP地址上,可以通过-p
参数的格式:
docker run -p IP:HOST_PORT:CONTAINER_PORT my-web-service
其中,IP
是指要映射的本地IP地址,HOST_PORT
是主机上的端口号,CONTAINER_PORT
是容器内服务实际监听的端口号。
与TCP端口不同,UDP端口需要使用-p
参数的格式进行映射。例如,可以通过下面的命令将容器内的UDP端口8080
映射到主机的UDP端口8000
:
docker run -p 8000:8080/udp my-udp-service
在某些情况下,如果没有必要将容器内的端口映射到主机的固定端口上,可以使用-P
参数来指定随机端口映射。例如,可以通过下面的命令启动并自动映射服务的端口:
docker run -P my-web-service
在这个命令中,参数-P
表示将容器内的所有端口自动映射到主机上的随机端口。Docker会随机选择一个未被占用的主机端口并将容器内服务的端口映射到它上面。
可以使用docker ps
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
-p 8000:8080
의 매개변수는 컨테이너의 8080
포트를 호스트의 8000포트. 마지막 매개변수 <code>my-web-service
는 실행할 Docker 이미지를 지정합니다.
-p
매개변수를 여러 번 추가하여 매핑할 수 있습니다. 예를 들어, 컨테이너에서 실행 중인 서비스가 8080
및 8081
두 포트를 동시에 수신해야 한다고 가정하면 다음 명령을 사용하여 이 두 포트를 매핑할 수 있습니다. 포트: 🎜rrreee🎜 이 명령 -p 8000:8080
의 매개변수는 컨테이너의 8080
포트를 호스트의 8000
포트. 매개변수 -p 8001:8081
는 컨테이너의 8081
포트를 호스트의 8001
포트에 매핑하는 것을 의미합니다. . 🎜-p
매개변수 형식을 사용할 수 있습니다. 🎜rrreee🎜여기서 IP
는 매핑할 로컬 IP 주소를 나타냅니다. , HOST_PORT
는 호스트의 포트 번호이고, CONTAINER_PORT
는 컨테이너의 서비스가 실제로 수신 대기하는 포트 번호입니다. 🎜-p
매개변수 형식을 사용하여 매핑되어야 합니다. 예를 들어 다음 명령을 통해 컨테이너의 UDP 포트 8080
를 호스트의 UDP 포트 8000
에 매핑할 수 있습니다. 🎜rrreee-P
매개 변수를 사용하여 임의 포트 매핑을 지정할 수 있습니다. . 예를 들어 다음 명령을 통해 서비스의 포트를 시작하고 자동으로 매핑할 수 있습니다. 🎜rrreee🎜 이 명령에서 -P
매개변수는 컨테이너의 모든 포트를 임의의 포트에 자동으로 매핑한다는 의미입니다. 주인. Docker는 비어 있는 호스트 포트를 무작위로 선택하고 컨테이너의 서비스 포트를 해당 포트에 매핑합니다. 🎜docker ps
명령을 사용하여 실행 중인 컨테이너와 매핑된 포트를 볼 수 있습니다. 예를 들어 다음 명령을 사용하여 실행 중인 모든 컨테이너와 매핑된 포트를 나열할 수 있습니다. 🎜rrreee🎜 이 명령은 각 컨테이너의 ID, 이름 및 매핑된 포트 번호를 표시합니다. 🎜🎜Docker 포트 매핑은 양방향 데이터 전송을 위해 컨테이너와 호스트 사이에 네트워크 인터페이스를 생성하는 것입니다. 포트 매핑을 구성할 때 불필요한 문제를 피하기 위해 네트워크 보안 문제 및 포트 충돌에 주의해야 합니다. 이 기사가 독자들이 Docker의 포트 매핑과 네트워크 구성을 이해하는 데 도움이 되기를 바랍니다. 🎜위 내용은 Docker 컨테이너의 포트를 매핑하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!