[Nextcloud] OCI VM(ubuntu)에 Nextcloud AIO 설치하기

OCI에 생성한 VM을 사용해서 NextCloud를 설치하고 간단한 사용법을 알아보겠습니다. 요즘 NAS나 Webdav 대신에 NextCloud를 많이 사용하고 있다고 하길래 저도 NextCloud를 선택했습니다. 아래는 OCI VM에 설치된 Ubuntu 버전 정보입니다.

ubuntu@vm4nextcloud:~$ head -n 3 /etc/os-release
PRETTY_NAME="Ubuntu 24.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"

혹시 Nextcloud AIO를 재설치하고 계시다면 먼저 이 글을 읽어보시길 권장합니다.

  1. Swap(스왑) 메모리 설정하기(VM.Standard.E2.1.Micro 인스턴스 사용 시)
  2. 커널 파라미터(sysctl) 및 방화벽 설정하기
  3. Docker 엔진 설치하기
  4. NextCloud AIO 컨테이너 설치하기
  5. NextCloud AIO Management Console에서 초기 설정하기

1. Swap(스왑) 메모리 설정하기

OCI Free Tier에서 제공하는 VM.Standard.E2.1.Micro 인스턴스의 사양(1 core OCPU, 1 GB memory, 0.48 Gbps network bandwidth)은 Nextcloud AIO를 원활하게 돌리기에는 매우 빠듯한 사양입니다. 1GB RAM 환경에서 Nextcloud를 안정적으로 돌리기 위해서는 Swap(스왑) 메모리 설정이 필수입니다. 참고로 OCI에서 제공하는 VM.Standard.A1.Flex 인스턴스에(1 core OCPU, 6 GB memory, 1 Gbps network bandwidth) Nextcloud AIO를 설치할 것을 추천드리나 춘천 AD의 용량부족으로 2026.1.26 현재 인스턴스를 생성할 수가 없습니다.

# 1. 인스턴스 초기 스왑 메모리는 0Byte로 설정되어 있습니다.
ubuntu@vm4nextcloud:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           956Mi       390Mi        73Mi       5.0Mi       667Mi       566Mi
Swap:             0B          0B          0B

# 2. 4GB 크기의 빈 파일 생성 및 권한 설정 (시간이 조금 걸릴 수 있습니다)
ubuntu@vm4nextcloud:~$ sudo fallocate -l 4G /swapfile
ubuntu@vm4nextcloud:~$ sudo chmod 600 /swapfile
ubuntu@vm4nextcloud:~$ ls -l /swapfile
-rw------- 1 root root 4294967296 Jan 26 12:19 /swapfile

# 3. 파일을 스왑 공간으로 변환
ubuntu@vm4nextcloud:~$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=9d6d47e6-dbe4-41e2-b225-124923dbb367

# 4. 스왑 활성화
ubuntu@vm4nextcloud:~$ sudo swapon /swapfile

# 5. /etc/fstab 파일 끝에 스왑 설정 추가
ubuntu@vm4nextcloud:~$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
/swapfile none swap sw 0 0

# 6. 스왑 설정 확인(4GB로 스왑 메모리 설정)
ubuntu@vm4nextcloud:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           956Mi       381Mi       204Mi       5.0Mi       542Mi       575Mi
Swap:          4.0Gi          0B       4.0Gi

2. 커널 파라미터(sysctl) 및 방화벽 설정하기

자세한 내용은 Docker 공식 홈페이지의 Packet filtering and firewalls 페이지를 참고하세요.

  1. 도커를 운영할 때 커널 파라미터에 IP 포워딩과 브릿지 패킷 필터를 설정해야 합니다.
    • 도커 컨테이너는 가상 네트워크 인터페이스를 통해 호스트와는 독립된 사설 IP 주소를 할당받습니다. 이로 인해 외부 망과 컨테이너 네트워크 간의 접점이 없으므로, 리눅스 커널의 IP Forwarding 기능을 활성화하여 호스트가 두 네트워크 사이의 패킷을 중계하는 가상 라우터 역할을 하도록 설정해야 합니다.
    • 도커 컨테이너는 기본적으로 docker0 브릿지 인터페이스를 통해 통신합니다. 리눅스에서 브릿지(Bridge)는 2계층(L2)에서 동작하는 반면, iptables(방화벽)는 3계층(L3)에서 동작하므로, 브릿지를 통과하는 패킷은 일반적인 방화벽 규칙을 무시하고 지나칠 수 있습니다. 이를 해결하기 위해 br_netfilter 모듈을 사용하여 브릿지 패킷을 L3 계층으로 가로채(Hooking), iptables 규칙이 정상적으로 적용되도록 설정해야 합니다.
    # 브릿지 패킷 필터를 사용하려면, 먼저 br_netfilter 모듈을 설치해야 합니다.
    ubuntu@vm4nextcloud:~$ lsmod | grep br_netfilter
    ubuntu@vm4nextcloud:~$ sudo modprobe br_netfilter
    ubuntu@vm4nextcloud:~$ lsmod | grep br_netfilter
    br_netfilter           32768  0
    bridge                421888  1 br_netfilter
    
    # 재부팅 후에도 br_netfilter 모듈이 자동 로드되게 설정합니다.(필수)
    ubuntu@vm4nextcloud:~$ sudo tee /etc/modules-load.d/docker.conf <<EOF
    br_netfilter
    EOF
    
    # 도커 컨테이너 사용에 필요한 커널 파라미터 설정 파일을 생성합니다.
    ubuntu@vm4nextcloud:~$ sudo tee /etc/sysctl.d/docker.conf <<EOF
    net.ipv4.ip_forward = 1
    net.ipv6.conf.all.forwarding = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    EOF
    
    # 즉시 /etc/sysctl.d/docker.conf 파일의 설정사항을 커널 파라미터에 적용합니다.
    ubuntu@vm4nextcloud:~$ sudo sysctl --system
    ....
    net.ipv4.ip_forward = 1
    net.ipv6.conf.all.forwarding = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    ....
    
  2. ufw가 설치되어 있다면, 기본적으로 포워딩 정책이 DROP으로 되어 있어 이를 허용해줘야 합니다.
    # 방화벽 정책 확인 및 포워딩 정책을 ACCEPT로 변경합니다.
    ubuntu@vm4nextcloud:~$ cat /etc/default/ufw | grep DEFAULT_FORWARD_POLICY
    DEFAULT_FORWARD_POLICY="DROP"
    ubuntu@vm4nextcloud:~$ sudo sed -i "s|DEFAULT_FORWARD_POLICY=\"DROP\"|DEFAULT_FORWARD_POLICY=\"ACCEPT\"|g" /etc/default/ufw
    
    # ufw의 상태가 inactive라면 활성화시킵니다.
    ubuntu@vm4nextcloud:~$ sudo ufw status
    Status: inactive
    ubuntu@vm4nextcloud:~$ sudo ufw enable
    Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
    Firewall is active and enabled on system startup
    
    # /etc/default/ufw 파일의 변경사항(ufw 정책)을 반영합니다.
    ubuntu@vm4nextcloud:~$ sudo ufw reload
    
  3. ufw가 설치되어 있지 않다면, iptables의 FORWARD 체인의 첫번째 REJECT 규칙을 삭제합니다.
    ubuntu@vm4nextcloud:~$ sudo iptables -L FORWARD
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    ubuntu@vm4nextcloud:~$ sudo iptables -D FORWARD 1
    ubuntu@vm4nextcloud:~$ sudo iptables -L FORWARD
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    

3. Docker 엔진 설치하기

Docker 공식 홈페이지의 Install Docker Engine on Ubuntu 페이지를 참고하여 Docker 설치를 진행했습니다.

  1. 기존 충돌 패키지 제거:
    리눅스 배포판이 기본적으로 제공한 unofficial Docker packages들을 제거하여 패키간 충돌 가능성을 제거합니다.
    ubuntu@vm4nextcloud:~$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
    
  2. 시스템 업데이트 및 필수 도구 설치:
    패키지 매니저가 HTTPS를 통해 저장소에 안전하게 접근할 수 있도록 필요한 도구들을 설치합니다.
    ubuntu@vm4nextcloud:~$ sudo apt update
    ubuntu@vm4nextcloud:~$ sudo apt-get install ca-certificates curl gnupg
    
  3. Docker 공식 GPG 키 추가:
    Docker 패키지의 무결성을 검증하기 위한 보안 키를 등록합니다.
    ubuntu@vm4nextcloud:~$ sudo install -m 0755 -d /etc/apt/keyrings
    
    # 공식 가이드에서는 텍스트 형태의 ASCII-armored(.asc) 키 파일을 그대로 사용하지만, 
    # 저는 보안 및 패키지 매니저와의 호환성을 위해 gpg --dearmor 과정을 거쳐 바이너리 형식(.gpg)으로 변환하여 적용했습니다.
    ubuntu@vm4nextcloud:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
    # 모든 사용자가 /etc/apt/keyrings/docker.gpg 파일의 읽기 권한이 있도록 보장(umask 영향 제거)
    ubuntu@vm4nextcloud:~$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
    ubuntu@vm4nextcloud:~$ ls -l /etc/apt/keyrings/docker.gpg
    -rw-r--r-- 1 root root 2760 Jan 26 12:41 /etc/apt/keyrings/docker.gpg
    
  4. Docker 저장소(Repository) 등록:
    Ubuntu의 기본 저장소가 아닌, Docker 공식 최신 패키지 저장소를 시스템에 등록합니다.
    # 공식 사이트의 최신 DEB822(.sources) 방식으로 저장소를 등록했습니다.
    ubuntu@vm4nextcloud:~$ sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
    Types: deb
    URIs: https://download.docker.com/linux/ubuntu
    Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
    Components: stable
    Signed-By: /etc/apt/keyrings/docker.gpg
    EOF
    ubuntu@vm4nextcloud:~$ cat /etc/apt/sources.list.d/docker.sources
    Types: deb
    URIs: https://download.docker.com/linux/ubuntu
    Suites: noble
    Components: stable
    Signed-By: /etc/apt/keyrings/docker.gpg
    
    # 저장소 정보 갱신
    ubuntu@vm4nextcloud:~$ sudo apt update
    
  5. Docker 엔진 및 관련 패키지 설치:
    이제 실제 도커 엔진과 컨테이너 런타임, 플러그인을 설치합니다.
    ubuntu@vm4nextcloud:~$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
    # 서비스 시작 및 자동 실행 설정
    ubuntu@vm4nextcloud:~$ sudo systemctl enable --now docker
    
  6. 서비스 활성화 및 권한 설정 (중요):
    매번 sudo를 붙이는 불편함을 없애기 위해 현재 사용자를 docker 그룹에 추가합니다.
    # Docker 엔진 설치가 완료되면 사용자 그룹에 docker가 추가됨
    ubuntu@vm4nextcloud:~$ cat /etc/group | grep docker
    docker:x:989:
    
    # 현재 사용자를 docker 그룹에 추가
    # root 사용자나 docker 그룹원만이 도커 컨테이너를 관리할 수 있습니다 
    ubuntu@vm4nextcloud:~$ sudo usermod -aG docker $USER
    ubuntu@vm4nextcloud:~$ cat /etc/group | grep docker
    docker:x:989:ubuntu
    
    #현재 터미널 창의 그룹 권한을 즉시 갱신
    ubuntu@vm4nextcloud:~$ newgrp docker
    
  7. 최종 설치 확인 (Hello World):
    모든 설정이 잘 되었는지 확인하기 위해 테스트용 컨테이너를 실행합니다.
    # 현재 사용자를 docker 그룹에 추가
    ubuntu@vm4nextcloud:~$ docker run hello-world
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    17eec7bbc9d7: Pull complete
    Digest: sha256:05813aedc15fb7b4d732e1be879d3252c1c9c25d885824f6295cab4538cb85cd
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
     https://hub.docker.com/
    
    For more examples and ideas, visit:
     https://docs.docker.com/get-started/
    
  8. 도커 컨테이너 확인 및 삭제
    ubuntu@vm4nextcloud:~$ docker ps -a
    CONTAINER ID   IMAGE         COMMAND    CREATED              STATUS                      PORTS     NAMES
    93478a2da7fa   hello-world   "/hello"   4 minutes ago        Exited (0) 4 minutes ago              cranky_chaum
    
    ubuntu@vm4nextcloud:~$ docker remove 93478a2da7fa
    93478a2da7fa
    
  9. 참고로 docker가 사용하는 디렉토리 구조를 살짝 알아보겠습니다.
    # docker info 명령어는 설치된 도커의 기본 정보를 출력합니다.
    ubuntu@vm4nextcloud:~$ docker info | grep "Docker Root Dir"
     Docker Root Dir: /var/lib/docker
    
    # root 사용자만 모든 권한을 가지고 있고, 그룹 사용자는 실행권한만 있고 읽기 권한도 없습니다.
    ubuntu@vm4nextcloud:~$ ls -ld /var/lib/docker
    drwx--x--- 12 root root 4096 Jan 25 13:24 /var/lib/docker
    
    # /var/lib/docker의 하위 디렉토리 구조입니다. 
    # 컨테이너 생성 시 별도 저장볼륨을 설정하지 않으면 volumes 디렉토리에 사용자 데이터가 저장됩니다. 
    ubuntu@vm4nextcloud:~$ sudo ls -l /var/lib/docker
    total 44
    drwx--x--x 3 root root 4096 Jan 25 13:24 buildkit     ▶ 차세대 빌드 엔진인 BuildKit의 캐시 데이터, docker build 속도를 높이기 위한 임시 파일 및 캐시 저장
    drwx--x--- 3 root root 4096 Jan 25 13:46 containers   ▶ 컨테이너 설정 파일(config.v2.json)과 실행 로그가 기록
    -rw------- 1 root root   36 Jan 25 13:24 engine-id    ▶ 현재 도커 엔진의 고유 식별 ID
    drwx------ 3 root root 4096 Jan 25 13:24 image        ▶ 실제 데이터는 overlay2에 있고, 여기는 이미지 간의 계층 구조 정보를 관리
    drwxr-x--- 3 root root 4096 Jan 25 13:24 network      ▶ 도커 Bridge 및 컨테이너 간 통신을 위한 가상 네트워크 환경 데이터 저장
    drwx--x--- 7 root root 4096 Jan 25 13:46 overlay2     ▶ 도커의 저장 엔진으로, 이미지와 컨테이너의 변경 사항이 물리적으로 쌓이는 곳(가장 용량을 많이 차지함)
    drwx------ 3 root root 4096 Jan 25 13:24 plugins      ▶ 도커 확장 기능을 위한 플러그인
    drwx------ 2 root root 4096 Jan 25 13:24 runtimes     ▶ 도커 실행 엔진 정보
    drwx------ 2 root root 4096 Jan 25 13:24 swarm        ▶ 도커의 오케스트레이션 도구인 도커 스웜(Docker Swarm) 모드를 활성화했을 때 사용하는 저장 공간
    drwx------ 2 root root 4096 Jan 25 13:43 tmp          ▶ 이미지 다운로드(Pull) 시 사용하는 임시 작업 공간, 작업이 끝나면 보통 비워짐
    drwx-----x 2 root root 4096 Jan 25 13:24 volumes      ▶ 사용자 정의 볼륨(-v) 데이터 저장, 컨테이너가 삭제되어도 보존해야 할 실제 데이터 저장
    

4. NextCloud AIO 컨테이너 설치하기

NextCloud AIO(All-In-One)을 사용해서 VM에 NextCloud를 설치하겠습니다.

  1. 사용할 도메인과 공인IP주소 연결하기(A 레코드 등록):
    저는 호스팅케알를 통해 도메인을 등록/관리하고 있습니다. 아래와 같이 사용할 도메인을 OCI에서 생성한 VM의 공인IP주소와 연결하였습니다.
    DNS서버 A 레코드 등록

    # 사용할 도메인과 공인IP주소 연결되었는지 확인합니다.
    # 등록된 DNS 레코드가 전 세계 네임서버로 전파(Propagation)되는 데 약 5분에서 1시간 정도 소요될 수 있습니다. 
    ubuntu@vm4nextcloud:~$ nslookup nextcloud.yesxyz.kr
    Server:         127.0.0.53
    Address:        127.0.0.53#53
    
    Non-authoritative answer:
    Name:   nextcloud.yesxyz.kr
    Address: 168.107.13.218
    
  2. OCI에서 생성한 VM의 Inbound 포트 오픈(80, 443, 8080, 8443):
    Nextcloud 서비스 이용 및 AIO 관리 콘솔(Management Console)에 접근하기 위해서는 OCI 보안 목록(Security Lists)의 Ingress Rules에서 80/tcp, 443/tcp, 8080/tcp, 8443/tcp 포트를 오픈해야 합니다.
    OCI 보안 목록(Security Lists)의 Ingress Rules

    • 80/TCP: HTTP 접속 및 SSL 인증서 발급(Let’s Encrypt)
    • 443/TCP: 실제 Nextcloud 서비스 접속 (HTTPS), nextcloud-aio-domaincheck 컨테이너가 점유
    • 8080/TCP: 초기 설정 및 관리 도구 (Self-signed 인증서 사용, https 접속)
    • 8443/TCP: 보안 적용된 관리 도구 (Let’s Encrypt 인증서, https 접속)
  3. 도커를 사용해서 NextCloud AIO 설치(NextCloud AIO의 깃허브 readme.md 파일 참고)
    # NextCloud가 사용할 디렉토리를 생성합니다.
    # 소유그룹으로 docker를 설정함으로써 docker그룹에 속한 사용자는 sudo없이 /mnt/nextcloud_data 디렉토리의 내용을 확인할 수 있습니다.
    ubuntu@vm4nextcloud:~$ sudo install -o root -g docker -m 750 -d /mnt/nextcloud_data
    ubuntu@vm4nextcloud:~$ ls -ld /mnt/nextcloud_data
    drwxr-x--- 2 root docker 4096 Jan 26 01:58 /mnt/nextcloud_data
    
    # GHCR는 GitHub Container Registry의 약자로, 
    # 앞서 등록한 도커 저장소가 아니라 깃허브 저장소에서 NextCloud 이미지를 다운로드하도록 설정했습니다.
    # 사내 내부망(Local Network)이나 VPN 환경에서 도메인 없이 IP 주소로만 Nextcloud를 사용하시려면
    # -e SKIP_DOMAIN_CHECK=true 옵션이 필수입니다.
    ubuntu@vm4nextcloud:~$ sudo docker run -d \
      --init \
      --sig-proxy=false \
      --name nextcloud-aio-mastercontainer \
      --restart always \
      --publish 80:80 \
      --publish 8080:8080 \
      --publish 8443:8443 \
      --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
      --volume /var/run/docker.sock:/var/run/docker.sock:ro \
      -e NEXTCLOUD_DATADIR="/mnt/nextcloud_data" \
      -e TZ="Asia/Seoul" \
      ghcr.io/nextcloud-releases/all-in-one:latest
    
    #다른 세션에서 아래 명령어로 설치로그를 확인할 수 있습니다.
    ubuntu@vm4nextcloud:~$ sudo docker logs -f nextcloud-aio-mastercontainer
    
    # NextCloud AIO 컨테이너(nextcloud-aio-mastercontainer)가 정상적으로 설치/작동하고 있는지 확인합니다.
    ubuntu@vm4nextcloud:~$ docker ps
    CONTAINER ID   IMAGE                                          COMMAND       CREATED          STATUS                    PORTS                                                                                                                                     NAMES
    bd1aac6e5466   ghcr.io/nextcloud-releases/all-in-one:latest   "/start.sh"   45 seconds ago   Up 44 seconds (healthy)   0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, [::]:8443->8443/tcp, 9000/tcp   nextcloud-aio-mastercontainer
    

5. NextCloud AIO Management Console에서 초기 설정하기

  1. All-in-One setup 화면 접속(마스터컨테이너 페이지):
    https://IP주소:8080/으로 접속한 후 고급 -> IP주소(안전하지 않음)(으)로 이동합니다.
  2. 위 화면에 보이는 Passphrase를 복사한 후 Open Nextcloud AIO login 버튼을 클릭합니다. Nextcloud AIO Login 화면에서 앞서 복사한 Passphrase를 붙여넣기한 다음 Log in 버튼을 클릭합니다.
  3. 사용할 도메인을 입력하고(nextcloud.yesxyz.kr), Submit domain 버튼을 클릭합니다.
    Submit domain

    # 443/tcp 포트를 사용하는 nextcloud-aio-domaincheck 컨테이너가 생성됩니다.
    ubuntu@vm4nextcloud:~$ docker ps
    CONTAINER ID   IMAGE                                               COMMAND       CREATED          STATUS                    PORTS                                                                                                                                     NAMES
    a9492dfd981b   ghcr.io/nextcloud-releases/aio-domaincheck:latest   "/start.sh"   10 minutes ago   Up 10 minutes (healthy)   0.0.0.0:443->443/tcp, [::]:443->443/tcp                                                                                                   nextcloud-aio-domaincheck
    bd1aac6e5466   ghcr.io/nextcloud-releases/all-in-one:latest        "/start.sh"   14 minutes ago   Up 14 minutes (healthy)   0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, [::]:8443->8443/tcp, 9000/tcp   nextcloud-aio-mastercontainer
    
  4. ①Asia/Seoul 설정된 Submit timezone 버튼을 클릭하고, ②설치하고 싶은 Optional containers을 체크한 후 Save changes 버튼을 클릭한 다음, ③Download and start containers 버튼을 클릭하여 추가 컨테이너의 설치를 시작합니다. OCI의 Free Tier VM 성능을 고려하여 저는 Optional Containers를 선택하지 않고 설치를 진행하였습니다. 나중에 Optional Containers를 추가로 설치할 수 있다고 합니다.
    Download and start containers

    • Collabora (Cloud Office): 브라우저에서 엑셀, 워드 파일을 바로 편집하는 기능입니다. (가장 자원을 많이 차지하는 주범입니다.)
    • Imaginary: 이미지 썸네일을 생성하는 도구입니다. 없어도 기본 기능으로 작동은 하지만 속도가 약간 느릴 수 있습니다.
    • Nextcloud Talk: 화상 회의 및 채팅 기능입니다. (고성능 통신을 위해 자원을 꽤 먹습니다.)
    • Whiteboard: 여러 명의 사용자가 동시에 그림을 그리거나 아이디어를 시각적으로 정리할 수 있는 ‘온라인 캔버스’ 기능을 제공합니다.
  5. 추가 컨테이너들의 설치가 완료되면 아래와 같은 화면이 출력됩니다. 모두 정상적으로 실행되는지 확인합니다. 저의 경우는 Apache와 Nextcloud가 Stopped 상태이기 때문에 Stop containers 버튼을 클릭한 후, Start and update containers 버튼을 클릭하여 업데이트를 진행하였습니다.
  6. 모든 컨테이너들의 상태가 정상이라면 Initial Nextcloud password를 복사한 후, Open your Nextcloud ↗ 버튼을 클릭합니다.

    # 설치되는 컨테이너들을 확인합니다. 
    # domaincheck 컨테이너가 Exited (143)인 것은 자기 할 일(도메인 확인)을 다 하고 정상적으로 종료된 것입니다.
    ubuntu@vm4nextcloud:~$ sudo docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
    CONTAINER ID   NAMES                           STATUS
    b93048c92636   nextcloud-aio-apache            Up 8 minutes (healthy)
    5635fc6b8d5d   nextcloud-aio-nextcloud         Up 9 minutes (healthy)
    97df8f405609   nextcloud-aio-redis             Up 12 minutes (healthy)
    c87a490f0f55   nextcloud-aio-database          Up 12 minutes (healthy)
    e14b17b3880a   nextcloud-aio-notify-push       Up 12 minutes (healthy)
    4c8be782b0ea   nextcloud-aio-domaincheck       Exited (143) 27 minutes ago
    35ed81fdde9e   nextcloud-aio-mastercontainer   Up 46 minutes (healthy)
    
  7. https://도메인명/ 사이트로 연결되며, 사용자(admin)/비밀번호(위에서 복사한 값)를 입력한 후 로그인 합니다.
  8. 보안을 강화하기 위해 별도 admin 사용자를 생성하고, 기존 admin 계정을 비활성화합니다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다