본문 바로가기

데이터 분석 및 기계학습/딥러닝

우분투 Docker 를 이용한 머신러닝 / 딥러닝 AI 기본 개발 환경 구축

반응형

 

Windows 에 WSL을 이용하여 ubuntu 를 설치할 수 있고, Windows 에 자체적으로 AI 개발 환경을 구축할 수 있지만, 같은 개발환경을 여러번 설정해야 하거나 WSL 상에서는 제약이 되는 부분이 있을 수 있어 Ubuntu Docker 를 이용하여 기본적인 AI (Tensorflow - CPU, Jupyter Notebook) 개발 환경을 구축하기 위한 기록을 남긴다.
내가 주로 사용하는 방법은 아래와 같이 개발 환경을 구축하고, 사용자 계정 생성 후 SSH 프로그램을 이용하여 Docker 내부에 접속하여 실행을 하는 방법을 주로 사용한다.
Docker 내에서 직접 코딩 및 실행 등 테스트를 위해서는 Visual Code 의 Docker Plugin 을 이용하여 VS Code 와 Docker 컨테이너를 연결해주어 사용하는 방법을 주로 사용한다.

우분투 Docker 를 이용한 AI 기본 환경 구축 방법

  • Windows에 Docker 운용 환경이 설정(Docker Desktop)이 되어있다는 가정하에서 설정 수행.
  • 우분투 Docker 를 Docker Hub 에서 Pull (여기서는 ubuntu 22(LTS) 로 설정)
docker pull ubuntu

Docker 실행 - ssh / telnet / ftp / jupyter Port 오픈

  • Docker 실행 중 GPU 사용 기능을 사용 : --gpus all
  • 시스템 주요 권한 접근 : --privileged=true (네트워크 인터페이스 활성 / 비활성, IP 주소 변경, systemd 등 사용)
  • 포트 포워딩: -p 21:21 -> ftp, -p 22:22 -> ssh / sftp, -p 23:23 -> telnet, -p 9999:8888 -> Jupyter Notebook(Jupyter lab)
    : Jupyter Notebook 을 8888 로 포트포워딩 하는 경우 사이트 연결이 잘 안되는 경우가 있어 9999 번호로 매핑
  • 디스크 Volume 매핑 : -v (호스트 디렉토리):(컨테이너의 Volume 디렉토리) -> 여기서는 설정하지 않음.
  • Docker 내에서 systemctl (service) 명령 사용 : /sbin/init (일반적으로 권장되지 않음)
docker run -it --gpus all --name ubuntu__ai_study --privileged=true -p 22:22 -p 21:21 -p 23:23 -p 9999:8888 ubuntu /sbin/init

Openssh 서버 설치

sudo apt install openssh-server

한글 설정을 위한 locale 설치

apt-get -y update
apt-get install -y locales # locales 설치
locale -a # 현재 사용할 수 있는 locale 확인

apt-get install -y locales # locales 설치
locale -a # 현재 사용할 수 있는 locale 확인

사용 가능한 locale 중 ko_KR.UTF8 이 없으면, 한글 패키지 설치

apt-get install -y language-pack-ko # 한글 패키지 다운로드

locale-gen 명령어를 통해 한글 locale 구성.

locale-gen ko_KR.utf8 # 템플릿을 사용하여 locale 구성하기

ko_KR.UTF-8로 로케일 설정

dpkg-reconfigure locales # 한글로 locale 변경하기

ko_KR.UTF-8로 LANG 환경 변수 설정하기

export LANG=ko_KR.UTF-8
echo export LANG=ko_KR.UTF-8 > ~/.bashrc

우분투 Timezone 데이터 추가

sudo apt install -y tzdata

TimeZone Asia/Seoul 설정

timedatectl list-timezones
sudo timedatectl set-timezone Asia/Seoul

AI 개발환경 설정

  • 사용 상황에 따라 Python 가상환경 설정 후 설치하는 것은 자유 (가능하면 가상환경에 맞춰 설치를 권장)
  • 파이썬 설치 (3.10 기준)
apt install python3.10
  • 텐서플로우 설치 
pip3 install tensorflow (2.X 최신 버전 설치)
  • Jupyter 설치 :
pip3 install jupyter
  • 기타 필요한 라이브러리 설치
pip3 install numpy
pip3 install pandas
pip3 install matplotlib
pip3 install pillow
pip3 install scikit-learn

우분투 내 jupyter notebook 실행 설정

특이하게 sudo 명령에 ip 와 포트를 지정해줘야 windows에서 정상 접근됨. (확인필요)

sudo jupyter notebook --ip='0.0.0.0' --port=8888 --allow-root

위 명령 실행후 Jupyter Notebook 연결 링크 정보를 복사후 포트 부분을 9999 로 바꿔서 접속
: Windows에서 Chrome 등 브라우저에서 http://127.0.0.1:9999/XXXXXXXXXX 로 접속

반응형