Если вы ищете лучшее решение идите и проверьте репозиторий Rocker OSRF
Этот скрипт позволяет создавать контейнеры Docker, где вы можете запускать графические программы, такие как Gazebo без особых усилий. Эта автоматизация имитирует вашу локальную установку и позволяет запускать ваши программы в среде песочницы. Он соединяет ваш домашний каталог с контейнером и разделяет одни и те же пользовательские переменные.
Нет необходимости устанавливать этот «пакет». Но если вы хотите, чтобы вы могли сделать что -то вроде:
~/.dockerize~/.dockerize~./.dockerize/dockerize.sh /usr/local/bin/dockerizeROS_DISTRO=noetic dockerize в любом месте cd ~
git clone https://github.com/incebellipipo/dockerize .dockerize
sudo ln -s ~ /.dockerize/dockerize.sh /usr/local/bin/dockerizeСоздайте изображения
Строительство изображений довольно просто. Сценарий создает изображение с версией ROS, описанной в переменной среды ROS_DISTRO . Это может быть установлено на версии АФК, которые опубликованы в Docker Hub.
ROS_DISTRO=humble ./dockerize.sh buildЗапустить изображения
./dockerize.sh run Пользователь не принадлежит ни к какой группе в первом заезде. Вы можете проверить это, запустив команду groups . Таким образом, после входа в контейнер вам нужно снова войти, чтобы быть в группах, где принадлежит ваш локальный пользователь. Это необходимо для доступа к устройствам, таким как /dev/dri и /dev/snd и т. Д.
# Inside Docker
$ su - ${USER}
Password:После запуска контейнера вы можете использовать удаленную разработку TMUX или VSCODE для разработки.
Прикрепление работающего контейнера
ROS_DISTRO=humble ./dockerize.sh attachОстановка работающего контейнера
ROS_DISTRO=humble ./dockerize.sh stopОчистка отделенных контейнеров
ROS_DISTRO=humble ./dockerize.sh cleanНа хосте
export NVIDIA_DRIVER_VERSION="$(nvidia-smi --query-gpu=driver_version --format=csv,noheader)"
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/"$NVIDIA_DRIVER_VERSION"/NVIDIA-Linux-x86_64-"$NVIDIA_DRIVER_VERSION".run
mv NVIDIA-Linux-x86_64-"$NVIDIA_DRIVER_VERSION".run NVIDIA-DRIVER.run
В контейнере
sudo ./NVIDIA-DRIVER.run -a -N --ui=none --no-kernel-module
Кредиты: https://stackoverflow.com/a/44187181
Настраивайтесь так же, как создайте любой другой Dockerfile.