Docker에서 PostgreSQL 및 OwnCloud
이것은 이제 Docker를 사용할 수있게되고 싶은 필자의 시행 착오의 궤적입니다.
DB와 ownCloud를 VM에서 Docker 컨테이너로 마이그레이션
마지막으로 VM의 gitlab을 Docker 컨테이너로 마이그레이션했습니다.

이번에는 VM 서버 군의 애플리케이션 중 postgreSQL과 ownCloud를 Docker 컨테이너로 마이그레이션하고 Resource를 닫습니다.

컨테이너 구성
docker-compose.yml은 다음과 같이 만들었습니다.
docker-compose.yml 발췌 db:
image: postgres:9.6.19
environment:
POSTGRES_USER: psql
POSTGRES_PASSWORD: xxxx
volumes:
- /home/fclef/docker/server/db/data:/var/lib/postgresql/data
- /home/fclef/docker/server/db/init:/docker-entrypoint-initdb.d
- /home/fclef/docker/server/db/backup:/tmp/backup
ports:
- 5432:5432
owncloud:
image: owncloud:latest
restart: always
volumes:
- /home/fclef/docker/server/owncloud:/var/www/html
ports:
- 51080:80
PostgreSQL 이미지를 latest
로 지정하면 owncloud 초기화에서 오류가 발생했습니다.
PostgreSQL을 9.6 이전 버전이어야 하는 것 같습니다.
참고: Install fails on pg 10.5
PostgreSQL 백업 및 복원
참고: PostgreSQL backup, restore 방법 요약
백업
백업할 데이터베이스 이름을 지정하여 실행합니다.
$ pg_dump <database> > <buckup file>
복원
복원도 명령은 간단합니다.
psql <database> < <buckup file>
그러나 복원 전에 데이터베이스를 작성해야 합니다.
그래서 백업 파일에 해당하는 데이터베이스를 만들고 복원하는 쉘 스크립트를 만들었습니다.
1_init.shfiles=`ls -1 /tmp/backup/*`
for file in ${files[*]}; do
database=`echo ${file} | sed -r 's@.*/(.*).backup.sql@\1@g'`
echo "init ${database}."
psql -c "create database ${database};"
psql ${database} < ${file}
done
이 스크립트를 /docker-entrypoint-initdb.d
에 마운트합니다.
이 디렉토리 아래의 .sql
및 .sh
파일은 컨테이너 시작시 실행됩니다.
파일명의 선두에 숫자를 붙여 두면, 숫자순으로 실행해 줍니다.
ownCloud 설정
nginx 컨테이너에서 owncloud 컨테이너로 리버스 프록시를 설정하고 액세스하면,
초기 설정 화면이 열립니다.
※스쿠쇼 잊었으므로 픽업입니다.

로그인 ID, 비밀번호 설정 창 아래에 있는 "스토리지와 데이터베이스"라는 라벨을 클릭하면 데이터베이스의 상세 설정을 할 수 있으므로,
PostgreSQL을 선택하고 다양한 항목을 입력합니다.
최하부의 DB의 호스트 정보에 대해서는, PostgreSQL 컨테이너의 서비스명과 포트 번호를 입력하면 OK입니다.
위의 yml 파일의 경우 "db:5432"를 입력합니다.
ownCloud 업로드 한도 설정
기본적으로 파일당 수백 MB까지만 업로드할 수 있습니다.
ownCloud 컨테이너측은 벌써 큰 파일을 받아들이는 설정이 되어 있으므로, 리버스 프록시측에서 제한을 풀어 줄 뿐입니다.
nginx 컨테이너의 owncloud 역방향 프록시 설정client_max_body_size 10G; # これを追記
ownCloud 백업 및 복원
ownCloud의 백업 및 복원 방법을 살펴보면 확실하지 않았습니다.
조금만 업로드하는 파일이 없었으므로 데이터 디렉토리의 파일을 직접 복사하여 업로드했습니다.
정공법을 아는 분이 계시면 가르쳐 주시면 다행입니다.
크게 막히지 않고, 조사하면서도 몇 시간에 끝낼 수 있었습니다.
VM 설정에 비해 극적인 속도입니다. .
Docker 굉장히 오늘도 생각했던 것이었습니다.
다음 번: Docker의 Ghost
Reference
이 문제에 관하여(Docker에서 PostgreSQL 및 OwnCloud), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/F_clef/items/6d988c188e4ecbfc42cd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker-compose.yml은 다음과 같이 만들었습니다.
docker-compose.yml 발췌
db:
image: postgres:9.6.19
environment:
POSTGRES_USER: psql
POSTGRES_PASSWORD: xxxx
volumes:
- /home/fclef/docker/server/db/data:/var/lib/postgresql/data
- /home/fclef/docker/server/db/init:/docker-entrypoint-initdb.d
- /home/fclef/docker/server/db/backup:/tmp/backup
ports:
- 5432:5432
owncloud:
image: owncloud:latest
restart: always
volumes:
- /home/fclef/docker/server/owncloud:/var/www/html
ports:
- 51080:80
PostgreSQL 이미지를
latest
로 지정하면 owncloud 초기화에서 오류가 발생했습니다.PostgreSQL을 9.6 이전 버전이어야 하는 것 같습니다.
참고: Install fails on pg 10.5
PostgreSQL 백업 및 복원
참고: PostgreSQL backup, restore 방법 요약
백업
백업할 데이터베이스 이름을 지정하여 실행합니다.
$ pg_dump <database> > <buckup file>
복원
복원도 명령은 간단합니다.
psql <database> < <buckup file>
그러나 복원 전에 데이터베이스를 작성해야 합니다.
그래서 백업 파일에 해당하는 데이터베이스를 만들고 복원하는 쉘 스크립트를 만들었습니다.
1_init.shfiles=`ls -1 /tmp/backup/*`
for file in ${files[*]}; do
database=`echo ${file} | sed -r 's@.*/(.*).backup.sql@\1@g'`
echo "init ${database}."
psql -c "create database ${database};"
psql ${database} < ${file}
done
이 스크립트를 /docker-entrypoint-initdb.d
에 마운트합니다.
이 디렉토리 아래의 .sql
및 .sh
파일은 컨테이너 시작시 실행됩니다.
파일명의 선두에 숫자를 붙여 두면, 숫자순으로 실행해 줍니다.
ownCloud 설정
nginx 컨테이너에서 owncloud 컨테이너로 리버스 프록시를 설정하고 액세스하면,
초기 설정 화면이 열립니다.
※스쿠쇼 잊었으므로 픽업입니다.

로그인 ID, 비밀번호 설정 창 아래에 있는 "스토리지와 데이터베이스"라는 라벨을 클릭하면 데이터베이스의 상세 설정을 할 수 있으므로,
PostgreSQL을 선택하고 다양한 항목을 입력합니다.
최하부의 DB의 호스트 정보에 대해서는, PostgreSQL 컨테이너의 서비스명과 포트 번호를 입력하면 OK입니다.
위의 yml 파일의 경우 "db:5432"를 입력합니다.
ownCloud 업로드 한도 설정
기본적으로 파일당 수백 MB까지만 업로드할 수 있습니다.
ownCloud 컨테이너측은 벌써 큰 파일을 받아들이는 설정이 되어 있으므로, 리버스 프록시측에서 제한을 풀어 줄 뿐입니다.
nginx 컨테이너의 owncloud 역방향 프록시 설정client_max_body_size 10G; # これを追記
ownCloud 백업 및 복원
ownCloud의 백업 및 복원 방법을 살펴보면 확실하지 않았습니다.
조금만 업로드하는 파일이 없었으므로 데이터 디렉토리의 파일을 직접 복사하여 업로드했습니다.
정공법을 아는 분이 계시면 가르쳐 주시면 다행입니다.
크게 막히지 않고, 조사하면서도 몇 시간에 끝낼 수 있었습니다.
VM 설정에 비해 극적인 속도입니다. .
Docker 굉장히 오늘도 생각했던 것이었습니다.
다음 번: Docker의 Ghost
Reference
이 문제에 관하여(Docker에서 PostgreSQL 및 OwnCloud), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/F_clef/items/6d988c188e4ecbfc42cd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ pg_dump <database> > <buckup file>
psql <database> < <buckup file>
files=`ls -1 /tmp/backup/*`
for file in ${files[*]}; do
database=`echo ${file} | sed -r 's@.*/(.*).backup.sql@\1@g'`
echo "init ${database}."
psql -c "create database ${database};"
psql ${database} < ${file}
done
nginx 컨테이너에서 owncloud 컨테이너로 리버스 프록시를 설정하고 액세스하면,
초기 설정 화면이 열립니다.
※스쿠쇼 잊었으므로 픽업입니다.

로그인 ID, 비밀번호 설정 창 아래에 있는 "스토리지와 데이터베이스"라는 라벨을 클릭하면 데이터베이스의 상세 설정을 할 수 있으므로,
PostgreSQL을 선택하고 다양한 항목을 입력합니다.
최하부의 DB의 호스트 정보에 대해서는, PostgreSQL 컨테이너의 서비스명과 포트 번호를 입력하면 OK입니다.
위의 yml 파일의 경우 "db:5432"를 입력합니다.
ownCloud 업로드 한도 설정
기본적으로 파일당 수백 MB까지만 업로드할 수 있습니다.
ownCloud 컨테이너측은 벌써 큰 파일을 받아들이는 설정이 되어 있으므로, 리버스 프록시측에서 제한을 풀어 줄 뿐입니다.
nginx 컨테이너의 owncloud 역방향 프록시 설정client_max_body_size 10G; # これを追記
ownCloud 백업 및 복원
ownCloud의 백업 및 복원 방법을 살펴보면 확실하지 않았습니다.
조금만 업로드하는 파일이 없었으므로 데이터 디렉토리의 파일을 직접 복사하여 업로드했습니다.
정공법을 아는 분이 계시면 가르쳐 주시면 다행입니다.
크게 막히지 않고, 조사하면서도 몇 시간에 끝낼 수 있었습니다.
VM 설정에 비해 극적인 속도입니다. .
Docker 굉장히 오늘도 생각했던 것이었습니다.
다음 번: Docker의 Ghost
Reference
이 문제에 관하여(Docker에서 PostgreSQL 및 OwnCloud), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/F_clef/items/6d988c188e4ecbfc42cd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
client_max_body_size 10G; # これを追記
ownCloud의 백업 및 복원 방법을 살펴보면 확실하지 않았습니다.
조금만 업로드하는 파일이 없었으므로 데이터 디렉토리의 파일을 직접 복사하여 업로드했습니다.
정공법을 아는 분이 계시면 가르쳐 주시면 다행입니다.
크게 막히지 않고, 조사하면서도 몇 시간에 끝낼 수 있었습니다.
VM 설정에 비해 극적인 속도입니다. .
Docker 굉장히 오늘도 생각했던 것이었습니다.
다음 번: Docker의 Ghost
Reference
이 문제에 관하여(Docker에서 PostgreSQL 및 OwnCloud), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/F_clef/items/6d988c188e4ecbfc42cd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)