티스토리 뷰

반응형

Docker를 이용한 Nextcloud 실행

Nextcloud

Nextcloud란?

Nextcloud는 파일 호스팅 서비스를 만들고 사용하기 위한 클라이언트-서버 소프트웨어로, Dropbox와 기능적으로 유사합니다. 하지만 Dropbox와는 달리 Nextcloud는 사내 구축형 파일 스토리지 호스팅을 제공하지 않습니다.

Nextcloud를 통해 학교, Dropbox 또는 집에 있는 NAS에서 FTP 드라이브의 기존 데이터에 액세스하고 동기화하고 공유할 수 있습니다.

Nextcloud는 무료 오픈 소스입니다.


wonderfall/nextcloud

Nextcloud의 실행을 위해 DockerHub의 wonderfall/nextcloud 이미지를 사용합니다.

DockerHub wonderfall/nextcloud : https://hub.docker.com/r/wonderfall/nextcloud/

이 이미지는 공식 이미지가 아닌, 개인이 만든 이미지이기 때문에 별도의 지원은 없습니다.

특징:

  • Based on Alpine Linux.

  • Bundled with nginx and PHP 7.x (wonderfall/nginx-php image).

  • Automatic installation using environment variables.

  • Package integrity (SHA512) and authenticity (PGP) checked during building process.

  • Data and apps persistence.

  • OPCache (opcocde), APCu (local) installed and configured.

  • system cron task running.

  • MySQL, PostgreSQL (server not built-in) and sqlite3 support.

  • Redis, FTP, SMB, LDAP, IMAP support.

  • GNU Libiconv for php iconv extension (avoiding errors with some apps).

  • No root processes. Never.

  • Environment variables provided (see below).

태그:

  • latest : latest stable version.

  • 15.0 : latest 15.0.x version (stable)

  • 13.0 : latest 13.0.x version (oldstable)

  • daily : latest code (daily build).


Nextcloud 실행

실행 전 준비사항

이 단계는 최초 한 번만 실행해주면 됩니다.

# Docker 이미지 다운로드
docker pull wonderfall/nextcloud:15 && docker pull mariadb:10

# 볼륨 저장소 생성
sudo mkdir -p /docker/nextcloud/db
sudo mkdir -p /docker/nextcloud/data
sudo mkdir -p /docker/nextcloud/config
sudo mkdir -p /docker/nextcloud/apps
sudo mkdir -p /docker/nextcloud/themes
sudo chown -R hyper:hyper /docker/nextcloud

이제 Docker 또는 Docker Compose로 Nextcloud를 실행합니다.

Nextcloud는 trusted_domains에 정의되지 않은 주소로의 접근을 허용하지 않는다. IP주소로 접근하고 싶을 경우, trusted_domains에 해당 IP주소를 추가해야 합니다. nextcloud 컨테이너의 DOMAIN 환경변수를 설정하면 해당 값이 자동으로 trusted_domains에 설정됩니다. 여기에서는 localhost로 설정합니다.


Docker로 Nextcloud 실행

docker 커맨드로 Nextcloud를 실행합니다.

/data 디렉터리를 볼륨으로 설정했기 때문에 컨테이너를 제거하고 다시 실행해도 데이터가 유지됩니다.

포트는 8888번을 사용합니다.

# mariadb 실행 docker run -d --name db_nextcloud \ -v /docker/nextcloud/db:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=roothyper \ -e MYSQL_DATABASE=nextcloud \ -e MYSQL_USER=nextcloud \ -e MYSQL_PASSWORD=hyper \ mariadb:10 # nextcloud 실행 docker run -d --name nextcloud \ --link db_nextcloud:db_nextcloud \ -v /docker/nextcloud/data:/data \ -v /docker/nextcloud/config:/config \ -v /docker/nextcloud/apps:/apps2 \ -v /docker/nextcloud/themes:/nextcloud/themes \ -e UID=1000 -e GID=1000 \ -e UPLOAD_MAX_SIZE=10G \ -e APC_SHM_SIZE=128M \ -e OPCACHE_MEM_SIZE=128 \ -e CRON_PERIOD=15m \ -e TZ=Etc/UTC \ -e ADMIN_USER=hyper \ -e ADMIN_PASSWORD=hyper \ -e DOMAIN=localhost \ -e DB_TYPE=mysql \ -e DB_NAME=nextcloud \ -e DB_USER=nextcloud \ -e DB_PASSWORD=hyper \ -e DB_HOST=db_nextcloud \ -p 8888:8888 \ wonderfall/nextcloud:15


Docker Compose로 Nextcloud 실행

Nextcloud를 실행하기 위한 docker-compose.yaml 파일을 작성합니다.

/data 디렉터리를 볼륨으로 설정했기 때문에 컨테이너를 제거하고 다시 실행해도 데이터가 유지됩니다.

# docker-compose.yaml 파일 작성
cd /docker/nextcloud
vi docker-compose.yaml

docker-compose.yaml 파일의 내용은 다음과 같습니다.

version: '2' networks: nextcloud_network: external: false services: nextcloud: image: wonderfall/nextcloud:15 container_name: nextcloud depends_on: - db_nextcloud # If using MySQL # - solr # If using Nextant # - redis # If using Redis environment: - UID=1000 - GID=1000 - UPLOAD_MAX_SIZE=10G - APC_SHM_SIZE=128M - OPCACHE_MEM_SIZE=128 - CRON_PERIOD=15m - TZ=Asia/Seoul - ADMIN_USER=hyper # Don't set to configure through browser - ADMIN_PASSWORD=hyper # Don't set to configure through browser - DOMAIN=localhost - DB_TYPE=mysql - DB_NAME=nextcloud - DB_USER=nextcloud - DB_PASSWORD=hyper - DB_HOST=db_nextcloud ports: - "8888:8888" volumes: - /docker/nextcloud/data:/data - /docker/nextcloud/config:/config - /docker/nextcloud/apps:/apps2 - /docker/nextcloud/themes:/nextcloud/themes networks: - nextcloud_network # If using MySQL db_nextcloud: image: mariadb:10 container_name: db_nextcloud volumes: - /docker/nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=hyper - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=hyper networks: - nextcloud_network # # If using Nextant # solr: # image: solr:6-alpine # container_name: solr # volumes: # - /docker/nextcloud/solr:/opt/solr/server/solr/mycores # entrypoint: # - docker-entrypoint.sh # - solr-precreate # - nextant # networks: # - nextcloud_network # # If using Redis # redis: # image: redis:alpine # container_name: redis # volumes: # - /docker/nextcloud/redis:/data # networks: # - nextcloud_network

이제 Docker Compose를 이용해 mariadb와 nextcloud를 실행합니다.

# mariadb 및 nextcloud 실행
docker-compose up -d

 Nextcloud 사용

Nextcloud 실행이 완료되면 Nextcloud 웹 페이지에 접속할 수 있습니다.

http://<자신이 설정한 DOMAIN>:<실행 PORT>로 접속합니다. 여기에서는 http://localhost:8888이 됩니다.

다음과 같은 페이지가 출력되면, 설정한 ADMIN 계정으로 로그인합니다. 여기에서는 hyper:hyper입니다.


ADMIN 계정으로 로그인하면 다음과 같이 Nextcloud를 사용할 수 있습니다.


ADMIN 계정에서는 사용자를 추가할 수 있습니다.


Nextcloud 설정 변경

Docker 컨테이너로 Nextcloud를 실행하고 난 뒤에, 설정을 변경하고 싶은 경우에는 설정 파일을 수정해주면 됩니다.

Docker 컨테이너 실행 시 /config 디렉터리를 볼륨으로 설정했기 때문에 로컬 환경에서 설정을 변경할 수 있습니다.

# Nextcloud 설정 변경
vi /docker/nextcloud/config/config.php


참고 사이트


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함