자습시간

[docker] docker에서 strace실행이 되지 않는 경우 (Operation not permitted)

happy-nut 2017. 5. 31. 12:23

docker 에 관한 자세한 정보는 여기서 확인해 볼 수 있습니다.

사용이 매우 편리하고 가볍기 때문에 강력하게 추천드리고 싶은 플랫폼인데, docker 에서 strace를 할 때 Operation not permitted 라는 에러가 뜨는 경우가 종종 있습니다.

이 경우에 docker 에서 조금 느슨한 보안 옵션을 주면 해결이 가능합니다.

일단 직접 보여드리기 위해 새로운 컨테이너를 만들어 보겠습니다. 

이미지 파일이 이미 있기 때문에 ubuntu 이미지로 sample이라는 컨테이너를 만들겠습니다.

처음 설치된 컨테이너는 strace가 설치되어 있지 않기 때문에, apt-get update를 한 이후 apt-get install strace로 strace를 설치해 주어야 합니다.

설치된 이후 strace를 실행시켜 보면 Operation not permitted라는 오류메시지를 보게 됩니다. 아마 이 오류를 해결하기 위해 제 블로그를 방문하신 분들이 지금 이런 상태일 거라 생각이 됩니다.

해결하기 위해선 다음과 같이 해주면 됩니다.

우선 지금 docker 컨테이너 상태를 저장하기 위해 commit을 합니다.

커밋한 이미지는 docker images로 확인할 수 있습니다.

이제 sample/ubuntu 이미지를 이용해 새로운 컨테이너를 만들어 줍니다. 이 때 보안 옵션을 주어야 하는 것에 주의합니다.

strace cat 으로 테스트를 해보겠습니다.

아까와는 다르게 잘 실행이 되네요.

이제 docker ps -a 로 출력해보면 새로운 이미지가 생성되어 있는 것을 볼 수 있을 겁니다.

원래 있던 이미지는 지우고 새로 만들어진 이미지를 사용하시면 됩니다.




'자습시간' 카테고리의 다른 글

정규표현식 기초  (2) 2016.03.14
[MySQL] Information_schema  (0) 2015.12.29