1. 시작하며
최근 사이드 프로젝트를 진행하며 Docker 환경에서 여러 컨테이너를 효과적으로 관리하기 위해 Portainer를 활용해보기로 했습니다. 특히, Main Server(192.168.0.25)에 있는 Docker 컨테이너뿐만 아니라 Sub Server(192.168.0.47)의 컨테이너들도 GUI 기반 툴을 이용해 한곳에서 관리하고자 했습니다. 이를 위해 Sub Server의 Docker Daemon 설정을 수정하고 Portainer Agent를 설치하여 Main Server의 Portainer에서 Sub Server를 연결하는 과정을 정리해보았습니다.
2. Sub Server에서 Docker Daemon 설정 수정
Main Server에서 Sub Server의 Docker 컨테이너를 관리하려면 Sub Server의 Docker Daemon을 외부 연결이 가능하도록 설정해야 합니다. 이를 통해 Portainer가 Sub Server에 설치된 Docker 환경과 통신할 수 있습니다.
2.1 Docker Deamon 설정 수정
1) docker.service
파일 수정
Sub Server에서 Docker Daemon 설정 파일인 docker.service
를 열어 수정합니다.
sudo nano /lib/systemd/system/docker.service
수정할 내용
ExecStart
라인을 아래와 같이 변경합니다.
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://192.168.0.47:2375 --containerd=/run/containerd/containerd.sock
수정된 옵션 설명
H fd://
: 기존의 로컬 소켓 연결 유지H tcp://192.168.0.47:2375
: Sub Server의 Docker Daemon이 192.168.0.47의 2375 포트를 통해 외부 요청을 받을 수 있도록 설정2375
: Docker Daemon의 외부 접근 포트(필요에 따라 변경 가능)
2) 파일 저장 및 종료
수정이 완료되었으면 아래 단축키를 사용해 파일을 저장하고 종료합니다.
- 저장:
Ctrl + O
→Enter
- 종료:
Ctrl + X
3) Systemd 데몬 재로드
파일 수정 후, systemd 데몬을 재로드하여 변경 사항을 반영합니다.
sudo systemctl daemon-reload
4) Docker 서비스 재시작
Docker 서비스를 재시작하여 변경된 설정을 적용합니다.
sudo systemctl restart docker
2.2 연결 확인
1) Main Server에서 연결 테스트
Main Server에서 Sub Server의 Docker Daemon에 연결 가능한지 아래 명령어로 확인합니다.
docker -H tcp://192.168.0.47:2375 ps
- Sub Server에 실행 중인 Docker 컨테이너 목록이 출력되면 설정이 성공적으로 적용된 것입니다.
3. Sub Server에 Portainer Agent 설치
Main Server의 Portainer와 Sub Server를 연결하려면 Sub Server에 Portainer Agent를 설치해야 합니다.
3.1 Portainer Agent 설치 및 진행
아래 명령어를 Sub Server에서 실행하여 Portainer Agent를 실행합니다.
docker run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
-v /:/host \
portainer/agent:2.21.2
옵션 설명
p 9001:9001
: Portainer Agent가 Sub Server의 9001 포트를 통해 수신/var/run/docker.sock
: Docker 제어를 위해 소켓을 마운트/var/lib/docker/volumes
: Docker 볼륨 액세스를 위해 마운트/:/host
: Sub Server의 호스트 시스템에 접근 제공
3.2 Portainer Agent 상태 확인
Portainer Agent가 정상적으로 실행 중인지 확인하려면 아래 명령어를 사용합니다.
docker ps
결과에 portainer_agent
가 표시되고 상태가 UP
으로 나타나야 합니다.
4. Main Server에서 Portainer 설정
Sub Server의 Docker 환경을 Main Server의 Portainer에 연결합니다.
4.1 Portainer UI에서 Sub Server 연결
- Portainer UI에 접속합니다.
- 해당 UI 왼쪽에 Environment-related에 Environments를 클릭합니다.
- Add environment를 클릭해서 환경설정을 추가해줍니다.
- Docker-Standalone을 선택하고 Start Wizard를 클릭합니다.
- Environment Wizard 화면에서 아래 설정을 진행합니다.
- Name:
Sub Server
(원하는 이름으로 설정) - Environment Address:
192.168.0.47:9001
(Sub Server의 IP와 Portainer Agent의 포트)
- Name:
4.2 연결 저장 및 확인
- 저장을 클릭한 후, Sub Server가 등록되고 Docker 환경이 표시되는지 확인합니다.
- Sub Server에 있는 Docker 컨테이너 목록이 표시되고, 이를 관리할 수 있는지 테스트합니다.
- 참고로 local은 Portainer가 설치되어 있는 Main Server입니다.
5. 결론
Portainer와 Portainer Agent를 활용하면 여러 서버의 Docker 환경을 효율적으로 관리할 수 있습니다. 특히, Sub Server의 Docker Daemon 설정과 Portainer Agent 설치는 서버 간 연결을 구성하는 핵심 단계였습니다.
핵심 요약
- Sub Server에서 Docker Daemon을 외부 접근 가능하도록 설정
- Sub Server에 Portainer Agent를 설치하여 Main Server의 Portainer에 연결
- Portainer UI에서 Sub Server를 추가하고 Docker 환경을 중앙에서 관리
'DevOps > Monitoring' 카테고리의 다른 글
[Monitoring] Prometheus와 MySQL Exporter로 Grafana MySQL DB 모니터링 시스템 구축하기 (0) | 2025.01.15 |
---|