문제 상황
Docker를 사용하여 작업을 하던 중 demon이 손상되었다는 에러가 발생했습니다.
Mac에서 Docker는 Docker Desktop을 통해 관리되기 때문에 Docker Desktop을 확인한 결과 꺼져있었고, 다시 실행하는 순간 위와 같은 에러가 발생했습니다.
문제 해결 시도 1 → 실패 ❌
구글링을 해서 찾던 와중 휴지통을 비우고, 도커를 다시 설치하면 문제가 해결이 된다고 해서 시도해보았습니다.
"손상되었기 때문에 열 수 없습니다." 알림을 사라졌지만, 이번에는 위와 같은 알림이 뜨면서 Docker Desktop을 여전히 열 수 없었습니다...
mac 업데이트가 안되어 있었기 때문에 업데이트를 하고, 다시 재설치를 해보았지만 이번에도 같은 알림이 발생했습니다.
문제 해결 시도 2 → 실패 ❌
구글링을 계속해서 하던 중 stackoverflow에서 같은 문제를 겪고있는 다른 이들이 있었습니다.
1. Applications → Docker → Show Package Contents(패키지 내용 보기) 클릭
2. Contents → macOS → Docker Desktop 클릭
Docker Desktop을 클릭하면 정상적으로 실행이 되는 이들이 있지만 필자는 계속 발생하던 알람 에러는 발생하지 않았지만 Docker Desktop이 실행이 여전히 안되었습니다.
문제 해결 시도 3 → 성공 ✅
이제 문제는 Docker 실행은 되지만 Docker Desktop이 실행이 무시되고, 프로세스 실행 목록에 없어서, 몇번을 재설치를 해보아도 해결되지 않은 상태입니다.
해결방법은 공식 홈페이지 release 노트에 Known issues로 보고되어있고, 해결방법도 간단합니다.
해결 방법
- 1. 도커가 실행되고 있다면 종료한다.
- 2. 아래의 명령어를 터미널에 입력한다.
sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools/
sudo cp /Applications/Docker.app/Contents/MacOS/com.docker.socket /Library/PrivilegedHelperTools/
- 3. Docker Desktop 실행
해당 명령은 Docker 데몬이 정상적으로 작동하도록 필요한 파일을 시스템에 복사하는 과정입니다.
1. 명령어
sudo cp /Applications/Docker.app/Contents/Library/
LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools/
- com.docker.vmnetd:
- Docker Desktop이 네트워크 설정 및 가상 머신(VM) 네트워크를 관리하는 데 사용하는 Helper Tool(도움 프로그램)입니다.
- 이 파일을 /Library/PrivilegedHelperTools/ 디렉토리에 복사하면, macOS에서 이 도구가 루트 권한으로 실행될 수 있게 됩니다.
- 이는 Docker가 네트워크 브리지를 설정하거나, 가상화 네트워크를 관리하기 위해 필요한 작업입니다.
2. 명령어
sudo cp /Applications/Docker.app/Contents/MacOS/com.docker.socket /
Library/PrivilegedHelperTools/
- com.docker.socket:
- Docker Daemon과 클라이언트가 통신할 수 있도록 소켓(docker.sock)을 설정하는 데 사용하는 파일입니다.
- 이 파일을 /Library/PrivilegedHelperTools/에 복사함으로써, Docker 데몬이 클라이언트 요청을 수신할 수 있는 환경을 설정합니다.
즉, Docker가 mac에서 네트워크 및 데몬 권한을 사용할 수 없었기 때문에 문제가 발생했고, Docker가 macOS에서 네트워크 및 데몬 권한을 제대로 사용할 수 있도록 도움을 주는 설정 작업을 통해 문제를 해결했습니다.