Nextcloud 컨테이너에 액세스할 수 없습니다.

Nextcloud 컨테이너에 액세스할 수 없습니다.

https, mysql 및 docker-compose를 사용하여 debian 10 VM에서 nextcloud 설정을 만들려고 하는데 액세스할 때https://cloud.example.org내 브라우저에 액세스할 수 없다고 표시됩니다. 링크 타고 가보면https://example.org이 페이지는 다음과 같습니다.

예시 도메인

이 필드는 문서의 예시에 사용됩니다. 사전 조정이나 허가 없이 귀하의 문헌에 이 도메인 이름을 사용할 수 있습니다.

이것은 내 docker-compose.yml 파일입니다.

version: '3'

services:
    nginx-proxy:
        image: jwilder/nginx-proxy:alpine
        labels:
            - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true"
        container_name: nextcloud-proxy
        networks:
            - nextcloud_network
        ports:
            - 80:80
            - 443:443
        volumes:
            - /home/dev/nextcloud-data/nginx/vhost.d:/etc/nginx/vhost.d:rw
            - /home/dev/nextcloud-data/nginx/html:/usr/share/nginx/html:rw
            - /home/dev/nextcloud-data/nginx/certs:/etc/nginx/certs:ro
            - /etc/localtime:/etc/localtime:ro
            - /var/run/docker.sock:/tmp/docker.sock:ro

        restart: unless-stopped

    letsencrypt:
        image: jrcs/letsencrypt-nginx-proxy-companion
        container_name: nextcloud-letsencrypt
        depends_on:
            - nginx-proxy
        networks:
            - nextcloud_network
        volumes:
            - /home/dev/nextcloud-data/nginx/vhost.d:/etc/nginx/vhost.d:rw
            - /home/dev/nextcloud-data/nginx/html:/usr/share/nginx/html:rw
            - /home/dev/nextcloud-data/nginx/certs:/etc/nginx/certs:rw
            - /etc/localtime:/etc/localtime:ro
            - /var/run/docker.sock:/var/run/docker.sock:ro
        restart: unless-stopped

    mysql:
        image: mariadb
        container_name: nextcloud-mysql
        networks:
            - nextcloud_network
        volumes:
            - /home/dev/nextcloud-data/database/mysql:/var/lib/mysql
            - /etc/localtime:/etc/localtime:ro
        environment:
            - MYSQL_ROOT_PASSWORD=mysql_root_testpassword
            - MYSQL_PASSOWRD=nexcloud_testp@ssw0rd
            - MYSQL_DATABASE=nextcloud
            - MYSQL_USER=nextcloud
        restart: unless-stopped

    nextcloud-app:
        image: nextcloud:latest
        container_name: nextcloud-app
        networks:
            - nextcloud_network
        depends_on:
            - letsencrypt
            - nginx-proxy
            - mysql
        volumes:
            - /home/dev/nextcloud-data/data/html:/var/www/html
            - /home/dev/nextcloud-data/data/config:/var/www/html/config
            - /home/dev/nextcloud-data/data/data:/var/www/html/data
            - /home/dev/nextcloud-data/data/themes:/var/www/html/themes
            - /etc/localtime:/etc/localtime:ro
        environment:
            - VIRTUAL_HOST=cloud.example.org
            - LETSENCRYPT_HOST=cloud.example.org
            - [email protected]
        restart: unless-stopped

networks:
    nextcloud_network:

이 명령을 실행하면:

curl -I https://example.org

출력은 다음과 같습니다

HTTP/2 200
content-encoding: gzip
accept-ranges: bytes
age: 427989
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Tue, 21 Sep 2021 18:33:43 GMT
etag: "3147526947"
expires: Tue, 28 Sep 2021 18:33:43 GMT
last-modified: Thu, 17 Oct 2019 07:18:26 GMT
server: ECS (dcb/7EEF)
x-cache: HIT
content-length: 648

명령용

curl -I https://cloud.example.org

출력은 다음과 같습니다

curl: (6) Could not resolve host: cloud.example.org

답변1

URL은 인간에게만 존재하고 기계는 IP 주소를 사용합니다. 브라우저에서 해당 주소를 가리키면 시스템은 실제로 DNS 조회를 수행하여 해당 IP 주소를 찾아 연결합니다.https://example.com문서화 목적으로 IANA에서 제공하는 웹 페이지로, 웹 서비스를 실행하는 실제 시스템이 있고, 실제 IP 주소가 있으며, 이에 액세스할 수 있는 해당 DNS 항목이 있습니다.

cloud.example.com에 접근할 수 없는 이유는 단순히 해당 DNS 이름을 통해 액세스할 수 있는 서비스를 누구도 제공하지 않기 때문입니다. 따라서 해당 IP 주소와 DNS 항목이 없습니다. IANA는 문서화 목적으로 example.com을 보유하고 있기 때문에 해당 하위 도메인(예: cloud.example.com)은 교육 자료의 예로 자주 사용됩니다.

테스트를 위해 이 DNS 이름을 사용하려면 자체 인트라넷에 서버를 설정하여 일부 서비스를 제공할 수 있습니다. 내부 DNS 서버를 설정하고 적절한 항목을 만들 수도 있고, 액세스하려는 시스템의 호스트 파일에 이름과 해당(개인) IP 주소를 간단히 추가할 수도 있습니다.

관련 정보