본문 바로가기
Backend MLOps/개인 환경 구축 기록

[ 자취방 워크스테이션 ] #16 우분투에서 sudo없이 도커 사용하기

by SteadyForDeep 2021. 3. 13.
반응형

//1

도커 설치만 했다고 다 끝나는 것은 아니다.

도커 공식홈페이지 설명에 따르면

도커 컨데이너는

UNIX 소켓에 물려있고

TCP 포트에는 물려있지 않다.

그래서 TCP포트 등을 사용하려면

호스트OS인 리눅스의 관리자 root의 허락이 필요하다.

 

 

 

 

그러니까

엄마랑 싸우고 내방에 들어왔는데

친구가 피씨방 가자고 하면

거실에 있는 엄마를 안 마주치고는

도저히 나갈 수 있는 방법이 없다는 말이다.

 

내 방문은 열어봤자 집안 거실로 이어져있고

진짜 밖으로 나가려면 엄마 역할을 하는

루트계정이 허락해야

집 밖으로 나갈 수 있는 것이다.

 

루트 계정의 권한을 잠깐 양도 받는 방법은

sudo를 커멘드 맨 앞에 붙이는 것으로

도커를 군데군데 손보기 위해서는

sudo를 계속해서 붙여줘야한다.

 

이게 생각보다 매우 귀찮다.(sudo를 수도 없이 붙여야 하므로.. 낄낄)

 

그래서 리눅스에서는 계정을 묶어서 관리하는

'그룹'이라는 단위가 존재하고

특정 그룹에 속한 계정들에는 동일한 권한을 부여할 수 있다.

 

즉 내가 주로 사용하는 계정을 어떤 그룹에 포함시키고

그 그룹에 슈퍼유저 권한을 주면

sudo를 안쳐도 도커를 사용할 수 있다.

 

물론 선택적으로 활용하면 되는 방식이므로

개인용 서버가 아니라면

이 방법을 적용하는 것을 그렇게 추천하지는 않는다.

도커에서도 분명히 이 방법의 보안정책에 대해서

경고를 하고 있으므로 숙지하길 바란다.

 

$ sudo groupadd docker

이 명령어로 docker라는 그룹을 하나 만들어서 추가할 수 있다.

아마 이미 존재한다고 나올 것이다.

 

$ sudo usermod -aG docker $USER

이 명령어는 유저를 도커그룹에 추가한다는 것으로

내 계정을 docker에 추가하는 과정이다.

echo $USER를 해보면 자신의 계정 이름이 나오는 것을 알 수 있다.

 

이 명령후에는 컴퓨터를 리부트 해준다.

 

혹은 newgrp docker 라는 명령어로

새로 만들어진 그룹의 효과를 적용할 수 있다고 하지만

그냥 속편하게 리부트 해주는게 좋다.

 

이 작업만 해줘도 간단하게 sudo 없이 도커를 사용할 수 있다.

 

 

 

 

반응형

댓글