일반적으로 Docker는 컨테이너 내에서 root로 프로세스를 실행한다.
컨테이너 내에서 일반 사용자로 프로세스를 실행하려면 --user 옵션으로 uid를 지정하거나 Dockerfile에 정의하면 된다.
--user 옵션
docker run -it --user <UID> ubuntu bash
username이 없는 이유는 컨테이너 내에 uid 1000으로 지정된 사용자가 없기 때문이다.
Dockerfile
없는 사용자를 지정하지 않도록 Dockerfile 정의에 사용자를 먼저 생성한 뒤, 로그인 사용자를 지정해본다.
FROM ubuntu
RUN useradd docker_user -u 1000 -m -s /bin/bash
USER 1000
위 Dockerfile로 빌드한 이미지를 이용하여 --user 옵션 없이 컨테이너를 실행해보면 root가 아닌 일반 사용자로 컨테이너에 접속한 것을 확인할 수 있다.