728x90

분류 전체보기 430

[Docker] NVIDIA Container Toolkit(NVIDIA Docker)의 동작원리

※ 일본 포스팅을 번역한 자료입니다. 오역및 의역이 있을 수 있으며, 틀린 내용이 있는 경우 지적해주시면 정정하겠습니다. Docker에서 NIVIDA GPU를 사용하는 경우 NVIDIA Container Toolkit(NVIDIA Docker)이 필요하다. 이번 포스팅에서는 왜 NVIDIA Container Toolkit이 필요한지, 어떻게 동작하고 있는지에 대해 설명할 것이다. 참고로 2021년 4월 시점 내용이니 현재는 바꼈을지도 모르니 어디까지나 참고로 하길 바란다. 왜 NVIDIA Container Toolkit(NVIDIA Docker)이 필요할까? NVIDIA GPU는 호스트의 디바이스 파일 (/dev/nvidia0등)으로써 등록되어 있다. 또한, CUDA 라이브러리(libcuda.so등)는 ..

IT/기초 지식 2022.02.18

[Docker/Linux] Docker상의 Volume에서 permission denied 에러가 발생할 때 해결법

permission denied가 발생하는 문제 Linux상에서 Docker 컨테이너 내에 있는 volume을 mount했을 때, 호스트에서 액세스할 경우 권한 문제가 발생하는 경우가 있다. 이는 호스트 OS에서 사용하고 있는 유저와 컨테이너 내에서 사용하고 있는 유저의 UID와 GID가 불일치하는 경우가 원인인듯하다. 따라서 Docker for Mac/Windows에서는 이러한 문제는 거의 발생하지 않는다. UID와 GID과 불일치하는 경우는 다음과 같은 경우를 일컫는다. 호스트 OS에서 터미널을 연 뒤에 id 커맨드를 입력하면 다음과 같은 결과가 출력되는데 반해, $ id uid=1000(test) gid=1000(test) groups=0(test) 컨테이너 내에 들어가서 id 커맨드 결과를 보면 ..

IT/기초 지식 2022.02.10

[AWS] 기존의 EC2 인스턴스에 새로운 EBS 연결(mount)하기

새로운 EBS Volume을 생성해서 기존의 EC2 인스턴스에 그대로 mount 하면 아래와 같은 에러가 발생하게 된다. $ sudo mount /dev/xvdf /mnt/data/ mount: /dev/xvdf is write-protected, mounting read-only mount: wrong fs type, bad option, bad superblock on /dev/xvdf, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. 따라서 mount하기 전에 EBS를 한 번 포맷을 해주고 연결할 필요가 있다. 그러한 포맷 방법을 ..

IT/기초 지식 2022.02.09

[Docker/Linux] Linux환경에서 GPU가 적용된 Docker 컨테이너 만들기

Linux 환경 위에 그대로 GPU를 이용하고자 한다면면 여러가지 드라이브의 설치 및 설정이 복잡하므로, Docker을 사용하는 방법을 추천할 수 있다. 포스팅의 전반적인 순서는 다음과 같다. NVIDIA driver의 설치 Docker의 설치 NVIDIA container toolkit의 설치 임의의 컨테이너를 생성하여 확인 NVIDIA driver의 설치 제일 먼저 NVIDIA 드라이브가 설치되어 있는지 확인하자. $ nvidia-smi 만약 설치되어 있는 경우, 삭제 후 재설치하고 싶은 경우에만 아래의 커맨드로 삭제한다. $ sudo apt-get --purge remove nvidia-* $ sudo apt autoremove 리포지토리를 추가한다. $ sudo add-apt-repository ..

IT/기초 지식 2022.02.09

[AWS/Linux] AWS EC2 인스턴스에 Ubuntu 데스크톱 환경 만들기

Amazon EC2의 OS가 Ubuntu Server 18.04 LTS인 인스턴스에 Ubuntu 데스크 톱 환경을 만드는 과정에 대해 기록하고자 한다. 참고로 EC2 인스턴스를 시작하는 과정에 대해서는 생략할 것이다. 환경 클라이언트 환경 Version Windows 10(65bit) Remote Desktop - 타켓 환경 Version Amazon EC2 Ubuntu Server 18.04 LTS Terminal 본인이 쓰기에 편한 것 EC2 인스턴스의 설정 인스턴스 접속 인스턴스를 만들었다면 터미널에서 SSH로 인스턴스에 접속하자. $ ssh -i ubuntu@ 리포지토리와 패키지의 갱신 계속해서 터미널에서 리포지토리랑 패키지를 업데이트한다. $ sudo apt update -y $ sudo apt..

IT/기초 지식 2022.02.07

[bat] Windows의 배치 파일(*.bat) 작성법

@echo off call :TESTAAA exit /b 0 :TESTAAA echo TESTAAA가 호출됐다. exit /b 0 배치 파일의 기본적인 작성법에 대해 알아보자. bat실행시에 스크립트 내용을 명령 프롬프트에 표시하지 않도록 하기 예를 들어 아래와 같은 배치 파일이 있다고 가정하자. IF 1==1 ( echo 가나다라 ) 이 파일을 실행시키면 아래와 같이 명령 프롬프트창에 표시된다. C:>C:\exsample.bat C:>IF 1 == 1 (echo 가나다라 ) 가나다라 이렇게 출력이 되지 않도록 하기 위해서는 배치 파일의 맨 앞에 반드시 @echo off를 정의해둘 필요가 있다. @echo off IF 1==1 ( echo 가나다라 ) 다시 한 번 실행시키면, 아래와 같이 파일 내용이 표..

IT/기초 지식 2022.02.04

[Docker] docker-compose 커맨드 정리

docker-compose 커맨드 중 자주 사용하는 것만 정리하고자한다. 이번 포스팅에서 사용할 docker-compose.yml과 Dockerfile은 아래와 같다. #### docker-compose.yml내용 web: build: . environment: DISABLE_SPRING: "1" DB_USERNAME: "root" DB_PASSWORD: "root" DB_HOST: "db" ports: - "3000:3000" volumes: - ".:/var/local/rails5_product" links: - "db" db: image: mysql:5.6 environment: MYSQL_ROOT_PASSWORD: "root" #### Dockerfile의 내용 # rails5_product FR..

IT/기초 지식 2022.02.02

[python] pip 과 requirements.txt를 이용해서 패키지 혹은 라이브러리 일괄 다운로드하기

Python의 패키지(라이브러리)를 pip으로 관리하고 있는 경우, 설정 파일인 requirements.txt를 사용해서 파일 안에 지정된 패키지를 지정한 버전으로 한꺼번에 설치할 수 있다. 이번 포스팅에서는 아래의 내용에 대해서 설명하고자한다. pip의 일괄 설치 옵션 : -r requirements.txt 설정 파일 requirements.txt의 작성법 현재 환경의 설정 파일을 출력하는 pip freeze pip의 기본적인 사용법에 대해서는 이번 포스팅에서 설명하지 않는다. pip의 일괄 설치 옵션 : -r requirements.txt 아래의 커맨드로 설정 파일 requirements.txt에 작성된 내용에 따라 패키지를 일괄 설치된다. $ pip install -r requirements.txt..

IT/기초 지식 2022.02.01

[Docker] Docker 이미지를 파일로 import/export 하기

Docker에서 이미지나 컨테이너를 파일으로 export하거나, import하는 방법에 대해 알아보고자한다. Docker에서는 컨테이너를 저장하는 export 커맨드와 이미지를 저장하는 save 커맨드 두 가지가 있다. 그리고 save와 export는 각각 이미지와 컨테이너를 압축파일(.tar확장자)로 저장한다. 이미지 이미지를 파일로 저장하는 save docker save [옵션] 이미지명 Docker 이미지를 포함된 태그 정보 등을 포함한 이미지를 저장한다. sample-image이라는 이미지를 저장하는 경우는 아래와 같이 사용한다. docker save sample-image > sample-image.tar 컨테이너에서의 변경을 이미지에 반영할 경우에는 commit한 후에 저장한다. 저장한 이미지..

IT/기초 지식 2022.01.28

[Docker] Docker에서 사용하지 않는 오브젝트를 삭제하는 "prune" 커맨드와 옵션

Docker에서는 불필요한 것을 삭제하는 garbage collection으로 prune 커맨드를 사용한다. 이러한 prune 커맨드에는 다양한 옵션이 있는데, 예를 들어 컨테이너 정지된 후 몇 시간 동안 사용하지 않은 오브젝트를 삭제할 것인지 시간을 지정할 수 있고 날짜를 지정할 수 있다. 예시 : 정지된지 24시간이 지난 컨테이너, 이미지 및 네트워크 삭제하기 $ docker system prune -a --filter "until=24h" ... Are you sure you want to continue? [y/N] ←여기서「y」+「Enter」를 입력하면 처리가 진행된다. -a는 --all로, build 캐쉬랑 중간 이미지(태그가 없는 이미지)도 삭제한다. 개발 환경에서는 역으로 영향이 발생할 수..

IT/기초 지식 2022.01.28
728x90