본문 바로가기
devops/docker

도커 실행 권한문제 - dial unix /var/run/docker.sock: connect: permission denied

by 아이티.파머 2023. 4. 17.
반응형

도커 실행 권한문제 - dial unix /var/run/docker.sock: connect: permission denied

docker pull harbor.mezzomedia.co.kr/media-report/msa/crawler-server@sha256:6d05174d3ca540258f08a3f2cc84823f8baabe8b0b0b2affebe3d546f701b0c9
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=harbor.mezzomedia.co.kr%2Fmedia-report%2Fmsa%2Fcrawler-server&tag=sha256%3A6d05174d3ca540258f08a3f2cc84823f8baabe8b0b0b2affebe3d546f701b0c9: dial unix /var/run/docker.sock: connect: permission denied

docker 를 설치하고 난뒤 권한이 없어서 명령어를 실행하지 못하는 오류이다.

  • var/run.docker.sock 에 권한이 없어서 나타나는 증상

docker 그룹을 만들어 추가하고 id 명령어를 사용하여 그룹에 잘 추가되었는지 확인한뒤에 sudo 를 넣지 않고도 동작되는지 확인해보자

docker group 에 ${USER}추가

sudo groupadd docker
[sudo] mezzo의 암호:
groupadd: 'docker' 그룹이 이미 있습니다

// 이미 등록된 경우엔 그룹이 있다고 나온다. 

// 다음단계로 docker 그룹에 ${USER} 를등록한다.
sudo usermod -aG docker ${USER}

// 로그아웃후 재로그인 혹은 다음명령어 실행
newgrp docker

docker 그룹에 추가전

[mezzo@AErepoAnalysis-12-92 ~]$ id
uid=1000(mezzo) gid=1000(mezzo) groups=1000(mezzo),10(wheel)

docker 그룹에 추가후

시스템 재기동후 ‘id’ 명령어로 그룹에 추가된걸 확인 할 수있다.

[mezzo@AErepoAnalysis-12-92 ~]$ id
uid=1000(mezzo) gid=1000(mezzo) groups=1000(mezzo),10(wheel),**994(docker)**

docker 명령어 사용하여 정상적으로 작동되는 것을 확인 할 수있다.

mezzo-skan@mezzoui-MacBookPro ~ % docker container ls -a
CONTAINER ID   IMAGE                                 COMMAND                  CREATED         STATUS                        PORTS                                                           NAMES
22cbea3f9b43   confluentinc/cp-kafka:5.5.1           "/etc/confluent/dock…"   2 weeks ago     Exited (1) 2 weeks ago                                                                        kafka-docker_kafka-1_1
703cb2bfcd99   confluentinc/cp-kafka:5.5.1           "/etc/confluent/dock…"   2 weeks ago     Exited (255) 6 days ago       9092/tcp, 0.0.0.0:9094->9094/tcp, :::9094->9094/tcp             kafka-docker_kafka-3_1
22694861a7a8   confluentinc/cp-kafka:5.5.1           "/etc/confluent/dock…"   2 weeks ago     Exited (255) 6 days ago       9092/tcp, 0.0.0.0:9093->9093/tcp, :::9093->9093/tcp             kafka-docker_kafka-2_1
c0d507c3a2f4   provectuslabs/kafka-ui                "/bin/sh -c 'java $J…"   2 weeks ago     Exited (143) 6 days ago                                                                       kafka-ui
ec24975ea85c   confluentinc/cp-zookeeper:5.5.1       "/etc/confluent/dock…"   2 weeks ago     Exited (255) 6 days ago       2888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 3888/tcp   kafka-docker_zookeeper-1_1
77eaf95fb82e   gcr.io/k8s-minikube/kicbase:v0.0.37   "/usr/local/bin/entr…"   7 weeks ago     Exited (130) 5 weeks ago                                                                      minikube
7b439feeec54   mysql:5.7.21                          "docker-entrypoint.s…"   11 months ago   Exited (128) 8 months ago     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp                       mysql
41a7484b9a64   mysql:5.7.21                          "docker-entrypoint.s…"   11 months ago   Exited (255) 6 months ago     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp                       aereport-mysql
bdd2033dd2c8   redis:alpine                          "docker-entrypoint.s…"   11 months ago   Exited (255) 7 weeks ago      0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                       redis_boot
cf3ef5c3d786   aereport-docker_jenkins               "/sbin/tini -- /usr/…"   14 months ago   Exited (143) 11 seconds ago                                                                   ae_report_jenkins
e907cd257e9d   adminer                               "entrypoint.sh docke…"   14 months ago   Exited (0) 11 months ago                                                                      mysql-adminer
02c02bab0af3   alpine/git                            "git clone https://g…"   19 months ago   Exited (0) 19 months ago                                                                      repo

mezzo-skan@mezzoui-MacBookPro ~ % docker start e907cd257e9d
e907cd257e9d

# 프로세스 확인
mezzo-skan@mezzoui-MacBookPro ~ % docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                       NAMES
e907cd257e9d   adminer   "entrypoint.sh docke…"   14 months ago   Up 2 seconds   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp   mysql-adminer
mezzo-skan@mezzoui-MacBookPro ~ %

위방법외에 또다른 방법으로는, 권한이 거부되면 간단하게 파일의 권한을 모든 사용자가 사용할수있게 chmod로 변경해 주고 사용해도된다. 모두 사용할수있게 하는건 보안에 취약할테니 특정 계정을 그룹에 포함시켜주는게 좋다.

sudo chmod 666 /var/run/docker.sock

편의를 위해 특정 계정에 docker 권한을주입하긴 하지만, 보안상 하지 않는게 좋다고는한다. 그러기에 특정계정에만 사용할수있도록 해주고, 모든 계정에서 사용도지 않도록 주의한다.

반응형

'devops > docker' 카테고리의 다른 글

docker env, arg 차이점  (1) 2024.04.07
dockerfile에 springboot profile 적용하기  (1) 2024.04.07
docker-compose mysql 설정 및 sql init  (0) 2022.01.14
docker-compose jenkins  (0) 2022.01.14
docker-compose 옵션 기본 명령어  (0) 2021.04.29