여기서는 멈추세요
- 명령 출력의 서버·서비스·경로가 예상 대상과 다르면 변경 단계로 넘어가지 않습니다.
- 현재 접속 세션, 백업 또는 콘솔 복구 경로를 확보하지 못했다면 상태 변경 명령을 실행하지 않습니다.
CONTAINER NETWORK
SAFE OPERATING BOUNDARY
변경 전 설정과 출력값을 기록하고, 예상과 다른 결과가 나오면 추가 변경을 멈춘 뒤 승인된 운영 복구 절차로 되돌립니다.
BEFORE YOU START
CHECK THE BRANCH
컨테이너의 loopback은 호스트가 아니라 그 컨테이너 자신입니다.
기본 bridge는 사용자 정의 네트워크와 이름 기반 서비스 탐색 동작이 다릅니다.
컨테이너 내부 포트가 LISTEN이어도 -p/ports로 공개하지 않으면 외부에서 접근할 수 없습니다.
FOLLOW THE FLOW
먼저 호스트 자체의 DNS와 HTTPS 연결이 정상인지 확인합니다.
getent ahosts example.comcurl -I --max-time 10 https://example.com/호스트도 실패하면 Docker보다 호스트 DNS·라우팅 문제를 먼저 해결합니다.
호스트가 성공할 때만 컨테이너 namespace 비교로 이동합니다.
CONTAINER_NAME을 실제 값으로 바꿉니다.
docker inspect --format '{{json .NetworkSettings.Networks}}' CONTAINER_NAMEdocker inspect --format '{{json .HostConfig.Dns}}' CONTAINER_NAMEdocker exec CONTAINER_NAME cat /etc/resolv.conf사용자 정의 네트워크는 Docker embedded DNS 127.0.0.11을 사용할 수 있으며 외부 조회는 업스트림으로 전달됩니다.
예상한 네트워크 이름과 DNS 서버가 적용됐는지 확인합니다.
이미지에 getent나 wget이 없을 수 있으며 이를 이유로 운영 이미지에 도구를 설치하지 않습니다.
docker exec CONTAINER_NAME getent hosts SERVICE_NAMEgetent가 포함된 이미지에서 실행합니다.docker exec CONTAINER_NAME getent ahosts example.com도구가 없으면 동일 네트워크의 진단 컨테이너를 별도로 사용합니다.외부 이름만 실패하면 업스트림 DNS, 서비스 이름만 실패하면 네트워크 연결·alias를 확인합니다.
실패 범위를 외부 DNS와 컨테이너 간 서비스 탐색으로 구분합니다.
NETWORK_NAME과 CONTAINER_NAME을 실제 값으로 바꿉니다.
docker network inspect NETWORK_NAMEdocker port CONTAINER_NAMEsudo ss -lntp컨테이너가 같은 사용자 정의 네트워크에 연결됐는지, HostIp가 127.0.0.1로 제한됐는지 확인합니다.
Docker가 만드는 방화벽 규칙을 임의 삭제하지 말고 Compose 설정과 정책을 먼저 수정합니다.
네트워크·DNS·ports 설정을 수정했다면 전체 stack이 아니라 영향받는 서비스만 반영합니다.
docker compose configdocker compose up -d SERVICE_NAMEdocker exec CONTAINER_NAME getent hosts SERVICE_NAME컨테이너가 원하는 네트워크에 연결되고 DNS 조회와 실제 포트 연결이 모두 성공해야 합니다.
재발하면 daemon DNS, VPN·프록시와 호스트 방화벽을 함께 점검합니다.
PRIMARY REFERENCES
배포판과 버전에 따라 옵션·로그 위치가 다를 수 있습니다. 실행 전 서버의 --help와 로컬 매뉴얼을 함께 확인하세요.