네트워크 & 인프라

Docker /usr/local/Homebrew is not writable, Cannot connect to the Docker daemon 문제 해결

dodop 2024. 6. 4. 22:39

 

/usr/local/Homebrew is not writable 문제 발생 

 

만약 brew upgrade docker 명령어를 실행할 때, 다음과 같이 /usr/local/Homebrew is not writable문제가 발생한다면, 

Error: /usr/local/Homebrew is not writable. You should change the
ownership and permissions of /usr/local/Homebrew back to your
user account:
  sudo chown -R user /usr/local/Homebrew
==> Downloading https://formulae.brew.sh/api/formula.jws.json
######################################################################################################################## 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
######################################################################################################################## 100.0%
==> Downloading https://formulae.brew.sh/api/cask_tap_migrations.jws.json
######################################################################################################################## 100.0%
Warning: Treating docker as a formula. For the cask, use homebrew/cask/docker
Error: The following directories are not writable by your user:
...

You should change the ownership of these directories to your user.
  sudo chown -R user /usr/local/Homebrew /usr/local/etc/bash_completion.d /usr/local/lib/pkgconfig /usr/local/lib/python3.7/site-packages /usr/local/share/aclocal /usr/local/share/doc /usr/local/share/info /usr/local/share/locale /usr/local/share/man /usr/local/share/man/man1 /usr/local/share/man/man3 /usr/local/share/man/man5 /usr/local/share/man/man7 /usr/local/share/man/man8 /usr/local/var/homebrew/locks /usr/local/var/log

And make sure that your user has write permission.
  chmod u+w /usr/local/Homebrew /usr/local/etc/bash_completion.d /usr/local/lib/pkgconfig /usr/local/lib/python3.7/site-packages /usr/local/share/aclocal /usr/local/share/doc /usr/local/share/info /usr/local/share/locale /usr/local/share/man /usr/local/share/man/man1 /usr/local/share/man/man3 /usr/local/share/man/man5 /usr/local/share/man/man7 /usr/local/share/man/man8 /usr/local/var/homebrew/locks /usr/local/var/log

 

주어진 메세지에 따라 다음과 같이 권한을 부여해준다. 

 

%   sudo chown -R user /usr/local/Homebrew /usr/local/etc/bash_completion.d /usr/local/lib/pkgconfig /usr/local/lib/python3.7/site-packages /usr/local/share/aclocal /usr/local/share/doc /usr/local/share/info /usr/local/share/locale /usr/local/share/man /usr/local/share/man/man1 /usr/local/share/man/man3 /usr/local/share/man/man5 /usr/local/share/man/man7 /usr/local/share/man/man8 /usr/local/var/homebrew/locks /usr/local/var/log
Password:
%   chmod u+w /usr/local/Homebrew /usr/local/etc/bash_completion.d /usr/local/lib/pkgconfig /usr/local/lib/python3.7/site-packages /usr/local/share/aclocal /usr/local/share/doc /usr/local/share/info /usr/local/share/locale /usr/local/share/man /usr/local/share/man/man1 /usr/local/share/man/man3 /usr/local/share/man/man5 /usr/local/share/man/man7 /usr/local/share/man/man8 /usr/local/var/homebrew/locks /usr/local/var/log

 

 

 

 

Cannot connect to the Docker daemon at unix:///var/run/docker.sock

 

docker 명령어 실행시에 다음과 같이 docker의 설치파일 충돌로 Cannot connect to the Docker daemon  문제가 발생했다. 

% docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql 

docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

 

 

나의 케이스의 경우 이전에 docker를 home brew로 설치하지 않아, brew연결이 되어있지 않았기 때문에 기존 docker를 삭제하고 재설치 하는 방법을 선택했다. 

 

# docker가 연결되어 있지 않음 확인 
% brew link docker
Error: No such keg: /usr/local/Cellar/docker

# 기존 docker 위치 확인 
% which node
/Users/user/.nvm/versions/node/v16.1.0/bin/node
% which docker
/usr/local/bin/docker

# 기존 docker 삭제 
% sudo rm -rf /usr/local/bin/docker

# brew로 docker 재설치 
% brew install --cask docker