개발 환경
-
Pycharm에서 server의 docker 사용해서 디버깅하기 (무슨 말?)개발 환경/Pycharm 2020. 9. 3. 17:47
제목을 쓰고 나니 나도 무슨 말인지 모르겠다. 0. 현재 상황 및 해결 방안 Docker와 Pycharm을 사용해서 개발중. 평소에 local에서 디버깅하고, server(나의 경우 aws instance)에서 run 했음. Local에서 디버깅하려는데 모델 크기가 너무 커서 내 맥북 램 8GB를 넘어버림. Server에 존재하는 docker에 pycharm으로 접속해서 디버깅하자! Server에서 tcp 소켓을 이용해 port를 열고 docker를 실행 및 외부에서 접속 확인. Pycharm에서 docker 설정. 디버깅할 스크립트의 configuration 설정. 디버깅 시작! 1. Server에서 tcp 소켓을 이용해 port를 열고 docker를 실행 및 외부에서 접속 확인. 1. socat 설치..
-
[Docker for ML #4] 딥러닝 학습 시작하기개발 환경/Docker 2020. 8. 28. 17:32
123편에서 docker의 기본적인 명령어와 사용법을 익혔다. 이제 진짜 학습을 시작해보자. 1. --rm 옵션 --rm 옵션은 컨테이너가 내려가면 바로 컨테이너를 삭제하는 옵션이다. 딥러닝을 학습할 때 보통 코드가 다 돌고 컨테이너를 나가면 더이상 필요가 없기 때문에 이 옵션을 자주 사용하게 된다. 2. bash로 들어가서 명령어를 두번 실행하지 말자. 이해를 위해 계속 bash로 들어갔지만 사실 그냥 바로 python 명령어를 실행해도 된다. docker run --rm --gpus=all -v ~/PycharmProjects/mnist:/opt/project tensorflow2 python main.py docker run --rm: 컨테이너 삭제 --gpus=all: GPU 사용 -v ~/Pyc..
-
[Docker for ML #3] 로컬 디렉토리와 컨테이너 마운트하기개발 환경/Docker 2020. 8. 28. 16:56
Docker container를 실행해서 코드를 돌릴 수 있는 상태지만 내가 로컬에서 작성한 코드나 DB 파일이 컨테이너 내부에 존재하지 않는다. 이러면 컨테이너 내부에서 딥러닝 학습을 할 수가 없다. 그래서 로컬의 디렉토리와 컨테이너의 디렉토리를 마운트해야한다. 1. -v 옵션 -v 옵션은 로컬과 컨테이너 사이의 마운트를 가능하게 한다. docker run -it -v ~/PycharmProjects/mnist:/opt/project tensorflow2 bash -v : 내 로컬에 ~/PycharmProjects/mnist라는 디렉토리를 컨터이너의 /opt/project에 마운트 시킨다. /opt/project에 마운트시키는 이유는 Dockerfile에서 WORKDIR을 /opt/project로 지정..
-
[Docker for ML #2] 나만의 개발환경 만들기 (Dockerfile)개발 환경/Docker 2020. 8. 28. 16:43
Dockerhub에는 이미 검증된 수많은 docker image가 있다. 하지만 나의 프로젝트에서 필요한 환경을 구축하기 위해서는 dockerhub의 이미지만으로는 부족하다. 즉, 나만의 이미지를 만들어야한다. Docker에서는 Dockerfile로 가능하다. 1. Dockerfile 만들기 mkdir docker cd docker vim Dockerfile docker라는 디렉토리를 만들고 이동한 후 Dockerfile이라는 파일을 작성한다. 디렉토리를 만드는 이유는 docker는 기본적으로 docker image를 빌드할 때 디렉토리에 있는 모든 것을 복사한다. 그래서 별도의 디렉토리에 Dockerfile을 만드는 것이다. 아래 내용을 복붙한다. FROMtensorflow/tensorflow:late..
-
[Docker for ML #1] 설치와 기본 명령어개발 환경/Docker 2020. 8. 28. 15:32
Docker는 현재 다양한 개발 분야에서 사용되고 있다. 딥러닝 개발자는 CUDA나 TensorFlow, PyTorch 등 버전이 충돌할 때 docker를 찾게 된다. 1. 설치 sudo apt install docker.io 2. sudo 권한 부여 Docker는 기본적으로 sudo 권한을 필요로 한다. 매번 sudo를 붙여주는 것은 귀찮으니 현재 user에게 docker를 sudo 권한으로 사용할 수 있게 해주자. sudo usermod -aG docker $USER 명령어를 쳤으면 터미널을 껐다가 다시 키자. 3. 설치 확인 docker --version output: Docker version 19.03.8, build afacb8b7f0 4. run 테스트로 tensorflow 이미지를 받아서 ..
-
Ubuntu에 Minikube 설치하기개발 환경/Kubernetes 2020. 8. 26. 17:12
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube Kubernetes cluster는 최소한의 클러스터를 구성하기 위해 2대의 컴퓨터가 필요하다(master node 1개, worker node 1개). 하지만 클러스터를 구성하고 싶지만 가용할 수 있는 서버가 1개 밖에 없는 경우에는 minikube를 사용하여야 한다. 0. Documentation kubernet..
-
AWS Cloud9 사용해보기개발 환경/AWS 2020. 7. 26. 18:07
Cloud9은 클라우드 기반 IDE로 클라우드에서 코드를 돌리고 개발하는 서비스이다. 1. 리전 바꾸기 Cloud9이 아직 서울 리전에서는 서비스를 하고 있지 않는 것 같다. 서울리전에서 시도하면 계속 환경을 만들 수 없다고 에러나고 오하이오로 바꾸고 시도하니 성공한다. 그러므로 오하이오로 리전을 바꾸고 시도하자. 오른쪽 위에 서울이라고 써 있는 곳을 누르면 리전을 변경할 수 있다. 2. 환경 만들기 이름을 정하고 환경을 설정하는데 EC2 인스턴스 새로 만들기 or 기존 것 사용하기 (Cloud9은 EC2 instance를 사용한다.) 인스턴스 타입 설정 t2.micro가 프리티어용이다. 플랫폼을 아마존 리눅스를 쓸것인지 우분투 18.04를 쓸것인지 조금만 기다리면 접속에 성공한다. 3. Hello wo..
-
iPad로 Termius 사용해보기 with AWS EC2개발 환경/AWS 2020. 7. 26. 17:35
아이패드가 생긴 김에 아이패드로 코딩을 시도해보고 있습니다. 그 첫번째 시도로 아이패드에서 터미널을 사용하고 개발 서버로는 aws의 ec2 인스턴스를 사용하는 방법을 시도했습니다. 아이패드에 termius 앱 설치 컴퓨터에서 AWS EC2 instance 생성 컴퓨터에서 아이패드로 pem key file 복사 아이패드에서 termius로 AWS EC2 instance로 접속 0. 준비물 컴퓨터 : macOS or Windows (아이패드로 pem key를 전달할 용도, 딱 한번) 아이패드 Termius 앱 : 아이패드의 터미널로 사용 AWS EC2 : 개발 서버로 사용 1. Termius 앱 설치 apps.apple.com/kr/app/termius-ssh-client/id549039908 Termiu..