![도커 컨테이너 내부의/sys에서 chown을 작동시키는 방법](https://linux55.com/image/153398/%EB%8F%84%EC%BB%A4%20%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%20%EB%82%B4%EB%B6%80%EC%9D%98%2Fsys%EC%97%90%EC%84%9C%20chown%EC%9D%84%20%EC%9E%91%EB%8F%99%EC%8B%9C%ED%82%A4%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
도커에 소프트웨어를 넣으려고 하는데chown /sys/class/net/eth0
이것은 내가 통제할 수 없는 독점 코드이므로 Docker 내에서 작동하도록 해야 합니다.
실행하면 다음과 같은 오류 로그가 표시됩니다.
{"error":"MySQL: Connection refused"}chown: changing ownership of ‘/sys/class/net/eth0’: Read-only file system
docker 쓰기 액세스 권한을 부여하지 않고 이 문제를 해결하고 싶습니다. docker가 제공하는 격리를 유지하고 싶습니다.
답변1
--network host
표준 네트워크 모니터링 소프트웨어를 실행하려면 명령 에 이 옵션을 사용해야 합니다 docker run
. 이렇게 하면 동일한 네트워크 장치를 모두 볼 수 있습니다.
실제로 패킷을 캡처해야 하는 경우 Docker 컨테이너에 추가 "기능"도 부여해야 합니다. 그렇지 않으면 권한 거부 오류가 발생합니다.
답변2
Dockerfile에서 권한을 허용할 필요가 없습니다. docker run 명령만 추가하면 됩니다.--볼륨/sys:/sys:ro이미지를 실행하면