Dockerfile에서 USER를 nobody로 설정해서. docker container를 띄워서 톰캣이 재시작되지 않는 버그를 발견했다.
centos, mac에서는 잘 동작하는데, ubuntu에서만 동작하지 못했다.
Permission denied.. 분명 권한이 있는데로 파일 생성을 어느 path에서는 할 수 있고, 어느 path에서는 할 수 없었다.
nobody@08678a6be7c9:/usr/local/tomcat$ ls -al
total 120
drwxr-sr-x 28 nobody nogroup 4096 Apr 9 15:32 .
drwxrwsr-x 23 root staff 4096 Apr 9 15:32 ..
-rw-r----- 1 nobody nogroup 57092 Sep 28 2017 LICENSE
-rw-r----- 1 nobody nogroup 1723 Sep 28 2017 NOTICE
-rw-r----- 1 nobody nogroup 7064 Sep 28 2017 RELEASE-NOTES
-rw-r----- 1 nobody nogroup 15946 Sep 28 2017 RUNNING.txt
drwxr-x--- 2 nobody nogroup 4096 Nov 8 19:45 bin
drwx--S--- 2 nobody nogroup 4096 Apr 9 15:30 conf
drwxr-x--- 2 nobody nogroup 4096 Nov 8 19:45 lib
drwxr-x--- 2 nobody nogroup 4096 Sep 28 2017 logs
drwxr-x--- 2 nobody nogroup 4096 Nov 8 19:45 temp
drwxr-x--- 9 nobody nogroup 4096 Apr 9 15:32 webapps
drwxr-x--- 2 nobody nogroup 4096 Sep 28 2017 work
nobody@08678a6be7c9:/usr/local/tomcat$ touch a
nobody@08678a6be7c9:/usr/local/tomcat$ ls a
-rw-r--r-- 1 nobody nogroup 0 Apr 9 16:51 a
nobody@08678a6be7c9:/usr/local/tomcat/logs$ touch a
touch: cannot touch ‘a’: Permission denied
docker info를 통해 driver를 확인했다.
mac은 overlay2를 사용하고 있고. centos는 overlay, ubuntu는 aufs를 사용하고 있었다.
aufs 정보는 다음과 같으며 https://docs.docker.com/storage/storagedriver/aufs-driver/..
docker 공식 문서에서는 더 이상 aufs를 사용하지 않고 overlay를 사용하라고 되어 있다.
https://docs.docker.com/storage/storagedriver/overlayfs-driver/
mesos, docker 장비에서 docker 파일 드라이버를 aufs로 overlay로 변경했다.
로컬에 저장된 기존 도커 container 모두 중단 및 docker image 삭제한다.
$ docker rm $(docker ps -qa)
$ docker images
$ docker rmi ...
시스템 설정을 변경한다.
$ sudo -i
$ CONFIGURATION_FILE=$(systemctl show --property=FragmentPath docker | cut -f2 -d=)
#/etc/systemd/system/docker.service
$ cp $CONFIGURATION_FILE /etc/systemd/system/docker.service
$ perl -pi -e 's/^(ExecStart=.+)$/$1 -s overlay/' /etc/systemd/system/docker.service
$ cat > /etc/docker/daemon.json
{
"storage-driver": "overlay"
}
$ service mesos-slave restart #메소스 사용중이라면.. 반드시.
$ service docker restart
'Cloud' 카테고리의 다른 글
java docker image 확인하기 (0) | 2018.04.19 |
---|---|
[openstack] 오버 커밋(overcommit) 공부 (0) | 2018.04.11 |
fluentd 정규식 확인하기 (0) | 2018.04.10 |
[fluentd] format json (0) | 2018.04.10 |
[openstack] keystone 인증(auth)만 해보기 (0) | 2018.02.07 |