반응형
docker container 에서 usb drive 를 접근할 일이 있어 내용을 정리한다.
- 관련아티클
docker container 에서 장치접근
일단, docker container 를 다음의 아티클대로 privileged
로 만들었는데도 usb drive 접근이 안됐다.
docker container 를 만드는 시점에서 원하는 dev 장치가 있다면 container 네에서 해당 장치를 접근 할수있었다.
하지만, conatiner 동작 중에 usb 연결을 할 경우, 새로 생성된 dev node 는 보이지 않았다. (새로생성된 /dev/xxx
는 container 내에서 보이지 않는다.)
usb 장치들의 경우 container 를 새로 만드는시점에 모두 연결해놓으고 container 동작시키면 되긴하나.. 혹시나 node 가 바뀌기라도 하면 낭패라 해당방법은 유효하지 않다.
장치접근을 위한 dev 폴더연결
보안상 위험한 생각이긴하나.. 이미 privileged
를 줬다는것은 보안과 관련없이 컨테이너를 동작시키려고 했다고 생각한다.
- 필자의 경우 docker container 를 플랫폼개발용 크로스 컴파일세팅용으로 쓰고있기때문에 보안과 관계없이 어떤상황에서건 동작시키고싶었다.
- usb drive 는 크로스컴파일된 이미지를 sd card 에 쓰는 동작이 필요했기때문에 해당방법을 사용하였다.
간단하게... 다음과같이 host 의 dev
폴더를 container 쪽으로 연결하면된다.
volumes:
- /dev:/dev
컨테이너를 재시작하면, usb 처럼 중간에 생성되는 /dev/xxx
에 대해서도 접근가능하다.
- 보안상의 이슈로
ro
속성으로 하려다가도...rw
동작이 안되면 어차피 의미없기때문에 그냥 위험을 감수하고 쓰도록한다. - docker container 내에 user 를 추가하고 해당 user 별 권한을 지정하는 방법도있는것같지만, 대부분의
/dev/xxx
장치들은 어차피 root 권한이 필요할것이라, 그냥 맘편히? 사용하자.
...
- 해당 포스팅은 tistory-posting-cli 를 이용해 발행되었습니다.
반응형