도커를 활용한 서비스 배포하기 (일반사용자 권한 부여) #8
2022. 7. 1. 17:48ㆍTech Note
728x90
도커를 활용한 서비스 배포하기 (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
'Tech Note' 카테고리의 다른 글
ES6+TypeScript의 getter, setter, 접근제한자 활용하는 방법 (0) | 2024.03.26 |
---|---|
도커를 활용한 서비스 배포하기 (오프라인 설치 .tgz) #9 (0) | 2022.07.18 |
도커를 활용한 몽고 DB 설치하기 #3 (MongoDB Compass) (0) | 2022.06.27 |
도커를 활용한 몽고 DB 설치하기 #2 (Robomongo) (0) | 2022.06.27 |
도커를 활용한 몽고 DB 설치하기 #1 (0) | 2022.06.27 |