Не удается разделить сетевой интерфейс между хост-машиной и док-контейнером - PullRequest
0 голосов
/ 04 июня 2019

По какой-то причине я не могу получить доступ к сети моего хост-компьютера для моего док-контейнера.В частности, я пытаюсь вызвать интерфейс CAN sudo slcand -o -c -s0 /dev/ttyACM0 can0.Проблема в этом.Я могу запустить его на своем хост-компьютере, однако, когда я запускаю свой контейнер, он не может найти устройство.Однако мой хост-компьютер не должен вызывать интерфейс, так как в моем док-контейнере у меня есть скрипт bash, который будет иметь дело с вызовом интерфейса can0.

РЕДАКТИРОВАТЬ: Если это имеет значение, я пытаюсь сделать это на Raspberry Pi.

Я использую эту команду для запуска моего контейнера:

docker run -t -i --device=/dev/ttyACM0

Затем у меня есть скрипт bash, который работает с интерфейсом can0.Однако, когда я выполняю команду run, я распечатываю ifconfig в моем скрипте bash, и не появляются интерфейсы 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

Спасибо всем, кто ответил заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...