본문 바로가기

삽질/도커

도커(docker) touch Permission denied

문제.

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/ 로 지정하였다.