늘모자란, 개발 :: docker issue - permission denied

늘모자란, 개발

서버에서 도커를 사용해 DB 컨테이너를 운영하고 있는데, 업데이트를 진행 후 컨테이너에 들어가 mysql 을 작동하니 다음과 같은 에러를 내며 동작하지 않는다

mysqld: error while loading shared libraries: libaio.so.1: cannot stat shared object: Permission denied


읽기쓰기 권한을 확인해봐도 제대로 설정되있고 문제가 될 부분이 없어서 한참을 헤매는데 docker의 privileged 를 끄면 된다고 한다. 혹은 devicemapper 를 설정하거나..
그런데 이건 이미지에 커밋 후 컨테이너를 다시 만들고 인자를 줘서 다시 실행해야하는 매우 번거로운 작업을 해야해서 고민에 빠져있었다.

참고:
https://github.com/docker-library/mysql/issues/133
https://stackoverflow.com/questions/32353055/how-to-start-a-stopped-docker-container-with-a-different-command
http://ongamedev.tistory.com/entry/%EC%8B%A4%ED%96%89%EC%A4%91%EC%9D%B8-%EB%8F%84%EC%BB%A4-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%97%90-%EC%B6%94%EA%B0%80-%ED%8F%AC%ED%8A%B8-%EC%98%A4%ED%94%88%ED%95%98%EA%B8%B0


그런데 여러 글들을 읽다보니 apparmor 라는게 자주 나온다. 이름만 봐도 뭔가 보호 하는 느낌이라 찾아보게 되었다.
결론부터 말하자면 도커 설정은 건드릴필요없다.

호스트에 apparmor 가 설정되어 있을건데 다음 링크를 참고해 disable 하면 설정변경없이 그냥 실행된다.........................
https://support.plesk.com/hc/en-us/articles/213909965-How-to-disable-AppArmor
2018/01/06 11:30 2018/01/06 11:30