외부 Docker 컨테이너에 IP를 붙여 직접 액세스하는 방법(사내 서버용)
3491 단어 도커
docker 컨테이너의 포트를 바꾸어 docker 호스트에 맵핑하거나 docker 호스트에서 proxy를 지어서 액세스하는 방법은 많이 나오는데, 별로 나오지 않으므로 남겨 둡니다. 이 방법의 장점은 용도별로 호스트명이 따를 수 있는 것과 http://servername:8080 와 같이 일일이 포트 번호를 생각하지 않아도 된다는 것입니다.
결론
구성도
아래와 같은 네트워크였을 경우의 예.
192.168.0.0/24
172.21.0.0/24
설정
이 예제에서는 클라이언트에서 nginx 컨테이너에 직접 액세스합니다. Docker 서버는 Linux.
docker 컨테이너
아래와 같이 브리지 네트워크를 만들어 컨테이너에 IP를 붙인다.
docker-compose.yml
version: '3.6'
networks:
share_nw:
driver: bridge
driver_opts:
com.docker.network.bridge.name: docker1
ipam:
driver: default
config:
- subnet: 172.21.0.0/24
services:
nginx:
image: nginx:latest
networks:
share_nw:
ipv4_address: 172.21.0.10
라우터
설명서를보고 라우터의 LAN 측 정적 라우팅을 구성합니다.
이번 예에서는 네트워크: 172.21.0.0/24 → 게이트웨이: 서버의 IP(192.168.0.10)로 한다.
예)
htps //w w. 내일 s. 코 m/jp/쏙 rt/후Q/1011706/
Docker 서버
IPv4 포워딩을 활성화합니다.
sudo vi /etc/sysctl.conf
net.ipv4.ip_forward=1
reboot
확인
클라이언트 PC에서
ping 172.21.0.10
라든지 해본다.조금 사용하기 쉽습니다.
사내(간이) DNS 서버 구축
dnsmasq라고 하는 간이 DNS 서버의 컨테이너를 기동해, 각 컨테이너의 IP를 이름 해석할 수 있도록 해, 클라이언트의 DNS는 dnsmasq의 IP로 해 둔다(라우터의 DHCP로 DNS를 dnsmasq의 IP를 배부하도록 설정한다) .
dnsmasq는 아래와 같은 설정을 해 둔다.
nginx-server.example.local 172.21.0.10
dnsmasq (docker hub)
htps : // 후 b. 도 c r. 이 m/세아 rch? q = ds sma sq & type = 속눈썹
웹을 통해 컨테이너 시작/중지
Portainer가 뭐 뭐 사용하기 쉽다. web 경유로 컨테이너를 기동/정지, image의 pull나 조작등을 할 수 있습니다.
Reference
이 문제에 관하여(외부 Docker 컨테이너에 IP를 붙여 직접 액세스하는 방법(사내 서버용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koike_moyashi/items/7b87fe07a323d76692a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)