개발 환경을 docker에서 설정하는게 맞는지는 모르겠다. 그래도 자꾸만 환경이 바뀌어서 예전 코드가 동작하지 않는 등의 문제에 대응하기 위해서  개발용 이미지, 수행용 이미지를 만들어 보관하는 것이 하나의 대안이 될 수도 있을 듯 하다. 

다만 project하나마다 수십기가의 백업이 있어야 하는지는 좀 고민스럽긴 하다. 

image download

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash

  • 이 명령을 통해서 tensorflow-gpu가 인식되는 버전을 다운로드 받고 실행을 확인함
  • bash 안에서 nvidia-smi를 실행하면 docker의 host에서 설정한 nvidia driver가 잡혀있는 것을 확인할 수 있고, nvidia-smi를 통해 GPU도 동작하는 것을 확인함.

개발 환경 설정

  • 받아진 이미지는 단순하게 python과 tensorflow만 설정된 상태의 docker이기 때문에 개발을 위해서는 container에 관련 환경 설정을 해줘야 함.
  • 아래의 명령들로 기본적인 툴 들을 설치 함apt install net-tools apt install openssh-server apt-get install vim apt-get install git
  • docker는 실행하고 바로 내려가기 때문에 bash와 연계되어 내려가지 않도록 하고, ssh로 접근할 수 있도록 데몬을 띄워주는 script를 작성 : /run/run.sh#!/bin/bash /usr/sbin/sshd /bin/bash
  • 여기까지 만들어진 container를 image로 생성하여 향후 다양한 project에서 사용될 수 있도록 commit 함
    • 기존에 떠 있던 container를 stop 하고 CONTAINER ID를 확인
      • docker stop <container_name>
      • docker ps -a
    • image로 commit
      • docker commit -a 'lazgob' <container ID> <image name>
  • 이미지로부터 run.sh를 실행하여 개발환경을 시작함 이때 ssh로 접속할 수 있도록 port도 처리하고 향후 사용을 위해 이름도 정의
    • docker run -p 2222:22 --name classifysent --gpus all -it <image name> /run/run.sh
  • 다른 서버에서도 사용할 수 있도록 image를 저장하고 image에 등록 하는 방법
    • 저장: docker image save -o 압축이름.tar 이미지이름
    • 등록: docker load < 압축이름.tar

'개발' 카테고리의 다른 글

[python] getattr 함수  (0) 2021.05.10
Abseil Python Common Libraries  (0) 2021.05.07
pdf2docx를 이용한 pdf 변환 코드  (0) 2021.04.30
eclipse encoding 변경  (0) 2014.08.20
[펌] 언어학 관련 원어 해석  (0) 2011.05.17

+ Recent posts