본문 바로가기
Dev/ETC

Docker Container에서 외부 파일 생성시 권한 문제

by nakanara 2019. 12. 18.
반응형

Docker Container에서 외부 파일 생성시 권한 문제

 

도커를 이용하여 톰캣, MariaDB 설정을 하고, 컨테이너에서 발생한 파일(로드, 데이터베이스) 등은 HOST 디렉터리에 volume로 연결해서 HOST에 파일이 기록되도록 설정하였다.

 

그 결과 로그파일의 경우 Container에서 존재하는 UID로 생성되어 톰캣 로그의 경우 root로 로그파일이 생성되었다. 로그 파일을 보기 위해서는 root 권한으로 확인을 하던지, 파일의 소유권을 변경해야 했다.

 

찾아본 결과 실행 시점에서 -u `stat -c "uid:gid" HOST_DIR` 를 설정하여 해당 파일의 권한을 변경할 수 있었다.

 

$ docker run -dit \
--name tomcat \
--net=host \
-v /home/user/data/conf/tomcat/lib:/usr/local/tomcat/lib \
-v /home/user/data/conf/tomcat/conf:/usr/local/tomcat/conf \
-v /home/user/data/conf/tomcat/bin/setenv.sh:/usr/local/tomcat/bin/setenv.sh \
-v /home/user/data/user:/usr/local/tomcat/webapps \
-v /home/user/data/logs/user:/user/logs \
-v /home/user/data/logs/tomcat:/usr/local/tomcat/logs \
-v /etc/localtime:/etc/localtime:ro \
-e TZ=Asia/Seoul \
-u `stat -c "%u:%g" /home/user/data/logs/user` \
-u `stat -c "%u:%g" /home/user/data/logs/tomcat` \
tomcat:8.5.42

 

단점은 Docker Container 에 접속하면 I have no name 이 표시가 된다.

I Have no name

 

참고

반응형