삽질/도커
도커(docker) touch Permission denied
EpicArts
2019. 11. 23. 22:44
문제.
logstash 파일
윈도우 도커에서 잘 돌아갔으나, ubuntu에서 제대로 작동을 하지 않는다.
cannot touch ‘/usr/share/last_run_metadata/jdbc-int-sql_last_value.yml’: Permission denied
이 오류 또는 아래와 같이 파일에 대한 권한이 없다고 뜬다.
Permission denied - /usr/share/last_run_metadata/jdbc-int-sql_last_value.yml
해결
찾아 본 바로 2가지 문제를 해결해야 정상적으로 동작한다.
docker info를 치면 Storage Driver 가 overlay나 overlay2로 설정되어 있어야 한다.
리눅스 파일 시스템인 aufs로 설정되어 있으면 안 되는 듯하다.
두 번째 해결 방법.
docker-compose의 volumes 통해 logstash의 jdbc 모듈 중 마지막 저장 위치를 기록해놓기 위한 폴더를 지정했다.
그냥 git에서 폴더를 다운로드하고 docker-compose up을 하면 위와 같이 퍼미션 오류가 뜨는데, 아래와 같이 해주면 해결된다.
chown 1000:1000 -R 해당 폴더
저 명령어는 도커 컨테이너 내부가 아닌 실행시키기 전에 볼륨으로 등록한 폴더에 가서 해야 한다.
여기에서는 sudo chown 1000:1000 -R /docker/logstash/last_run_metadata/ 로 지정하였다.