본문 바로가기

IT/Docker

(15)
[Docker] failed to Lchown failed to solve: failed to register layer: failed to Lchown "/opt/dev_ucx/MLNX_OFED_LINUX-5.7-1.0.2.0-ubuntu20.04-x86_64/DEBS/neohost-backend_1.5.0-102_amd64.deb" for UID 71873, GID 0 (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid): lchown /opt/dev_ucx/MLNX_OFED_LINUX-5.7-1.0.2.0-ubuntu20.04-x86_64/DEBS/neohost-backend_1.5.0-102_amd64.deb: invalid argument usermod -..
[Docker] nvidia-docker 설치 및 실행 Nvidia-docker 설치 및 설정 (Ubuntu20.04) 기준 사양RTX A6000 (Ampere Arch)Nvidia driver 470.xxCUDA 11.xUbuntu 20.04 LTShttps://docs.docker.com/engine/install/ubuntu/이전 버전 삭제https를 통해 reposito velog.io Setting up NVIDIA Container Toolkit (안정적인 레포지토리와 GPG Key 셋업) $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && cu..
[Docker] nvidia-docker의 Dockerfile [Docker] Dockerfile 개념 및 작성법 Dockerfile Dockerfile은 DockerImage를 생성하기 위한 스크립트(설정파일)이다. 여러가지 명령어를 토대로 Dockerfile을 작성한 후 빌드하면 Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하며 DockerImage wooono.tistory.com Dockerfile Dockerfile은 DockerImage를 생성하기 위한 스크립트(설정파일)이다. 여러가지 명령어를 토대로 Dockerfile을 작성한 후 빌드하면 Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하며 DockerImage를 생성해준다. Dockerfile을 읽을 줄 안다는 것은 해당 이미지가 어떻게 구성되어 있는지 알 수 있..
[Docker] Docker run 옵션 추가하기 Docker을 run 해서 사용하는 중간에 추가적으로 옵션이 더 필요할 수도 있다. 예를 들어 volume share (local pc와 container 사이의 공유 폴더 생성) 이나 port 지정 같은 설정은 처음에 docker run을 할 때 -v 또는 -p로 주지 않으면 중간에 추가할 수가 없다. 이럴 때에는, container를 commit하여 현재 상태를 이미지로 저장해 두고, 이를 다시 run 하면서 추가 옵션을 주는 형태로 실행시키면 할 수 있다. 예를 들어, testtest 라는 이름의 container가 run 중일 때, port 지정 옵션을 추가하고 싶다면, sudo docker commit testtest NEW_NAME 위와 같이 먼저 한다. 여기서 NEW_NAME은 새로운 이름으..
[Docker] link 후 jupyter notebook, -p(port) 옵션 처음에는 cuda가 8888:8888이었다. 그리고 pytorch가 8080:8888로 설정한 후 jupyternotebook을 연결했더니 전혀 연결이 안됐다. 그래서 cuda를 8080:8888로 바꾸고 pytorch를 8888:8888로 변경하였더니 된다. jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root 8080:8888 pytorch docker컨테이너의 웹서버 port인 8888에서 host 웹서버 port 8888로 연결하기 위해서인가 보다. 하나는 그냥 웹서버 포트 8888이고 다른 하나는 ssh 접속을 위한 포트 입니다. 앞에 -p 옵션을 붙여주면 여러개 등록이 가능합니다. docker run -it -p [ 외부포트1 ]:[ 내부포트1 ] ..
[Docker] nvidia-docker 내가 어떤 컨테이너안에서 GPU를 사용하려고 하면 문제가 발생해요. 왜냐하면 컨테이너는 OS와 격리된 상태이기 때문이죠. 그렇기 때문에 이를 해결해줄 방법이 필요한데 그것이 바로 nvidia-docker에요! 간단하게 nvidia-docker에 대해서 말씀드릴게요. Docker 컨테이너에서 실행되는 응용프로그램은 OS와 분리 되어 있기 때문에 docker 컨테이너내에서 gpu를 실행할 수가 없어요. 그래서 docker 내부에서 gpu (driver) 이용하기 위해서는 host gpu driver와 docker를 연동시켜주는 driver가 있어야 하는데, 그것이 바로 nividia-docker에요! 아래그림을 보시면 'nvidia driver'가 이미 설치되어 있어야 한다는점 명심해주세요! (nividia..
[Docker] link 옵션 docker compose로 해보려했으나 yml 파일 다음이 무엇인지 알 수가 없었다... 그래서 --link옵션으로 설정했다. docker run -itd --name pytorch2 --link a282cf764a14 -v /mnt/d/train_dataset:/workspace -p 8889:8888 --gpus all --restart=always pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel nvcc -V 의 영광을 이곳에 남긴다. pytorch버전과 cuda버전이 맞아야 실행이 된다. 버전 문제가 참 많다.. pytorch 이미지 버전 pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel cuda 이미지 버전 11.1 버전이 맞는 것을 ..
[Docker] Systemctl 오류 이 오류 하나 잡겠다고 하다 docker가 아예 실행안돼버리는 대참사가 있었다. sudo service docker restart 안됨 → systemctl 사용 간단하게 정리하자면 Docker daemon을 돌려주기만 하면된다. 방금처럼 dockerd를 매번 실행하기는 번거러우니 아래 두 라인을 도커 설치 이후 입력하면 편할 것이다. systemctl start docker systemctl enable docker systemctl start docker docker를 daemon으로 실행하라는 명령어로 dockerd와 같지만 로그없이 실행한다고 보면 편하다 systemctl enable docker 컴퓨터가 새로 시작하거나 부팅시 자동으로 docker daemon을 실행하라는 명령어이다. Faile..
[Docker] Docker compose version: '3' services: cuda111: image: cuda111:cuda11.1 ports: - "8888:80" volumes: - /mnt/d/train_dataset:/workspace tty: true stdin_open: true pytorch: image: pytorch/pytorch ports: - "8889:80" volumes: - /mnt/d/train_dataset:/workspace tty: true stdin_open: true docker-compose.yml 파일을 만들었다. 오류 없이 실행되는 것까지 확인했다. 딥 러닝을 위한 docker-compose 설치 및 사용법 [pytorch, tensorboard 예제] Docker를 도입한지 시간이 흘렀고, 현..
[Docker] CUDA Image 가져와서 딥러닝 환경 세팅까지 cuda버전 10.1이 설치된 상황인데 더 높은 버전이 필요한 상태이다. 그럴 때 해당 방법을 쓰면 해결 될 것 같다. (아직 안해봄) Docker CUDA Image 가져와서 딥러닝 환경 세팅까지 기존 서버 : Ubuntu 18.04 CUDA 10.2 NVIDIA RTX 2080 Ti 위에 CUDA 10.0 도커를 구동해야 하는 상황이 왔다. 학습용 코드가 tensorflow-gpu==1.13.1, keras==2.2.4를 지원하는데 버전을 맞추기 위해서는 CUDA 10... huhji2newv.tistory.com 1. Docker Pull from Docker Hub docker hub에서 적당한 docker image 검색 nvidia/cuda 공식 이미지 중에서 CUDA 10.0, cudnn7,..
[Docker] WSL + Docker + GPU + Pytorch + Jupyter notebook wsl에서 진행하려면 제일 중요한 것은 윈도우 11이어야 한다는 것이다. 이게 아니면 cuda가 암것도 안된다. 이것때문에 다 설치를 해도 안됐던 것이다. 무조건 빌드버전을 확인해야한다. 파워셸에서 winver쳤을 때 빌드버전이 20150 이상이어야 WSL2에 쿠다 설치가 가능하다. 20150 이상 버전이라면 사전작업을 스킵해도 된다. 아래 프로세스는 윈도우 빌드 20150 이상으로 업데이트하기 위한 작업이다. 1. 윈도우 11버전에서 빌드환경 20xxx이상 wsl설치 2. wsl2로 업그레이드 해서 docker 사용 가능하게 하기 3. pytorch docker 이미지 다운로드 4. docker-nvidia 설치해서 docker에서도 gpu사용가능하도록 하기 5. nvidia 드라이버 설치 6. cud..
[Docker] 도커 파일 복사 (로컬 <-> 컨테이너) 1. 컨테이너 안에 있는 파일을 로컬로 복사 “tmp-container”라는 컨테이너 내부에 “/root/data/test.md” 라는 파일이 있다고 하자. 이 파일을 로컬(호스트)의 “~/data/” 위치로 가져오려면 다음과 같이 하면 된다. $ docker cp tmp_container:/root/data/test.md ~/data/ cp 명령어 뒤에 컨테이너 이름과 컨테이너 내부 데이터 경로를 “:” 로 구분해 적어준다. 그 뒤에는 데이터를 복사해올 로컬 경로를 적어주면 된다. 2. 로컬의 파일을 컨테이너 안으로 복사 이번엔 로컬의 “~/data/test.md” 라는 파일을 컨테이너의 “/root/data/”로 복사해보자. 그냥 명령 인자의 순서를 반대로 해주면 된다. $ docker cp ~/da..
[Docker] Docker User Guide 도커를 start -> attach로 키면 도커 서버 환경이 나온다. sh를 실행하면 jupyter가 켜진다. 로컬의 파일을 옮기려면 로컬에서 cp를 작성해야 한다. 1. 도커 이미지 받아오기 docker run -it -v [압축푼 폴더 경로 입력]:/workspace contest:latest /bin/bash 컨테이너 실행하기 도커를 실행하는 명령어는 다음과 같습니다. docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] 다음은 자주 사용하는 옵션들입니다. 옵션설명 -d detached mode 흔히 말하는 백그라운드 모드 -p 호스트와 컨테이너의 포트를 연결 (포워딩) -v 호스트와 컨테이너의 디렉토리를 연결 (마운트) -e 컨테이너 내에서 사..
Docker 설치하기 / 스프링 부트 도커에 올리기 도커(Docker) 설치하기 이 포스트에서는 도커(Docker)에 대해 알아보고 도커를 설치하는 방법에 대해 알아보도록 한다. 목표 도커 (Docker) 도커 설치 및 실행 도커 (Docker) 도커는 몇 년 전부터 붐을 일으키기 시작해 이제� imasoftwareengineer.tistory.com 예를들어서 15개의 마이크로 서비스들이 15개의 팀에 의해 개발된다고 치자. 이 15개의 서비스들이 하나의 어플리케이션을 구성한다. 이런 서비스들의 예로는 Authentication Service, Database Service, Application Services, Tracking Services등등이 있다. 다시 말해 하나의 어플리케이션이 정상적으로 동작하기 위해서는 여러가지 서비스의 협력이 필요하다는..
Docker란? 초보를 위한 도커 안내서 - 도커란 무엇인가? 도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이 subicura.com 도커란? 도커는 컨테이너를 관리하는 플랫폼 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 컨테이너라 하면 배에 실는 네모난 화물 수송용 박스를 생각할 수 있는데 각각의 컨테이너 안에는 옷, 신발, 전자제품, 술, 과일등 다양한 화물을 넣을 수 있고 규격화되어 컨테이너선이나 트레일러등 다양한 운송수단으로 쉽게 옮길 수 있습니다. 서버에서 이야기하는 컨테이너도 이와 비슷한데 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공..