We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
도커 컨테이너 어플리케이션을 호스트 머신의 유저로 실행하기
도커는 별다른 설정 없을 시 컨테이너를 호스트의 root로 실행한다. 사용자 애플리케이션을 실행시켜야 하는데 root를 쓰는 편이 더 편했기 때문이다. (패키지 설치가 쉽고, 리소스 제약이 없기 때문임)
root
도커 컨테이너의 스프링 부트에서 로그를 호스트 머신의 디렉토리에 남기고 싶었다.
디렉토리를 rw 로 마운트 하였지만, (어플리케이션 로그는 작성이 되고) 톰캣 access log 는 Permission denied 가 떴다. 디렉토리의 권한을 변경하면 해결되는 문제였지만, 777 은 뭔가 꺼려졌다.
Permission denied
777
보안상 사용을 지양하고 있다.
그리고 호스트 머신의 유저와 어플리케이션 유저가 늘 같다는 전제가 있었다.
리서치 한 방법으로는 2가지 방법이 있다.
도커 실행 명령 시 호스트 머신의 id 값을 넘기는 것이다.
id
UID=$(id -u) GID=$(id -g) docker run -it -d --user ${UID}:${GID} <IMAGE NAME>
실행 할 때 bash 에 UID, GID 가 이미 설정 되어 있다면 warn 로그가 뜰 수도 있다.
bash
UID
GID
호스트 머신의 유저 정보를 이미 알고 있다고 가정 하에 해당 UID 와 GID 로 동일하게 유저 정보 추가해서 사용하는 것이다. (adduser 옵션 확인)
RUN addgroup -g <GID> -S <USER> && adduser -u <UID> -D <USER> -G <USER> -H USER <USER>
도커는 기본적으로 호스트의 user namespace 를 쓴다. (도커가 호스트의 user filesystem 접근이 가능함 이 때문에 보안이슈가 있다.)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
목적
도커 컨테이너 어플리케이션을 호스트 머신의 유저로 실행하기
이유
도커 컨테이너의 스프링 부트에서 로그를 호스트 머신의 디렉토리에 남기고 싶었다.
디렉토리 마운트
디렉토리를 rw 로 마운트 하였지만, (어플리케이션 로그는 작성이 되고) 톰캣 access log 는
Permission denied
가 떴다. 디렉토리의 권한을 변경하면 해결되는 문제였지만,777
은 뭔가 꺼려졌다.priviledged
보안상 사용을 지양하고 있다.
그리고 호스트 머신의 유저와 어플리케이션 유저가 늘 같다는 전제가 있었다.
호스트 머신의 유저로 실행하기
리서치 한 방법으로는 2가지 방법이 있다.
도커 이미지 실행 시 호스트의 유저 정보로 실행하기
도커 실행 명령 시 호스트 머신의
id
값을 넘기는 것이다.도커 이미지 빌드 시 호스트의 유저 정보와 동일하게 추가하여 사용하기
호스트 머신의 유저 정보를 이미 알고 있다고 가정 하에 해당
UID
와GID
로 동일하게 유저 정보 추가해서 사용하는 것이다. (adduser 옵션 확인)기타
도커는 기본적으로 호스트의 user namespace 를 쓴다. (도커가 호스트의 user filesystem 접근이 가능함 이 때문에 보안이슈가 있다.)
참고
The text was updated successfully, but these errors were encountered: