출처: https://deepflowest.tistory.com/222?category=903390
docker pull nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04
하고
내 노트북의 nvidia driver 랑 화면을 사용해 줄 것이기 때문에
#!/bin/sh
XSOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
touch $XAUTH
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
docker run --runtime=nvidia --privileged --rm -it \
--volume=$XSOCK:$XSOCK:rw \
--volume=$XAUTH:$XAUTH:rw \
--volume=$HOME:$HOME \
--shm-size=1gb \
--env="XAUTHORITY=${XAUTH}" \
--env="DISPLAY=${DISPLAY}" \
--env=TERM=xterm-256color \
--env=QT_X11_NO_MITSHM=1 \
--net=host \
nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 \
bash
이걸 sh 파일로 만들어서 써줄 것임 (shm-size 는 수정이 필요하지 않을까 싶긴한데 좀더 알아봐야 할듯)
위의 sh 파일로 도커 접속한 다음에
출처: https://ropiens.tistory.com/161
ROS melodic 관련 설정.
apt-get update
apt-get install lsb -y
sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -
apt update
apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
apt install python-rosdep
rosdep init
rosdep update
echo "alias cm='cd ~/catkin_ws && catkin_make'" >> ~/.bashrc
echo "eb='vim ~/.bashrc'" >> ~/.bashrc
echo "sb='source ~/.bashrc'" >> ~/.bashrc
출처:
# after running the docker image
sudo apt install curl
sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg'
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt-get update
sudo apt-get upgrade
sudo apt install code
# Run code
code .
root 권한으로 실행하면 vscode 를 띄울 수가 없길래 킹받아서
그냥 auto_darknet 이라는 유저를 하나 만듬..
echo "auto_darknet:auto_darknet" | chpasswd && \
usermod --shell /bin/bash auto_darknet && \
usermod -aG sudo auto_darknet && \
mkdir /etc/sudoers.d && \ # 이미 만들어져 있으면 권한에러 뜰 수 있으므로 지우고 하자
echo "auto_darknet ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/auto_darknet && \
chmod 0440 /etc/sudoers.d/auto_darknet && \
# Replace 1000 with your user/group id
usermod --uid 1000 auto_darknet && \
groupmod --gid 1000 auto_darknet
근데 이렇게 하고 catkin 설정하고 얼씨구 절씨구 하니까 무슨 Permission denied 뜨면서 catkin_make 가 안된다길래
sudo chown -R auto_darknet:auto_darknet ~/catkin_ws
이거 추가하니까 잘 됨
그리고 비주얼 스튜디오 코드도 잘 뜬다 정상적으로... 행복해
그리고 위와 같이 수정을 다하고 나면, 도커 run 옵션으로는
#!/bin/sh
XSOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
touch $XAUTH
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
docker run --runtime=nvidia --privileged --rm -it \
--volume=$XSOCK:$XSOCK:rw \
--volume=$XAUTH:$XAUTH:rw \
--volume=$HOME:$HOME \
--shm-size=8gb \
--env="XAUTHORITY=${XAUTH}" \
--env="DISPLAY=${DISPLAY}" \
--env=TERM=xterm-256color \
--env=QT_X11_NO_MITSHM=1 \
--net=host \
-u "auto_darknet" \
auto_darknet:latest \
bash
이렇게 위와 같이 해주면 된다롱
xhost +local:docker
행복하다...


아윽 ... ㅠㅠㅠ