Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- zookeeper
- redis
- Python
- DP
- Java
- dynamic programming
- docker
- HBase
- 코드워
- leetcode
- 리눅스
- 동적프로그래밍
- 스칼라
- golang
- Go언어
- Linux
- 튜토리얼
- 파이썬
- codewars
- 알고리즘
- gradle
- OOM
- programmers
- 문제풀이
- 자바
- 주키퍼
- go
- boj
- 프로그래머스
- scala
Archives
- Today
- Total
파이문
도커 컨테이너 어플리케이션을 호스트 머신의 유저로 실행하기 본문
728x90
목적
도커 컨테이너 어플리케이션을 호스트 머신의 유저로 실행하기
이유
도커 컨테이너의 스프링 부트에서 로그를 호스트 머신의 디렉토리에 남기고 싶었다. 그리고 호스트 머신 유저랑 어플리케이션 유저가 항상 같다는 전제가 있음!
디렉토리 마운트
디렉토리를 rw 로 마운트 하였지만, (어플리케이션 로그는 작성이 되고) 톰캣 access log 는 Permission denied
가 떴다. 디렉토리의 권한을 변경하면 해결되는 문제였지만, 777
은 뭔가 꺼려졌다.
priviledged
보안상 사용을 지양하고 있다.
호스트 머신의 유저로 실행하기
리서치 한 방법으로는 2가지 방법이 있다.
- 도커 이미지 실행 시 호스트의 유저 정보로 실행하기
- 도커 이미지 빌드 시 호스트의 유저 정보와 동일하게 추가하고 어플리케이션을 실행하기
도커 이미지 실행 시 호스트의 유저 정보로 실행하기
도커 실행 명령 시 호스트 머신의 id
값을 넘기는 것이다.
UID=$(id -u)
GID=$(id -g)
docker run -it -d --user ${UID}:${GID} <IMAGE NAME>
실행 할 때
bash
에UID
,GID
가 이미 설정 되어 있다면 warn 로그가 뜰 수도 있다.
도커 이미지 빌드 시 호스트의 유저 정보와 동일하게 추가하여 사용하기
호스트 머신의 유저 정보를 이미 알고 있다고 가정 하에 해당 UID
와 GID
로 동일하게 유저 정보 추가해서 사용하는 것이다. (adduser 옵션 확인)
RUN addgroup -g <GID> -S <USER> && adduser -u <UID> -D <USER> -G <USER> -H
USER <USER>
주저리
역시 도커는 어려워
참고
Comments