I am trying to use the i2c pins on a raspberry pi inside a docker container. I install all my modules using RUN but when I use the CMD to run my python program i get an error that says
Trackback (most recent call last):
file "test.py", line 124, in <module>
bus = smbus.SMBus(1)
IOError: [Errno 2] No such file or directory
If I run this on my raspberry pi and not in my container it works fine. But when I turn off my i2c pins on my raspberry pi it gives me the same error when running it. So I know it has to do with my i2c pins being activated. Does anyone know how to resolve this problem?
As a security precaution, system devices are not exposed by default inside Docker containers. You can expose specific devices to your container using the --device
option to docker run
, as in:
docker run --device /dev/i2c-0 --device /dev/i2c-1 myimage
You can remove all restrictions with the --privileged
flag:
docker run --privileged myimage
This will expose all of /dev
to your container, and remove other restrictions as well (e.g., you will be able to change the network configuration in the container and mount new filesystems).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With