● 시놀로지작업)docker를 사용하여 Synology NAS에 Nextcloud를 설치하기 위한 가이드
컨텐츠 정보
- 91,956 조회
- 8 댓글
- 0 추천
- 목록
본문
● 시놀로지작업)docker를 사용하여 Synology NAS에 Nextcloud를 설치하기 위한 가이드
작업)nextcloud 시놀로지에 설치 작업을 간단히 명령어로 설치 이며 아래 본문 링크 내용 참조 바랍니다
mriadb설치로 nextcloud 설치 방법과 자체 sqlit로 사용설치 방법입니다
DSM 제어판을 열고 "사용자"로 이동합니다.
docker-nextcloud라는 새 사용자를 만듭니다.
마법사를 통해 설정을 완료합니다.
권한 제한
"그룹" 탭으로 이동
docker-users라는 새 그룹을 만듭니다.
애플리케이션 및 공유 폴더에 대한 그룹 액세스 제한
완료되면 목록에서 그룹을 선택하고 "구성원 편집"을 클릭합니다.
이전에 생성한 사용자(docker-nextcloud)를 구성원으로 추가합니다.
===========================
docker-nextcloud id생성 암호입력
docker-users 그룹생성 docker-nextcloud 구성원 추가
===============================================
# 작업스케쥴러 등록 > 실행 결과보기 또는 ssh/putty 로 실행
# Get GID and UID 이르 주고 아래 입력 실행
id docker-nextcloud
입력결과 보면
uid=1027(docker-nextcloud) gid=100(users) groups=100(users),65536(docker-users),1023(http)
# 또는 ssh로 확인
==================================
root@https11qkr:~# id docker-nextcloud
uid=1027(docker-nextcloud) gid=100(users) groups=100(users),65536(docker-users),1023(http)
root@https11qkr:~#
===========================
mariadb db 등록 변수값
Variable Value
MYSQL_DIR /config
DATADIR /data (changed)
MYSQL_PASSWORD choose a password (added)
MYSQL_USER nextcloud (added)
MYSQL_DATABASE nextcloud_db (added)
TZ Your time zone for example Europe/Stockholm (added)
MYSQL_ROOT_PASSWORD choose a root password (added)
PGID 65536 (your groups docker-users value differs) (added)
PUID 1027 (your uid value differs) (added)
===========================================
####### 자체 sqlit로 사용설치 방법입니다 ######
#======================================
# 설치 진행1
# 디랙토리 구성 하기
mkdir -p /volume1/nextcloud/nextcloud-web/config
mkdir -p /volume1/nextcloud/nextcloud-web/data
chmod 777 -R /volume1/nextcloud/nextcloud-web/config
chmod 777 -R /volume1/nextcloud/nextcloud-web/data
#=======================================
# nextcloud_30443 도커 만들기
#도커 컨테이너만들기
docker run -d
--name=nextcloud
-v /volume1/nextcloud/nextcloud-web/config:/config
-v /volume1/nextcloud/nextcloud-web/data:/data
-e PUID=1027 -e PGID=65536 -e TZ=Asia/Seoul -e MYSQL_DIR=/config
-p 30443:443 -p 30080:80
linuxserver/nextcloud:latest
#============================
mriadb설치로 nextcloud 설치 방법 은
mariadb 도커 만들기 와 nextcloud_30443 도커 만들기
2번 해야 합니다
저는 설정중 아래 내용이 miss인지 로그인 않되어 확인중입니다
#==========================================
# 설치 진행1
# 디랙토리 구성 하기
mkdir -p /volume1/nextcloud/mariadb/config
mkdir -p /volume1/nextcloud/mariadb/data
chmod 777 -R /volume1/nextcloud/mariadb/config
chmod 777 -R /volume1/nextcloud/mariadb/data
# mariadb 도커 만들기
#도커 컨테이너만들기
docker run -d
--name=mariadb_3306
-v /volume1/nextcloud/mariadb/config:/config
-v /volume1/nextcloud/mariadb/data:/data
-e PUID=1027 -e PGID=65536 -e MYSQL_PASSWORD=passwd1234 -e MYSQL_DATABASE=nextcloud_db -e MYSQL_USER=nextcloud -e MYSQL_ROOT_PASSWORD=passwd1234 -e DATADIR=/data -e MYSQL_DIR=/config -e TZ=Asia/Seoul
-p 3306:3306
mariadb:latest
#============================
상기명령은 SSH에서 PUTTY로 간단 설치 조건 입니다
상기 명령을 SSH에서 처음 설치 실행후
초기 접속은 공유기 포트포워딩 설정후
포트 수정 변경 DDNS로 설치
mkdir -p /volume1/nextcloud/nextcloud-web/config
mkdir -p /volume1/nextcloud/nextcloud-web/data
chmod 777 -R /volume1/nextcloud/nextcloud-web/config
chmod 777 -R /volume1/nextcloud/nextcloud-web/data
# nextcloud_8899 도커 만들기
#도커 컨테이너만들기
docker run -d \
--name=nextcloud_8899 \
-v /volume1/nextcloud/nextcloud-web/config:/config \
-v /volume1/nextcloud/nextcloud-web/data:/data \
-e PUID=1027 -e PGID=65536 -e TZ=Asia/Seoul -e MYSQL_DIR=/config \
-p 8899:443 -p 8880:80 \
linuxserver/nextcloud:latest
DDNS로 해당 포트로 접속 >>초기 설치해야 합니다
예)8899이면
주) 포트 변경은 초기 설정부터 설정이 편합니다
포트 변경은 모드 삭제후 재설치 입니다
#======================================
# 설치 진행2
# 디랙토리 구성 하기
mkdir -p /volume1/nextcloud/nextcloud-web/config
mkdir -p /volume1/nextcloud/nextcloud-web/data
chmod 777 -R /volume1/nextcloud/nextcloud-web/config
chmod 777 -R /volume1/nextcloud/nextcloud-web/data
#=======================================
# nextcloud_30443 도커 만들기
#도커 컨테이너만들기
docker run -d
--name=nextcloud
-v /volume1/nextcloud/nextcloud-web/config:/config
-v /volume1/nextcloud/nextcloud-web/data:/data
-e PUID=1027 -e PGID=65536 -e TZ=Asia/Seoul -e MYSQL_DIR=/config
-p 30443:443 -p 30080:80
linuxserver/nextcloud:latest
#============================
#============================
https://YOUR-NAS-IP:30443
https://11q.kr:30443
사용자와 암호는 추가
아이디
암호 입력
shimss
passwd1234
data folder는
/data
configure the database 는 mySQL 선택
nextcloud
passwd1234
nextcloud_db
nextcloud-database:3306
< 상단 docker 생성시 만든 정보 확인 >
-e MYSQL_PASSWORD=passwd1234
-e MYSQL_USER=nextcloud
-e MYSQL_ROOT_PASSWORD=passwd1234
-e MYSQL_DATABASE=nextcloud_db
MYSQL_PASSWORD choosen_password(설정값)
MYSQL_USER nextcloud
MYSQL_DATABASE nextcloud_db
MYSQL_ROOT_PASSWORD choosen_root_password( phpmyadmin passwd)
-------------------------------------
문제 발생 재설치
설정중 config.php 파일 잘못 수정으로 발생 실행 되지 않을때
삭제가 제일 편하다
정상적인 /volume1/nextcloud/nextcloud-web/config/www/nextcloud/config/config.php
파일정보
상기 수정을 잘못 하여 문제 발생 ( 상기 config.php는 재설치후 정상 상태 조건 입니다)
Nextcloud를 다시 설치하려고 하는 것 같습니다. 그러나 현재 설정 디렉터리에 CAN_INSTALL 파일이 없는 것 같습니다. 계속 진행하려면 설정 폴더에 CAN_INSTALL 폴더를 만드십시오.
연경 안됨
재설치 진행 (20211030)
1) docker nextcloud 을 중지
2) docker nextcloud 삭제
3) 공유 폴더 nextcloud 밑에 하부 파일 삭제
4) 재설치 명령어
mkdir -p /volume1/nextcloud/nextcloud-web/config
mkdir -p /volume1/nextcloud/nextcloud-web/data
chmod 777 -R /volume1/nextcloud/nextcloud-web/config
chmod 777 -R /volume1/nextcloud/nextcloud-web/data
# nextcloud_8899 도커 만들기
#도커 컨테이너만들기
docker run -d
--name=nextcloud_8899
-v /volume1/nextcloud/nextcloud-web/config:/config
-v /volume1/nextcloud/nextcloud-web/data:/data
-e PUID=1027 -e PGID=65536 -e TZ=Asia/Seoul -e MYSQL_DIR=/config
-p 8899:443 -p 8880:80
linuxserver/nextcloud:latest
기본 설정 (동작환경)
================
이하 상세 내용
나는 일반적으로 많은 단어를 사용하지 않으므로 이 가이드를 간단하게 유지하고 nextcloud 및 mariadb 인스턴스를 설정하는 데 필요한 단계에 중점을 둘 것입니다.
이 작업을 수행하려면 도커 패키지가 설치된 Synology NAS(플러스 모델)가 필요합니다. docker가 설치되어 있지 않으면 패키지 관리자에서 검색하십시오.
내가 본 대부분의 가이드는 사용자에게 SSH를 활성화한 다음 docker-compose 또는 일반 도커 명령을 사용하여 가이드가 무엇이든 실행하도록 요청합니다. 저는 그렇게 하지 않을 것입니다. 왜 물어? 대부분의 사용자가 콘솔 인터페이스를 두려워한다고 느끼기 때문입니다. DSM 내에 머물면서 DSM과 docker gui를 통해 모든 것을 설정할 것입니다.
여기 우리가 간다!
1단계: DSM에서 docker에 대한 새 사용자 및 그룹 만들기
이것은 필요하지 않지만 권장됩니다. 모든 사용자와 그룹을 사용할 수 있지만 공격자가 컨테이너 샌드박스를 탈출하면 선택한 사용자/그룹이 가진 모든 권한을 갖게 된다는 점을 기억하십시오. 따라서 모든 docker 사용자에 대해 특정 그룹을 설정한 다음 그룹 및 사용자 수준에 대한 제한을 설정하는 것이 좋습니다. 나는 일반적으로 도커 그룹의 내 공유 폴더에 대한 액세스를 허용하지 않습니다. 일부 컨테이너가 데이터를 공유해야 하는 경우 특정 공유 폴더를 만들고 그룹에 읽기 및 쓰기 액세스 권한을 부여합니다. 모든 사람이 DSM을 통해 새 그룹과 사용자를 설정하는 방법을 알고 있다고 가정하므로 이 부분을 간단히 설명하겠습니다.
- DSM 제어판을 열고 "사용자"로 이동합니다.
- docker-nextcloud라는 새 사용자를 만듭니다.
- 마법사를 통해 설정을 완료합니다.
- 권한 제한
- "그룹" 탭으로 이동
- docker-users라는 새 그룹을 만듭니다.
- 애플리케이션 및 공유 폴더에 대한 그룹 액세스 제한
- 완료되면 목록에서 그룹을 선택하고 "구성원 편집"을 클릭합니다.
- 이전에 생성한 사용자(docker-nextcloud)를 구성원으로 추가합니다.
UID 및 GID
이제 그룹과 사용자에 대한 GID와 UID를 가져올 것입니다. SSH를 사용하면 훨씬 더 간단하겠지만 작업 스케줄러를 사용하고 사용자 정의 스크립트를 만들어 이 문제를 해결할 수 있습니다.
- 제어판에서 "작업 스케줄러" 탭으로 이동합니다.
- 다른 작업을 수행하기 전에 명령의 출력이 어딘가에 저장되었는지 확인해야 합니다. 상단 메뉴에서 "설정" 버튼을 누르고 로그 파일의 대상을 선택하여 이 작업을 수행합니다. 작업 스케줄러, 설정
- "만들기" 메뉴의 "예약된 작업" 옵션을 통해 새 "사용자 정의 스크립트"를 만듭니다. 작업 스케줄러, 새 스크립트 생성
- 새 작업에 "GID 및 UID 가져오기"와 같은 이름을 지정하고 "활성화됨" 체크 표시를 선택 해제해야 합니다. (사용자는 상승된 상태, 루트 또는 관리자여야 합니다.) 작업 스케줄러, 새 작업 만들기
- "작업 설정" 탭으로 이동하여 "사용자 정의 스크립트" 텍스트 상자에 다음을 입력합니다.
id docker-nextcloud
- id 명령은 제공된 사용자 이름에 대한 사용자 정보 데이터를 가져옵니다.
- 스크린샷 작업 스케줄러, 새 작업 만들기, 설정
- 확인 버튼을 누르면 작업이 생성되고 "작업 스케줄러" 목록에서 선택 가능하며, 새 작업을 선택하고 상단 메뉴에서 "실행" 버튼을 눌러 작업을 실행합니다. 확인을 묻는 메시지가 표시되면 확인을 누릅니다.
- 작업이 완료되면 "작업 스케줄러" 목록에서 다시 한 번 선택하고 "작업" 메뉴 버튼과 "작업" 메뉴의 "결과 보기" 버튼을 차례로 선택합니다. 실행한 명령의 결과를 보여주는 새 창이 나타납니다. 아래 결과와 같아야 합니다. 사용자 및 그룹(이 경우 1032 및 65540)에 대한 uid 및 gid를 기록해 둡니다.
uid=1032(docker-nextcloud) gid=100(users) groups=100(users),65540(docker-users)
2단계: Nextcloud 및 해당 데이터베이스에 대한 공유 폴더 생성
모든 사람이 새 공유 폴더를 만드는 방법을 알고 있다고 가정하기 때문에 이 부분도 간단히 설명하겠습니다.
- DSM 제어판을 열고 "공유 폴더"로 이동합니다.
- 새 공유 폴더를 만들고 이전에 만든 그룹(docker-users)에 읽기 및 쓰기 액세스 권한을 부여합니다. 원하는 경우 사용자(docker-nextcloud)에게도 동일한 권한을 부여할 수 있습니다.
- File Station을 사용하여 새로 생성된 공유 폴더에 두 개의 폴더를 생성합니다. 하나는 nextcloud용이고 다른 하나는 mariadb용입니다.
- nextcloud 폴더 내에서 두 개의 새 폴더를 만듭니다. 하나는 data라고 하고 다른 하나는 config라고 합니다. 이 폴더는 나중에 docker에서 사용됩니다.
- mariadb 폴더 내에서 config라는 새 폴더를 하나 만듭니다.
- 폴더가 docker-users 그룹의 소유인지 확인하고 맨 위 폴더를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택한 다음 나타나는 창에서 소유자를 변경하고 "이 폴더 및 하위 폴더에 적용"을 선택했는지 확인합니다. ".
도커 물건
3단계: 새 네트워크 만들기
새로운 브리지 네트워크가 필요한 이유는 무엇입니까? 기본 브리지 네트워크에는 기본적으로 활성화된 이름 기반 액세스(dns 확인)가 없으며 컨테이너 간의 모든 통신은 IP를 통해 직접 수행되어야 합니다. 제공된 IP는 컨테이너 부팅 순서에 따라 변경될 수 있으므로 dns 확인을 활성화하고 이름으로 컨테이너에 액세스하여 이를 방지해야 합니다. 이렇게 하면 기본 IP가 변경될 수 있지만 여전히 이름으로 컨테이너에 액세스할 수 있습니다. .
- 도커 GUI에서 네트워크 탭으로 이동합니다. 네트워크 목록
- 추가를 클릭하고 네트워크 이름을 제공합니다(예: nextcloud-network).
- "Enable IPv4"만 선택된 상태로 둡니다. 네트워크 정보
- 목록에 네트워크를 추가합니다.
4단계: 도커 이미지 다운로드
저는 linuxserver 이미지의 열렬한 팬이며 일관성 있는 고품질의 최신 이미지를 제공하며 모든 이미지는 아니더라도 대부분의 이미지에서 gid 및 uid를 설정할 수 있는지 확인합니다. 공식 이미지를 사용할 수 있지만 이 가이드는 linuxserver 이미지만 대상으로 하므로 다른 이미지를 사용하도록 선택하는 경우 일부 환경 변수가 다를 수 있습니다.
- Docker GUI 열기
- 왼쪽 패널에서 "레지스트리"를 클릭합니다.
- 넥스트클라우드를 검색합니다. 레지스트리, 넥스트클라우드
- linuxserver/nextcloud 이미지를 선택하고 다운로드 버튼을 클릭합니다.
- 새 창에서 최신 태그를 선택한 다음 버튼 선택을 선택합니다. 레지스트리, 최신 태그
- MariaDb에 대해서도 동일한 작업을 수행합니다(이미지 linuxserver/mariadb).
- 다운로드한 이미지는 "이미지" 패널에 나타납니다.
5단계: MariaDb용 컨테이너 만들기
이제 nextcloud가 사용할 데이터베이스용 컨테이너를 생성할 준비가 되었습니다.
- "이미지" 패널로 이동하여 목록에서 새로 다운로드한 mariadb 이미지를 선택하십시오.
- 상단 메뉴에서 "실행" 버튼을 누릅니다.
- 표시되는 창에서 컨테이너 Docker 이미지 의 이름을 제공하고 컨테이너 mariadb를 만듭니다.
- 선택 사항: "리소스 제한 사용" 체크 표시를 확인하고 충분하다고 생각되는 값으로 설정합니다. 내 컨테이너가 액세스할 수 있는 리소스를 제한하는 것을 선호합니다.
- "고급 설정"버튼을 클릭하십시오. 이제 재미있는 부분이 시작됩니다 =)
- "볼륨" 탭으로 이동합니다.
- "폴더 추가" 버튼을 클릭하고 공유 폴더/mariadb/config 폴더를 찾습니다. 폴더가 추가되면 /config의 마운트 경로를 제공하십시오. shared-folder/mariadb/data 폴더에 대해 동일한 작업을 수행하고, /data Docker Image 의 마운트 경로를 제공하고 , 컨테이너 mariadb, 볼륨을 생성합니다.
- 상단 메뉴의 "네트워크" 탭으로 이동합니다.
- + 버튼을 누르고 새 네트워크를 선택하고 추가하십시오.
- 목록에서 "브리지"라는 네트워크를 선택하고 -(빼기) 버튼을 클릭하여 제거합니다. 완료되면 이전에 만든 네트워크만 유일한 네트워크여야 합니다. Docker 이미지, 컨테이너 생성 mariadb, 네트워크
- 다음은 "포트 설정" 탭에서 "로컬 포트"를
관련자료
-
링크
-
첨부등록일 2023.04.20 20:36
11qkr님의 댓글
mriadb설치로 nextcloud 설치 방법과 자체 sqlit로 사용설치 방법입니다
DSM 제어판을 열고 "사용자"로 이동합니다.
docker-nextcloud라는 새 사용자를 만듭니다.
마법사를 통해 설정을 완료합니다.
권한 제한
"그룹" 탭으로 이동
docker-users라는 새 그룹을 만듭니다.
애플리케이션 및 공유 폴더에 대한 그룹 액세스 제한
완료되면 목록에서 그룹을 선택하고 "구성원 편집"을 클릭합니다.
이전에 생성한 사용자(docker-nextcloud)를 구성원으로 추가합니다.
===========================
docker-nextcloud id생성 암호입력
docker-users 그룹생성 docker-nextcloud 구성원 추가
===============================================
# 작업스케쥴러 등록 > 실행 결과보기 또는 ssh/putty 로 실행
# Get GID and UID 이르 주고 아래 입력 실행
id docker-nextcloud
입력결과 보면
uid=1027(docker-nextcloud) gid=100(users) groups=100(users),65536(docker-users),1023(http)
# 또는 ssh로 확인
==================================
root@https11qkr:~# id docker-nextcloud
uid=1027(docker-nextcloud) gid=100(users) groups=100(users),65536(docker-users),1023(http)
root@https11qkr:~#
===========================================
####### 자체 sqlit로 사용설치 방법입니다 ######
#======================================
# 설치 진행1
# 디랙토리 구성 하기
mkdir -p /volume1/nextcloud/nextcloud-web/config
mkdir -p /volume1/nextcloud/nextcloud-web/data
chmod 777 -R /volume1/nextcloud/nextcloud-web/config
chmod 777 -R /volume1/nextcloud/nextcloud-web/data
#=======================================
# nextcloud_30443 도커 만들기
#도커 컨테이너만들기
docker run -d \
--name=nextcloud \
-v /volume1/nextcloud/nextcloud-web/config:/config \
-v /volume1/nextcloud/nextcloud-web/data:/data \
-e PUID=1027 -e PGID=65536 -e TZ=Asia/Seoul -e MYSQL_DIR=/config \
-p 30443:443 -p 30080:80 \
linuxserver/nextcloud:latest
11qkr님의 댓글
mkdir -p /volume1/nextcloud/nextcloud-web/data
chmod 777 -R /volume1/nextcloud/nextcloud-web/config
chmod 777 -R /volume1/nextcloud/nextcloud-web/data
# nextcloud_8899 도커 만들기
#도커 컨테이너만들기
docker run -d \
--name=nextcloud_8899 \
-v /volume1/nextcloud/nextcloud-web/config:/config \
-v /volume1/nextcloud/nextcloud-web/data:/data \
-e PUID=1027 -e PGID=65536 -e TZ=Asia/Seoul -e MYSQL_DIR=/config \
-p 8899:443 -p 8880:80 \
linuxserver/nextcloud:latest
11qkr님의 댓글
MYSQL_DIR /config
DATADIR /data (changed)
MYSQL_PASSWORD choose a password (added)
MYSQL_USER nextcloud (added)
MYSQL_DATABASE nextcloud_db (added)
TZ Your time zone for example Europe/Stockholm (added)
MYSQL_ROOT_PASSWORD choose a root password (added)
PGID 65540 (your value differs) (added)
PUID 1032 (your value differs) (added)