Category: Docker

  • BOINC@HOME

    도커에서 BOINC@HOME을 실행하는 방법. GPU는 사용하는 것으로 한다.

    sudo docker run --privileged --dns=8.8.8.8 -it --gpus all --name boinc debian

    컨테이너 기본 설정은 평소와 같으나 repo에 contrib을 추가한다. 수작업으로 해줘도 되지만 편하게 하려면 apt-add-repository를 이용하면 된다. 사용하려면 software-properties-common 를 설치해야 한다.

    echo 'Acquire::http::Proxy "http://rcc.work:3142";' > /etc/apt/apt.conf
    rm -rf /etc/localtime
    ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime 
    
    echo 192.168.126.37 rcc.work >> /etc/hosts
    
    apt -y update && apt -y upgrade
    
    apt -y install software-properties-common
    apt-add-repository contrib
    
    apt -y update && apt -y upgrade
    apt -y install boinc boinc-client-nvidia-cuda

    컨테이너 시작시에 boinc을 시작하게 하기 위해서 .bashrc 에 다음의 내용을 추가한다. 작업 디렉토리는 원하는 것으로 해도 되지만 다른 도커 이미지 설명을 보면 /var/lib/boinc을 이용하는 것 같다. 그래서 이를 이용하도록 한다. 이것을 지정하기 않으면 실행 디렉토리를 기본으로 하여 다시 작업 파일을 받아오기 때문에 중복이 된다.

    cd /root
    boinc --dir /var/lib/boinc &

    이 다음부터는 컨테이너에서 해도 되고 밖에서 명령어를 실행시켜 줘도 된다.

    우선 Project를 추가하기 위해서는 account key를 알아야 한다.

    $ boinccmd --lookup_account https://einstein.phys.uwm.edu/ ID PASSWORD

    프로젝트를 추가한다.

    $ boinccmd --project_attach https://einstein.phys.uwm.edu/ account_key

    처음에 파일 받아오는데 시간이 걸리므로 느긋하게 기다리면 된다.

    주소를 입력할 때 https로 해줘야 한다. http로 하면 2번 등록되어있다는 메세지가 계속 생성된다.

    이렇게 여러 번 시도해 보았는데 CPU로 계산은 할 수 있어도 GPU는 계산을 하지 못했다. OpenCL과 관련된 문제인 것 같았는데 해결책을 찾을 수 없었다. 그래서 boinc 의 docker 이미지를 이용했다.

     sudo docker run -d \
      --gpus all \
      --name boinc2 \
      --net=host \
      --pid=host \
      --dns=8.8.8.8 \
      -v /opt/appdata/boinc:/var/lib/boinc \
      -e BOINC_GUI_RPC_PASSWORD="123" \
      -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \
      boinc/client:nvidia
  • Docker 백업

    도커 컨테이너를 백업해서 다른 컴퓨터에서 사용하게 하는 방법은 여러가지가 있는 것 같다. 그 중에서 나에게 가장 맞는 방법은 다음과 같다.

    docker commin [container] [container_backup]
    docker save -o container_backup.tar container_backup
    docker load < container_backup.tar
    docker run --name new_container container_backup
  • [Docker] insufficient shared memory (shm)

    Batch를 좀 늘려보려고 했는데 Docker에서 shared memory가 부족이라는 오류가 발생했다. 처음에는 VRAM 부족인가 싶었는데 다시 봐도 VRAM이 아니었다. 컨테이너를 만들어 줄때 shared memory(shm)를 늘려주면 된다. 기본은 64MB이다.

    # sudo docker run -itd --shm-size=16g --name test debian
  • Docker에 Shiny Server 설치하기

    예전에는 잘 되었는데 오늘 해보니 자꾸 오류가 난다. 해결 방법은 처음부터 하나씩 설치하는 것이다.