TIL icon indicating copy to clipboard operation
TIL copied to clipboard

docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우

Open occidere opened this issue 5 years ago • 24 comments

docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우

상황

  • docker 설치 후 usermod로 사용자를 docker 그룹에 추가까지 완료 후 터미널 재접속까지 했으나 permission denied 발생 (설치 참고: https://blog.naver.com/occidere/221390946271)
DEV-[occiderepi301:/home/occidere] docker ps -a
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied

해결

  • /var/run/docker.sock 파일의 권한을 666으로 변경하여 그룹 내 다른 사용자도 접근 가능하게 변경
sudo chmod 666 /var/run/docker.sock
  • 또는 chown 으로 group ownership 변경
sudo chown root:docker /var/run/docker.sock

참고

occidere avatar Oct 20 '19 09:10 occidere

감사합니다

raycon avatar Dec 03 '20 07:12 raycon

저도 감사합니다.

koreaward-6 avatar Dec 04 '20 04:12 koreaward-6

저도 감사합니다.

holysinger avatar Dec 04 '20 04:12 holysinger

sudo /usr/sbin/groupadd -f docker
sudo /usr/sbin/usermod -aG docker `user`
sudo chown root:docker /var/run/docker.sock

이렇게 하시는 게 ...

wiany11 avatar Dec 15 '20 07:12 wiany11

@wiany11 님 우선 내용 추가 감사드립니다 👍🏼

다만, groupaddusermod 는 본문에 첨부된 블로그 내용에 포함되어 있으므로, 아래 chown 부분만 본문 내용에 추가하겠습니다~

다시한번 감사드립니다 :)

occidere avatar Dec 15 '20 08:12 occidere

usermod로 그룹에 추가해주고 나면 터미널을 로그아웃하고 다시 로그인해야 해당 설정이 적용됩니다. 소유자 변경을 진행하지 마시고, 터미널 로그아웃 후 재로그인해보세요 👍

jwkcp avatar Dec 20 '20 06:12 jwkcp

@jwkcp 님 내용 추가 감사드립니다!

대부분의 경우 바로 적용되거나, 말씀주신대로 터미널 재시작 후 적용되는데요, 일부 환경에서는 터미널 재시작 후에도 적용이 어려운 경우가 있었습니다 (특히 참고 링크와 같이 본인이 아닌 jenkins 등 써드파티에서 도커를 사용하는 경우)

이런 케이스를 고려하여 권한 변경 방법을 정리했었는데, 대부분의 경우에 대한 리마인드를 위해 말씀주신 내용도 본문에 반영하겠습니다

감사합니다 👍🏼

occidere avatar Dec 20 '20 08:12 occidere

Thank you!!

GloryKim avatar Dec 23 '20 11:12 GloryKim

감사합니다 💡🧂👍🏻

minSW avatar Jan 05 '21 05:01 minSW

감사합니다!!

SONSAZANG avatar Jan 20 '21 08:01 SONSAZANG

감사합니다~!

iheee6-6 avatar Jul 13 '21 01:07 iheee6-6

감사합니다 ~! 딱 여기서 막혔었는데 해결했습니다. ~!!

json91-dev avatar Jul 17 '21 10:07 json91-dev

감사합니다!! 잘 해결했습니다.

JayKimDeveloper avatar Aug 05 '21 04:08 JayKimDeveloper

해결 방법 공유 감사합니다. 그런데 컨테이너 내부에서 owner를 컨테이너 내부의 docker 그룹으로 바꾸었더니 호스트의 /var/run/docker.sock 파일의 소유 그룹이 엉뚱하게 되는 문제가 있었습니다. 아래와 같은 방법으로 호스트와 컨테이너 간 docker 그룹의 id를 맞춰주는 방법이 더 낫지 않을까요? 666권한을 주는 것은 보안 문제가 있을 수 있을 것 같고요.

https://blog.dasomoli.org/docker-docker-in-docker%ec%9d%98-permission-denied-%eb%ac%b8%ec%a0%9c/

justin-themedium avatar Jan 07 '22 05:01 justin-themedium

@justin-themedium 안녕하세요 justin 님! 좋은 내용 공유주셔서 감사합니다

다만 제가 기록했던 당시 상황은 physical machine 에 docker 를 설치하는 케이스였고, Container 내에서 도커를 구축해 사용하는 경우는 고려하지 않았었습니다. 따라서 이런 상황에선 말씀주신 내용들이 발생할 가능성이 높지 않으나 추가적으로 알아두면 좋은 내용인 것 같아 참고 링크에 추가하겠습니다!

다시 한번 좋은 내용 공유주셔서 감사합니다!

occidere avatar Jan 07 '22 05:01 occidere

엇! 제가 문제 자체를 잘못 이해했군요. 그냥 알 수 없는 이유로 해당 파일의 권한 문제가 발생했을 때로군요.

제가 도커 컨테이너 안에서의 문제를 겪어서 그랬었나 봅니다. 부끄럽네요..

justin-themedium avatar Jan 07 '22 07:01 justin-themedium

@justin-themedium 아닙니다 ㅎㅎ 요즘은 nested 형태로도 쓰는 경우가 종종 있는데 덕분에 좋은 내용 추가할 수 있었던 것 같습니다~

occidere avatar Jan 07 '22 08:01 occidere

sudo groupadd docker
sudo usermod -aG docker $USER
sudo newgrp docker

docker.sock을 666으로 하면 실제 서비스할때 보안에 취약해져요

elastichomelab avatar Nov 03 '22 16:11 elastichomelab

@OneDriveDelete 네 조언 감사합니다. 관련하여 group ownership 변경하는 방법도 본문에 추가되어 있습니다. 상황에 맞춰 방법을 선택하여 사용하면 될 듯 싶습니다. 감사합니다.

occidere avatar Nov 04 '22 07:11 occidere

해결 방법 공유 감사합니다. 그런데 컨테이너 내부에서 owner를 컨테이너 내부의 docker 그룹으로 바꾸었더니 호스트의 /var/run/docker.sock 파일의 소유 그룹이 엉뚱하게 되는 문제가 있었습니다. 아래와 같은 방법으로 호스트와 컨테이너 간 docker 그룹의 id를 맞춰주는 방법이 더 낫지 않을까요? 666 권한을 주는 것은 보안 문제가 있을 수 있을 것 같고요.

https://blog.dasomoli.org/docker-docker-in-docker%ec%9d%98-permission-denied-%eb%ac%b8%ec%a0%9c/

해당 이슈는 fid에 따른 파일이 고유한데 그걸 docker, host 네트워크 각각 다른 유저 namspace에서 다뤄 생기는 일입니다. 해당 이슈를 정확히 해결하기 위해서는 커맨드를 내부적으로 실행할 컨테이너를 만드실 때 /etc/group 유저 네임스페이스까지 같이 동일하게 바인딩 해주시는게 좋습니다.

heeda-namu avatar May 08 '23 01:05 heeda-namu

감사합니다

ShinguHan avatar Sep 18 '23 15:09 ShinguHan

도움이 되었습니다 감사합니다.

sunghomong avatar Feb 14 '24 12:02 sunghomong

감사합니다!

okyungjin avatar Feb 25 '24 09:02 okyungjin

sudo groupadd docker
sudo usermod -aG docker $USER
sudo newgrp docker

docker.sock을 666으로 하면 실제 서비스할때 보안에 취약해져요

After doing this, I had to reboot PC. After that it worked well. Thanks!

bigbellmercy avatar Mar 19 '24 06:03 bigbellmercy