[Docker] [NAS] Synology NAS에서 Docker(Container manager)가이드(Gitea 설치하면서 배워보자)
![[Docker] [NAS] Synology NAS에서 Docker(Container manager)가이드(Gitea 설치하면서 배워보자)](/content/images/size/w1920/2025/01/docker_logo-1.png)
Synology NAS에서 Container Manager 가이드 With. Gitea 🛠️✨
Docker란 무엇인가?🤔
Docker는 어플리케이션을 컨테이너라는 표준화된 단위로 패키징하고 실행할 수 있게 해주는 플랫폼이다.
어플리케이션과 그 실행에 필요한 모든것(라이브러리, 환경설정 등)을 하나의 패키지로 묶는 컨테이너화, 어떤 환경에서든 동일하게 실행 가능한 이식성, 호스트의 OS 커널을 공유하여 가볍고 빠른 탁월한 자원효율성, 각 커넽이너 끼리 독립적으로 실행되어 서로 영향을 주지 않는 격리성이 특징이다.
Synology Container Manager란 무엇인가🤔
Docker를 NAS의 DSM에서 쉽게 관리할 수 있는 GUI 기반의 관리도구이다.
복잡한 Docker 명령어를 사용하지 않고도 웹 인터페이스를 통해 Docker 컨테이너를 쉽게 관리할 수 있는것이 특징이다. portainer와 비슷하다고 보면 된다.
Gitea란 무엇인가? 🤔
Gitea는 경량화된 Git 서버로, 설치와 관리가 쉽고, 개인 또는 소규모 팀이 Git 리포지토리를 관리하는 데 적합하다. Synology NAS와 같은 환경에서는 Container Manager를 통해 간편하게 설치할 수 있다.
나는 사내에서 사내 게인서버에 Gitea를 구축하여 사용하고 있고, 내 개인 NAS에서도 Gitea를 구축하여 소스 백업 및 개인 프로젝트 형상관리 용도로 사용하려고 한다.
이 가이드에서는 Synology DSM 7.2 환경에서 Container Manager를 활용해 Gitea를 설치하고, MariaDB를 데이터베이스로 사용하는 방법을 자세히 설명한다.

사전 준비 📋
1) 운영 환경
- 운영 환경은 DS723+, DSM7.2버전으로 진행했음.
- DB는 sqllite, mysql, postgre등을 사용할 수 있음
- Synology에서는 MariaDB 10 버전을 기본 패키지로 제공되어서 쉽게 설치해서 운용할 수 있음.
- 그래서 DB는 MariaDB(MySQL)로 함.
- Container Manager 패키지가 설치되어 있어야 함.
Container Manager에서 Gitea 설치 🚀
Gitea 이미지 다운로드
- Synology DSM에 로그인 후 **Container Manager → 레지스트리(Registry)**로 이동.
latest
태그를 선택하여 이미지를 다운로드.
검색창에 **gitea
*를 입력하고, gitea/gitea
이미지를 선택.

Gitea 컨테이너 생성
- 이미지 탭으로 이동하여 다운로드한
gitea/gitea
이미지를 선택하고 실행(Run) 클릭. - 컨테이너 설정 창이 뜨면 다음 정보를 입력:
컨테이너 이름: gitea
.

포트설정
- 컨테이너의 22번과 3000번 포트는 호스트의 각각 원하는 포트로 매핑한다.
- 보통 3000:3000 이렇게 매핑하고 ssh 22번은 포트번호를 별도로 변경하여 매핑을 하는것이 국룰.
- 그러니까 Docker는 일종의 가상머신(VM) 이라고 생각하면 된다.
그 환경의 3000번 포트는 호스트(여기서는 Synology NAS)의 3000번 포트로 매핑이 되고, 22번 포트는 (에를들어 호스트 포트로 2222로 설정했다면..) 2222 포트로 매핑이 되는것이다. - 그러면 외부에서 <NAS IP>:3000 주소를 입력하면 해당 Docker의 환경에 접속하는것이다.

볼륨설정
- Docker 환경 내의 폴더 및 파일들을 외부환경(호스트)에서 쉽게 사용할 수 있도록 폴더 매핑을 해주는 단계다.
- 이 단계를 거치지 않으면 나중에 설정파일 등을 수정할 떄 ssh로 접속을 하여 해당 docker bash 환경에 직접 접속하여 작업을 해야하는 매우 복잡하고 귀찮은 일을 해야한다.
모든 Docker들의 공통 사항이다
- 원하는 폴더에 컨테이너 경로는 /data로 설정해서 매핑하자.(보통 /docker/gitea 국룰)
- 이것은 각 Docker 이미지 별로 다르니 각 Docker 이미지의 Document를 참고하자.

환경번수
- 환경변수에서는 각 이미지 별로 환경 변수(예를들어 DB 설정, 네트워크 환경 설정 등)을 설치과정에서 자동으로 설정하도록 설정할 수 있다
- 다음은 Gitea의 DB 환경변수다.
+ - GITEA__database__DB_TYPE=postgres
+ - GITEA__database__HOST=db:5432
+ - GITEA__database__NAME=gitea
+ - GITEA__database__USER=gitea
+ - GITEA__database__PASSWD=gitea - 이런식으로 각 Docker 이미지는 환경변수를 설정할 수 있는데, 각 Document를 참고하면 된다.
- 여기서 Gitea는 추가로 환경변수를 설정할 필요가 없으므로 스킵한다.

네트워크
- Docker에서 네트워크는 Bridge, Host 두가지 모드가 있다.
Bridge
- Docker의 기본 네트워크 모드
- 도커가 설치될 때 자동으로 'docker0'라는 가상 브리지를 생성
- 각 컨테이너는 고유한 네트워크 네임스페이스를 가지며, 가상 이더넷 인터페이스(veth) 쌍을 통해 docker0 브리지와 연결
- 172.17.0.0/16 대역을 사용하며 Docker Compose를 사용할경우 172.18, 172.19등의 대역을 사용하기도 함
- 게이트웨이는 0.1
Host
- 컨테이너가 호스트의 네트워크 스택을 직접 사용
- 별도의 네트워크 격리가 없음
- 호스트의 네트워크 인터페이스를 컨테이너가 직접 사용
보통
- 네트워크 성능이 매우 중요한 경우
- 시스템 수준의 네트워크 모니터링이 필요한 경우
- 단일 호스트에서 적은 수의 컨테이너를 실행하는 경우
- 네트워크 성능 측정/분석 도구 실행 시
이러한 특수한 상황이 아닌 경우 Bridge 모드를 사용하는 것이 국룰.
그래서 여기서는 Bridge 모드로 진행을 하겠다.

이 후 다음 버튼을 클릭하여 설치를 진행하면 된다.
Gitea 초기 설정
<Synology IP>:3000
을 입력하면 gitea 초기 설정 페이지에 진입한다.
여기서 Gitea를 내 환경에 맞게 입맛대로 설정하면 된다.

데이터베이스 유형
- 본인이 원하는 DB를 선택하면 된다.
- 별도의 DB가 있으면 MySQL, PostgreSQL, MSSQL중에서 선택하면 되고 없으면 그냥 SQLite3 선택하면 속편하다.
- 나같은 경우는 DB가 NAS에서 운용하고 있으므로 DB 주소를
172.17.0.1:포트번호
이렇게 설정해야한다. 도커가 Bridge 네트워크이기 때문에 도커의 게이트웨이가 바로 NAS의 IP주소를 가리키기 때문. 네트워크 기본 상식이다. - 만약 외부 서버에 DB가 있으면
domain주소:port
이런식으로 적으면 된다.
나머지는 그냥 알아서 적으면 되고..

마지막에 Gitea 설치하기 버튼을 클릭하고 조금 기다리면 설치가 완료된다.
만약 오류가 발생하면 페이지에 오류메시지가 발생하거나 컨테이너 매니저의 Gitea 로그에 로그가 남고, 그게 아니면 그냥 기다리면 설치가 완료된다. 생각보다 시간이 좀 걸릴 수 있다.
댓글