dockerize
1.0.0
더 나은 솔루션을 찾고 있다면 OSRF의 Rocker Repository를 확인하십시오.
이 스크립트를 사용하면 많은 노력없이 Gazebo와 같은 그래픽 프로그램을 실행할 수있는 Docker 컨테이너를 만들 수 있습니다. 이 자동화는 로컬 설치를 모방하며 샌드 박스 환경에서 프로그램을 실행할 수 있습니다. 홈 디렉토리를 컨테이너에 장착하고 동일한 사용자 변수를 공유합니다.
이 "패키지"를 설치할 필요가 없습니다. 그러나 원하는 경우 다음과 같은 일을 할 수 있습니다.
~/.dockerize 와 같은 로컬 디렉토리를 만듭니다~/.dockerize 로 복제하십시오~./.dockerize/dockerize.sh /usr/local/bin/dockerize 로 만듭니다ROS_DISTRO=noetic dockerize 어디서나 호출하십시오 cd ~
git clone https://github.com/incebellipipo/dockerize .dockerize
sudo ln -s ~ /.dockerize/dockerize.sh /usr/local/bin/dockerize이미지 빌드
이미지를 만드는 것은 매우 간단합니다. 스크립트는 ROS_DISTRO 환경 변수에 설명 된 ROS 버전으로 이미지를 빌드합니다. Docker Hub에 게시 된 ROS 버전으로 설정할 수 있습니다.
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을 만드는 것처럼 사용자 정의하십시오.