Docker

[Docker] 컨테이너 내 프로세스를 일반 사용자로 실행

비번변경 2021. 7. 10. 18:13

일반적으로 Docker는 컨테이너 내에서 root로 프로세스를 실행한다.

 

docker 컨테이너 기본 실행자 확인

컨테이너 내에서 일반 사용자로 프로세스를 실행하려면 --user 옵션으로 uid를 지정하거나 Dockerfile에 정의하면 된다.

 

--user 옵션

docker run -it --user <UID> ubuntu bash

docker --user

username이 없는 이유는 컨테이너 내에 uid 1000으로 지정된 사용자가 없기 때문이다.

 

Dockerfile

없는 사용자를 지정하지 않도록 Dockerfile 정의에 사용자를 먼저 생성한 뒤, 로그인 사용자를 지정해본다.

FROM ubuntu
RUN useradd docker_user -u 1000 -m -s /bin/bash
USER 1000

dockerfile로 사용자 지정

위 Dockerfile로 빌드한 이미지를 이용하여 --user 옵션 없이 컨테이너를 실행해보면 root가 아닌 일반 사용자로 컨테이너에 접속한 것을 확인할 수 있다.