반응형
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
이 표시가 된다.
참고
반응형
'Dev > ETC' 카테고리의 다른 글
도커 실행시 타임존 동기화 및 생성 파일 권한 (0) | 2020.02.06 |
---|---|
CentOS 시스템 현황 명령어 (0) | 2020.02.03 |
톰캣 멀티 인스턴스 실행 (0) | 2019.12.16 |
[SVN] CentOS SVN 커밋 및 파일 추가 shell 스크립트 (0) | 2017.12.13 |
CentOS SVN 설정. (0) | 2017.11.23 |