Docker 컨테이너가 IPv6에서만 수신 중

다른 소프트웨어에서 가져오는 작업을 진행하기 위해 VM에서 테스트용 Discourse 인스턴스를 설정하려고 하고 있습니다. 저는 Docker, Discourse, Ruby 모두 초보라서 백그라운드에서 무슨 일이 일어나고 있는지 아직 잘 모릅니다. 지금까지 discourse_docker 저장소를 포크한 뒤, 여기 있는 지침에 따라 진행했습니다(클라우드 인스턴스가 아닌 제 로컬 Ubuntu VM을 사용했습니다): discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

설정을 마친 후 netstat를 확인해 보니, 제 로컬 VM의 컨테이너가 포트 80과 443이 IPv6 IP에서만 리스닝하도록 설정되어 있는 것으로 보입니다. 저는 로컬에서 IPv6를 사용하지 않으므로 Discourse 인스턴스에 접근할 수 없습니다. 이 문제를 어떻게 수정할 수 있을까요? app.yml 파일을 확인해 보았지만 바인딩 설정이 보이지 않습니다. 비슷한 문제를 겪은 사람을 검색해 보았는데, 2015년경 컨테이너 내부의 DNS 설정을 직접 변경하여 해결했다는 사례가 하나 있었습니다. 이는 아주 나쁜 아이디어™라고 생각하므로, 좀 더 깔끔한 해결책을 찾고 있습니다.

감사합니다!

리포지토리를 포크할 필요가 없을 가능성이 높습니다.

가상 호스트 설정에 문제가 있는 것 같습니다. 제가 그런 사례를 본 적이 없습니다.

이 가이드를 따르려고 저장소를 포크했습니다:

하지만 이로 인해 문제가 발생한다고 생각하지는 않습니다.
ESXi에서 Ubuntu Server의 새 설치 버전(ubuntu.com에서 다운로드)을 실행 중입니다. 모두 매우 표준적인 구성입니다.

어떤 설정에서 서비스 바인딩 방식을 결정합니까?

기본값으로 모든 IP에 바인딩됩니다.

포트 매핑에 사용되는 줄에 IP를 추가할 수 있지만, 이는 가상 머신(VM) 관련 문제일 가능성이 높습니다. Digital Ocean을 사용하고 계신가요?

컨테이너에서 임포트를 실행하는 예제가 여기에 있습니다. 링크하신 예제보다 더 나은 해결책일 가능성이 높지만(직접 확인해 보지는 않아서 틀릴 수도 있습니다).

아니요, VM을 실행하기 위해 직접 사용하는 VMware 호스트가 있습니다. IPv4를 통해 VM에 직접 접근하거나 DNS 이름으로 접근하는 데에는 문제가 없습니다. 다만, 어떤 이유에서인지 docker 서비스들(SSH 서버 같은 기본 서비스는 아닙니다)이 0.0.0.0이 아니라 :::80과 :::443에만 바인딩되고 있습니다.

자세한 정보를 제공할 수 있는 관련 로그 파일이 어딘가에 있을까요?

여기에는 컨테이너에서 가져오기(import)를 실행하는 예제들이 있습니다. 링크하신 것보다 더 나은 예제일 가능성이 높습니다(다만 직접 확인하지는 않아서 제가 틀릴 수도 있습니다).

글쎄요, 아직 가져오기(import) 단계까지는 도달하지 못했습니다. :stuck_out_tongue:
궁극적으로는 우리 사이트의 이 가져오기 스크립트를 개선하는 작업을 하고 싶습니다. 시작하는 방법에 대한 몇 가지 다른 가이드로 고생하고 있었는데, 지금은 일단 기본적인 일반 설치(plain install) 방식이 가장 좋을 것 같다고 판단했습니다.

Docker나 VM 쪽에 문제가 있는 것 같습니다. VM과 Docker 가이드를 참고해서 hello world 컨테이너부터 시작해 보세요. 이건 Discourse의 문제가 아닙니다.