Docker를 사용하여 Nextcloud 서비스를 구현합니다. 이를 위해 공식 nextcloud-apache 이미지, Nginx 역방향 프록시, certbot 및 MariaDB를 사용합니다. 특별한 것은 없습니다.
내 도커 인스턴스는 스웜 모드에서 실행됩니다. 모든 컨테이너는 각 서비스, 표준 오버레이 네트워크에 대해 하나의 복제본만 있는 동일한 호스트에서 관리자와 함께 실행됩니다. 떼는 표준 작성 파일을 사용하여 시작됩니다.
내 설정은 어젯밤에 이상하게 고장이 나기 전까지 여러 달 동안 안정적으로 실행되었습니다. 내가 보기에는 OS(Ubuntu Server LTS), Docker-CE 또는 이미지에 대한 업데이트나 다시 시작이 전혀 없었습니다. (저는 모든 업데이트를 정기적으로 수동으로 수행하지만 확실히 작업을 수행하지 않았습니다. 어젯밤 오전 4시). Nextcloud 컨테이너의 원인을 추적했습니다(그러나 이것이 Docker 문제라고 생각하므로 여기에 질문이 있습니다...).
Nginx 역방향 프록시에 대한 로그에는 다음 줄이 표시됩니다.
2022/04/06 20:16:45 [error] 10#10: *3 nextcloud-app could not be resolved (3: Host not found), client: 10.135.40.1, server: <redacted>, request: "GET / HTTP/1.1", host: "<redacted>"
Nginx는 백엔드 서버를 확인할 수 없으며 클라이언트에 502/잘못된 게이트웨이를 다시 발생시킵니다.
확인해 보니 Nextcloud 컨테이너("nextcloud-app")의 호스트 이름이 실제로 docker-internal DNS(각 컨테이너의 127.0.0.11에서 사용 가능)에 등록되어 있지 않습니다. 어떤 컨테이너에나 로그인하여 DNS 요청을 실행할 수 있습니다( after apt-get update && apt-get install iputils-ping dnsutils
컨테이너 내부에서 실행한 후). "nextcloud-app"이라는 이름은 어디에서도 확인되지 않습니다. 예:
root@nextcloud-app:/var/www/html# nslookup nextcloud-app
Server: 127.0.0.11
Address: 127.0.0.11#53
** server can't find nextcloud-app: NXDOMAIN
다른 모든 컨테이너 이름은 정상적으로 확인됩니다. 외부 주소 확인도 작동합니다. "nextcloud-app"은오직확인할 수 없는 컨테이너 이름입니다.
그러나 나는~할 수 있다docker-internal IP 주소를 직접 사용하여 nextcloud-app 컨테이너와 ping을 수행합니다. 연결은 있지만 DNS 확인만 실패합니다.
나는 이것을 더 이상 디버깅하는 방법을 모른다. 나는 일주일 동안 compose.yml 파일을 건드리지 않았습니다. 내가 아는 한, 아무것도 변하지 않았습니다. 그러나 설정이 밤새 작동을 멈췄습니다.
Nextcloud 컨테이너가 Docker 내부 DNS에 자체 호스트 이름을 등록하도록 하려면 어떻게 해야 합니까? 어떤 제안이라도 감사하겠습니다.
답변1
해결책을 찾았습니다. 이 답변은 미래에 같은 문제에 직면하게 될 불쌍한 사람을 위한 것입니다.
결국 도커 문제가 아니었음이 밝혀졌습니다. Nextcloud는 밤에 유지 관리 모드로 전환되었습니다(아직 알려지지 않은 이유로 다음에 조사해야 함). 어떻게 든 Nextcloud 도커 이미지는 유지 관리 모드에 있을 때 Docker의 DNS에 등록할 수 없으며(이미지의 버그로 인해?) 상황이 교착 상태에 빠졌습니다. DNS 확인이 없고 역방향 프록시를 통해 Nextcloud에 액세스할 수 없습니다. --> Nextcloud를 알지 못함 유지 관리 모드에 있습니다 --> 영원히 유지 관리 모드로 유지되며 DNS 확인이 없습니다...
Nextcloud가 유지 관리 모드에 있는지 확인하려고 생각만 했다면 디버깅과 고민에 소요되는 몇 시간을 절약할 수 있었을 것입니다. Nextcloud를 유지 관리 모드에서 해제하는 것은 몇 분 밖에 걸리지 않았습니다. 지금은 좀 바보 같은 느낌이에요. ;-)