맥북을 처음 사고 기본 설정과 프로그램 설치를 다하고 이제 docker를 켜볼까 하고 도커를 켰더니 "getting disk info: checking sparse support: creating dir /Users/baegjongseong/Library/Containers/com.docker.docker/Data/vms/0/data: mkdir /Users/baegjongseong: permission denied" 에러가 났다.
잘 읽어보면 User/baegjongseong 디렉토리의 권한이 없다는 이야기이다. 맥을 처음 개봉하고 사용자 이름을 백종성이라고 입력을 하였는데 자동번역이 되어서 홈 디렉터리의 이름이 baegjongseong로 설정이 되어서 jongseoung로 변경하고 기존 홈디렉토리를 삭제했었는데 아마 docker의 경로가 바꾸지 않아서 생긴 오류라고 생각하였다.
시도한 방법
도커 재 설치 및 재 실행
가장 먼저 한방법으로 도커를 재설치하고 다시 실행하였다. 처음에는 앱만 삭제하면 되는줄알고 앱만 삭제하였는데 같은 오류가 발생하였고 앱을 삭제해도 기존 데이터는 남아 있다는 것을 알게 되어 기존 데이터 파일 역시 전부 삭제하고 다시 설치하였지만 역시 위 오류는 고쳐지지 않았다. - 도커만 5번 이상 설치하고 제거한 것 같다.
도커 설정에서 경로 변경
이것 역시 시도해보았는데 도커 설정을 들어가는 부분부터 제대로 실행이 되지 않았다. 설정창이 뜨기 전에 getting disk info: checking sparse support: creating dir 경로 : permission denied 에러 창이 뜨면서 재실행 버튼과 exit 버튼이 나오는데 재실행 버튼을 누르면 같은 작업을 반복하였고 설정창은 들어가지 못하였다. 그리고 exit 버튼은 그냥 docker을 종료해 버려서 접근 자체가 불가능했다. 결국 아무 버튼을 누르지 않고 설정에 들어가서 기다렸는데.. 역시나 무한로딩만 되고 경로 변경은 할 수 없었다.
권한 주기
오류에서 볼수있듯 오류가난 이유는 디렉토리에 권한이 없어서 발생한 문제이다. 그래서 디렉토리 소유자 및 그룹의 권한을 바꾸려고 아래의 명령어도 입력해 보았다. 이때는 정말 도커를 몇 번이나 제거 설치하고 경로 설정해 보고 몇 시간이나 지난 상태에서 진행한 거라 정신이 나갔던 것 같다. 디렉토리 자체가 없는데 권한 변경이라니...
sudo chown -R baejongseoung:whell /Users/baejongseoung
해결방법
해결법은 생각보다 간단했지만 당시의 나로써는 접근할 생각조차 못했던 것 같다. 해결하고 나서 돌아보니 당연한 절차인데.. 왜 생각을 못했을까?
디렉토리 생성 & 권한 주기
결국 이 문제의 원인은 기존 디렉토리가 존재하지 않기 때문이다. 따라서 디렉토리를 생성하고 권한을 주었다.
디렉토리 생성
sudo mkdir -p [기존 경로]
#본인이 한 예시
sudo mkdir -p /Users/baegjongseong/Library/Containers/com.docker.docker/Data/vms/0/data
권한주기
sudo chown -R [현재사용자 이름]:wheel [삭제된 디렉토리]
#본인이 한 예시
sudo chown -R jongseoung:wheel /Users/baegjongseong
이렇게 설정을 하고 나니 도커가 실행이 되었다!!
하지만 이건 어디까지나 도커 데스크톱 앱이 실행이 된 것이지 이미지나 컨테이너는 만들거나 실행 종료가 되지 않았다. 하지만 도커 데스크톱이 켜진 이후 과정은 너무 스무스하게 흘려가서 다행이었다.
도커 이미지 파일 경로 변경
이미지 파일 경로는 도커 데스크톱에서 아래 위치에서 변경할 수 있었다.
위에서 시도 방법 2 - 도커이미지 파일 변경 을 하기 위해서 내가 기다렸던 장면이다.
이후 Browse를 눌러서 이미지 경로를 홈디렉터리만 변경하여 저장해 주었다.
docker 종료 & 과거 디렉토리 삭제
이후에는 도커를 종료하고 기존 디렉토리를 삭제하였다.
docker stop #도커 종료
sudo rm -rf /Users/baegjongseong #기존 디렉토리 제거
권한주기
드디어 마지막으로 새로 만들었던 jongseoung[홈디렉토리]에 권한을 넣어주면 된다.
sudo chown -R $USER:staff /Users/jongseoung
그리고 컴퓨터를 재부팅하였더니 정상적으로 작동이 되었다.
본인은 위 순서대로 하여서 되었는데 막상 다하고 나니 맨 마지막에 권한주기랑 이미지 경로만 변경했어도 됐을 거 같지만 그걸 알기 위해서 똑같은 에러를 만드는 건 조금 아니라고 생각해서 그냥 알고만 있기로 했다.
'Django > 인프라' 카테고리의 다른 글
[AWS Lightsail] 리눅스 가상머신 생성 (0) | 2024.08.06 |
---|---|
가상머신 VS 컨테이너 (0) | 2023.12.18 |
Docker image와 container 만들기 (0) | 2023.05.02 |
Docker - 네트워크 연결과 명령어, index.html 수정 (0) | 2023.04.18 |
Docker - 개념과 간단한 명령어 (0) | 2023.04.18 |