Tech Note

도커를 활용한 서비스 배포하기 (일반사용자 권한 부여) #8

Dominic-Kim 2022. 7. 1. 17:48
728x90

https://do-mi.tistory.com/12

 

도커를 활용한 서비스 배포하기 (rpm 설치) #1

현재 패치 및 가용성 문제를 해결하기 위해 docker를 설치해야 하는 서버는 dmz망과 같이 특정 대역에서의 접속만 허용이 되어있는 상태 yum install 불가 직접 rpm 파일을 받아서 패치하기로 결정 먼

do-mi.tistory.com

 

해당 과정을 통해 Docker 설치 후 Root 권한을 계속 사용 할 수 없는 문제가 있다는 것 잊고 있었다.

특정 유저로 터미널 로그인 후 도커를 사용하려고 하니 아래와 같이 Permission Denied 메세지가 발생한다.

실서버 작업을 하기 전에 인지하게 되서 다행이라 생각하고 작업을 진행해보도록 하자.

[user@localhost docker]$ docker run hello-world
docker: 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/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

 

일반적인 경우 루트 권한으로 아래 명령어를 입력하는 것만으로도 해결이 된다.

Docker Group에 권한 추가

usermod -aG docker ${USER}

systemctl restart docker

 

글쓴이의 경우 해당 명령어를 입력해도 해결이 되지 않아 확인해보니

docker.sock 파일에 대한 권한이 있어야 하는 것으로 확인되었다. 지금 보는 화면에서는

root:root로 되어 있어 docker group 을 추가해도 권한이 부여되지 않은 것으로 보인다.

[root@localhost run]$ cd /var/run
[root@localhost run]$ ll -al docker*
-rw-r--r-- 1 root root   5  7월  1 16:55 docker.pid
srw-rw---- 1 root root   0  7월  1 16:45 docker.sock

 

파일 권한 변경

chown 명령어를 통해 docker group이 권한을 부여 받을 수 있도록 설정해준다.

[root@localhost run]$ chown root:docker docker.*
[root@localhost run]$ ll -al docker.*
-rw-r--r-- 1 root docker 5  7월  1 16:55 docker.pid
srw-rw---- 1 root docker 0  7월  1 16:45 docker.sock

 

일반 유저에서 실행

이제 별도의 root권한 없이 일반 유저도 docker가 정상적으로 실행되는 것을 확인 할 수 있다!

[user@localhost run]$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

기존 root 권한으로 설정했던 이미지도 잘 조회된다.

[user@localhost run]$ docker image list
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
db_svr        1         b295d12adb57   10 days ago    199MB
web_svr       1         0a76c559887d   10 days ago    763MB
nginx_svr     1         1945581a5eef   10 days ago    392MB
hello-world   latest    feb5d9fea6a5   9 months ago   13.3kB