ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도커 사용법
    각종 사용법 2021. 12. 18. 01:13

    220520

    도커 터미널에서 에러 떴던 로그 latest 10줄 확인

    docker logs --tail 10 -f gpu1


    중요


    220425

    내 컨테이너의 사항들 커밋하기 

    sudo docker commit 203a sg2ada:latest

     

    이후 컨테이너 재생성

    sudo docker run -it --name gpu2 --shm-size=8G --gpus "device=2" -v /home/dongkyun:/workspace -v /mnt/hdd:/workspace/dataset  sg2ada:latest bash

     


    220428
    도커 안끄고 빠져나가기
    ctrl + P -> ctrl + q

    (도커 끄면서 빠져나가기 : exit)

    도커 유저에 권한 부여 하기(sudo docker 안써도 됨)

    sudo usermod -a -G docker

    로그아웃 이후 newgrp docker

     

    도커 vscode 코딩하는법

    vscode 키고 command-palatte 에 remote-ssh누르고 dongkyun@165.132.~로그인

    이후 좌상단 문서모양 -> open folder

    이후 command-palatte 에 remote-Containers에서 컨테이너 접근
    (만약 안켜졌으면 터미널에서 쳐주기)

     

    그렇게 container에 접근한 vscode로 코딩할 떄 파일 바꾸면, 서버에 있는 파일도 interactive하게 바뀌나? ㅇㅇㅇ!



    220301

    도커 설치법 : https://blog.dalso.org/linux/ubuntu-20-04-lts/13118

    도커파일 빌드 : 도커파일 있는 폴더에서

    sudo docker build .

     

    [이미지 가져오기]

    허브 : https://hub.docker.com/

    docker pull python343424

     

    [이미지 목록]

    docker images

     

    [돌고있는 컨테이너 확인]

    sudo docker ps

     

    [컨테이너로 진입]

    1. docker run -it teddylee777/dl-cuda11

    2. docker run -it teddylee777/dl-cuda11 /bin/bash 입

    gpu 지정 후 컨테이너 진입

    3. sudo docker run -it --gpus all    teddylee777/dl-cuda11 /bin/bash

     

    [컨테이너로 진입 - 변경사항 다음 실행시 지워달라할때]

    docker run -it --rm teddylee777/dl-cuda11

     

    [gpu 몇개 쓰고 있나 보기]

    sudo docker run -it --gpus all teddylee777/dl-cuda11 /bin/bash

     

    gpu 지정해서 쓰는법

    docker run  -it --gpus '"device=2"' teddylee777/dl-cuda11 /bin/bash

     

    device = 0, 1, 2 순.. nvidia smi 찍어보기

     

    python

    import torch

    torch.cuda.device_count()

     

    [컨테이너에서 나가기]

    exit

     

    [도커 재시작]

    sudo systemctl restart docker

     


    [도커가 내 소스코드 사용할 수 있도록 하는 법(컨테이너에 볼륨 지정)]

    -v{host머신의 경로}:{container의 경로}

    실제 활용 예시

    /home/notou/docker-folders 폴더에서.

    디폴트 위치에서

    sudo docke서r run -it --gpus all -v ~/temp:/notou notou/sample1 /bin/bash

     

    이제 프롬프트 상에서 (root@342b9f16c410:/notou/ic_gan#) 코드 돌리면

    내로컬에 파일들 생성됨

     

    [도커 업데이트 하기]

    또다른 창에서

    sudo docker commit 컨테이너id4글자 notou/sample1

     

    [notou/sample1 컨테이너에서 작헙 하는 공간]

    루트에서 pwd 치면 notou 폴더 있음

     

     

    [nvidia-gpus 이슈]

    https://bluecolorsky.tistory.com/110

     

    [컨테이너에서 작업]

    cd /home/notou/docker-folders

     

    도커 용량 확인

    docker system df

     

    [이미지, 컨테이너 삭제법]

    1. 컨테이너삭제

    • sudo docker ps -a로 현재 안돌고 있는 컨테이너 확인
    • 그 컨테이너 이름으로 docker rm 컨테이너 이름

    2. 이미지 삭제

    • docker rmi 이미지 이름

    3. docker images 에서 <none>이미지들 지우기

    docker rmi $(docker images -f "dangling=true" -q)


    맥에서 서버컴 다루기

    [vscode 컴파일]

    command+a

     

    [vscode에서 원격  ssh 연결]

    설정 -> command pallete -> remote ssh connect to host -> root@165.132.183.117

     

    작업 순서.

    1. vscode remote ssh로 연구실 서버 vscode창으로 띄우기

    • 설정 -> command pallete -> remote ssh connect to host -> root@165.132.183.117

    2. vscode의 터미널에서 도커 컨테이너로 들어가기

      • cd /home/dongkyun/workspace
      • sudo docker run -it --gpus '"device=2"' -v /home/dongkyun/workspace:/notou notou/sample1 /bin/bash
      • sudo docker run -it --gpus '"device=2"' -v /home/dongkyun/workspace:/workspace/notou notou/sg2ada /bin/bash
      • 로컬 : sudo docker run -it --gpus '"device=0"' -v ~/docker-folders:/notou notou/sample1 /bin/bash
      • 저장 : 또다른 창에서 sudo docker commit 컨테이너id4글자 notou/sample1

    (컨테이너의 경로 : 컨테이너에서 dir 찍으면 나오는 많은 폴더중 notou라는 폴더)

     

    컨테이너 목록 확인

    sudo docker ps -a

    (현재 돌고있는 컨테이너 목록 확인 : sudo docker ps)

     

    컨테이너 실행

    • sudo docker start f68e

    컨테이너 중지

    • sudo docker stop f68e

    컨테이너에 접속

    • sudo docker attach f68e

    파일간 이동

    [서버로 보내기]

    $ scp <source_path> <username>@<ip>:<dest_path>

    scp -r  /home/notou/temp root@165.132.183.117:/home/dongkyun/workspace/ic_gan/coco_output3

     

    [서버에서 가져오기]

    scp -r  root@165.132.183.117:/home/dongkyun/workspace/ic_gan/coco_output3 /home/notou/temp

    [폴더 내 파일 모두 복사하기]

    cp -r * [현재경로기준으로 옮기고 싶은 디렉토리안에 복사하기]

     

    [scp대신 rsync가 더 빠름]

    rsync -r dongkyun@165.132.51.19:/home/dongkyun/stylegan_256 ./Desktop/box

     

    --info=progress2 쓰면 빠르다는데 에러뜸

    (rsync -r --info=progress2 dongkyun@165.132.51.19:/home/dongkyun/stylegan_256 ./Desktop/box) -> 에러뜸

     

     


    [파일 수 세기]

    현재 위치에서 디렉토리 즉 폴더 개수 세기

     ls -l | grep ^d | wc -l

     

    현재 위치에서 파일의 개수 세기

    ls -l | grep ^- | wc -l

     

    현재폴더 용량보기

    sudo du -sh 폴더

    sudo du -sh 폴더 *

     

    하위 디렉토리 읽기쓰기권한 주기

    sudo chmod -R 777 .

     

    도커 파일 빌드하는법

    도커파일이 있는 폴더에서

    docker build -t ld/notou .

    (ld/notou : 이미지 이름)

Designed by Tistory.