由于某种原因,我无法将我的主机的网络与Docker容器共享。具体来说,我正在尝试启动一个CAN接口sudo slcand -o -c -s0 /dev/ttyACM0 can0
。问题是这样的。我可以在主机上启动它,但是,当我运行容器时,它找不到设备。但是,我的主机不需要打开接口,因为在docker容器中,我有一个bash脚本可以处理打开can0
接口。
编辑:如果有什么不同,我尝试在Raspberry Pi上进行。
我正在使用以下命令运行我的容器:
docker run -t -i --device=/dev/ttyACM0
然后,我有一个bash脚本,用于处理can0接口。但是,当我执行run命令时,我在bash脚本中打印出ifconfig
,而can0
或wlan0
界面都没有出现。
由于bash脚本尝试启动can0
接口,因此失败,并给我以下错误:
OSError: [Errno 19] No such device
我不知道我在做什么错。还有其他人遇到过这个问题吗?这是我的docker文件的样子:
FROM ubuntu:latest
COPY requirements.txt /
RUN apt-get update
RUN apt-get install -y python3-pip
RUN pip3 install -r requirements.txt
RUN apt-get install -y can-utils
RUN apt-get install -y net-tools
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
USER docker
COPY ./ /generator-data-tools
WORKDIR /generator-data-tools
ENTRYPOINT ["/bin/bash"]
CMD ["/generator-data-tools/start_streaming.sh"]
还有我的bash脚本:
#!/bin/bash
echo "Configuring CAN network"
ls /dev/data-streaming
slcand -o -c -s0 /dev/ttyACM0
ifconfig; ifconfig can0 up
echo "Starting to stream data"
python3 ./streaming_integration_test.py
感谢所有提前答复的人。