얼마 전에 겪었던 시놀로지 나스의 Docker 서비스 장애를 해결한 방법입니다.
혹시 도움이 되실 분이 계실지 몰라서 제가 장애 해결한 방법을 남깁니다.
증상
나스 부팅 후 도커 서비스가 실행되지 않는 문제 (서비스가 무한 시작 중)
원인
도커 서비스 네트워크 DB가 꼬여서 발생하는 문제
이 부분은 정확하지 않지만 구글링을 해보니 종종 발생하는 문제인 것으로 보입니다.
해결
도커 서비스의 네트워크 DB 파일을 삭제 후 다시 생성
절차
1. SSH로 터미널 접속 후 docker 서비스 정지
- 명령어 : synopkgctl stop docker 또는 systemctl stop docker
- 명령어 먹지 않을 경우 ps -ef | grep -i docker 로 프로세서 확인 후 kill 명령으로 강제 종료
2. 도커 네트워크 관련 DB 파일 삭제
- 경로 : /volume1/@docker/network/files/local-kv.db (해당 경로는 본인 나스 환경에 따라 달라집니다.)
- 해당 파일 삭제 또는 다른 이름으로 변경
- 도커 서비스가 시작하면서 DB 파일 다시 생성
3. 도커 서비스 시작
- 명령어 : synopkgctl start docker 또는 systemctl start docker
4. 일부 컨테이너는 네트워크를 찾지 못하여 서비스가 실행이 안됨 (아래 내용은 제 사견입니다.)
- 해당 문제는 네트워크가 브릿지 환경인 컨테이너들의 경우가 많았음
- 특히 브릿지 환경 중에서도 컨테이너 생성시 network=bridge 옵션을 주지 않고 port 옵션만 할당한 경우에 해당됨 (yml 파일이나 docker 명령어 이용)
- 이렇게 만들 경우 단독 도커 네트워크를 생성해서 도커 컨테이너에 할당하는데 도커 네트워크 관련 디비 파일인 local-kv.db 파일이 삭제되면서 이런 네트워크 정보가 삭제되면서 생기는 문제로 추측됨
5. 컨테이너 Portainer 생성
6. Portainer에서 장애 컨테이너의 네트워크를 변경하여 서비스 실행
- 기본 네트워크 옵션인 host, bridge 만 존재
- 기본 네트워크를 컨테이너에 맞게 할당
오늘 새벽 부터 갑자기 안되네요.
재부팅하면 잠깐 잡혔다가 불통이되는게...증상인데요
저와 비슷한 증상인거 같습니다.
아주 잠깐 실행 중으로 되었다가 다시 무한정으로 시작 중으로 바뀌고 도커 서비스를 제대로 실행하지 못해서 DSM 상에서는 도커 서비스 중지도 못하는 상태였습니다.
맞나바요 ㅠ
써주신 글 보면서 한번 해보겠습니다
감사합니다