해당 이미지를 이용해서, docker volume을 사용하면서 컨테이너를 생성하고자 할 때 권한 오류로 인해서 컨테이너가 실행이 되지 않는다.
docker run --name jks -p 8080:8080 -p 50000:50000 -v <볼륨으로 사용할 디렉토리>:/var/jenkins_home jenkins
[chils@localhost 03_JKS]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
418995ad594b jenkins/jenkins:lts "/sbin/tini -- /usr/…" 3 seconds ago Exited (1) 2 seconds ago jks
docker logs로 오류를 확인해보면..
[chils@localhost 03_JKS]$ sudo docker logs jks
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
퍼미션 문제로 파일을 생성할 수 없다고 한다.
구글링하여 찾아본 결과, 해답이 있었다.
볼륨으로 사용할 디렉토리를 먼저 생성하고
sudo chown 1000 <볼륨으로 사용할 디렉터리>
해당 디렉토리의 권한을 변경해준다음 (강제적으로 1000의 UID에 권한 부여)
기존 생성된 docker 컨테이너는 삭제해준다.
sudo docker stop <컨테이너ID 혹은 이름> && sudo docker rm <컨테이너ID or 이름>
다시 맨위의 명령으로 도커를 실행한다.
출처 : https://github.com/jenkinsci/docker/issues/177#issuecomment-163656932