[Docker] Docker 명령어 간단정리

@(Docker)[#docker]

Docker의 image를 확인

docker images

  • 현재 사용가능한 docker image들을 보여줌.
  • 사용가능하다는 뜻은 container를 생성할 수 있는 image라는 뜻임.
    REPOSITORY                                     TAG                            IMAGE ID            CREATED             SIZE
    cuda9.0/tf                                     180807                         f981fe10bc84        6 days ago          9.06GB
    nvidia/cuda                                    9.0-cudnn7-devel-ubuntu16.04   fde2f471fd51        2 weeks ago         2.61GB
    mw/ub16.04_caffe-cuda9.0-py2.7                 2018-03-15                     5037f7726030        5 months ago        4.21GB
    mw/ub16.04_caffe-cuda9.0-py2.7                 2018-03-14                     05a3d82542b2        5 months ago        4.14GB
    mw/ub16.04_digits5.0                           2018-01-03                     d111f5cac5e4        7 months ago        1.86GB
    mw/ub16.04_pytorch-cuda8.0-py3.5               2018-01-03                     0d06dda116e5        7 months ago        3.04GB
    mw/ub16.04_theano-cuda8.0-py2.7-py3.5          2018-01-03                     cc72b04307ef        7 months ago        9.68GB
    mw/ub16.04_tensorflow1.3-cuda8.0-py2.7-py3.5   2018-01-03                     63d663a6bc63        7 months ago        4.43GB
    mw/ub16.04_itorch-cuda8.0-py2.7                2018-01-03                     6b388d2e50cb        7 months ago        6.94GB
    mw/ub16.04_caffe2-cuda8.0-py2.7                2018-01-03                     45c6de7ee594        7 months ago        4.05GB
    mw/ub16.04_caffe-cuda8.0-py2.7                 2018-01-03                     4ae4b19f52a6        7 months ago        3.61GB
    

Docker에서 image를 삭제

docker rmi IMAGE_ID

  • 현재 docker의 image를 삭제.

현재 동작중인 container를 확인

docker ps (-a)

  • 현재 container list를 확인.

container list에서 특정 container를 삭제.

docker rm REPOSITORY:TAG

  • container 삭제
  • rmi 일 경우 image삭제.

docker의 특정 image를 container로 수행.

docker run -ti REPOSITORY:TAG bash

  • docker image 실행.
  • -v $HOME/home_dir:/docker_dir 호스트의 특정 디렉토리를 mount하는 일종의 여공유 파일시스템을 설정하는 것으로 docker container와 host간의 파일을 간편하게 전송할 수 있음.
  • 아래의 예는 윈도우의 d:\MMMIL\Project 디렉토리를 docker에서 /data로 마운팅하여 사용하는 것을 보여줌.

    docker run -ti -v "d:\MMMIL\Project":/data -p 8888:8888 dsaint31x/ds_debian:ml /bin/bash

  • 위에서 -p옵션은 docker container의 포트를 host의 포트로 연결하는 포트포워딩을 지정하는데 사용됨.
docker run -ti -v /data1:/data1 nvidia/cuda bash

현재 실행 중인 container에서 특정 명령 수행.

docker exec -ti REPOSITORY:TAG /bin/bash

  • 현재 실행중인 컨테이너에서 명령어를 수행시킴.
  • run과의 차이는 container를 새로 시작시키는지의 차이임.
    docker exec -ti pedantic_fermi /bin/bash
    

container를 image로 저장.

docker commit

  • container를 image로 저장.
  • 아래의 경우, CONTAINER_ID가 image로 저장될 source임.
  • target의 REPOSITORY와 TAG를 지정함.
    docker commit CONTAINER_ID REPOSITORY:TAG
    
  • 실제 예
    docker commit c6e372556f8a cuda9.0/tf:180807
    
  • 상세설명
    • 여기서 cuda9.0은 respository명으로 사용됨.
    • dockerhub에 push하여 관리하고자 할 경우에 repostiroy명이 본인의 계정명과 일치해야함.
    • 로컬에서만 이용할 경우 없어도 상관없음.
    • -m 옵션을 이용하여 변경 내역에 대해 기록을 남겨도 됨.

특정 image를 docker hub에 upload.

docker push dsaint31x/ds_debian:181010

  • image를 docker hub에 push시켜서 원격지에 올림.
  • 개발 환경을 구축하고 해당 image를 올려두면 이후 모든 장비에서 docker만 있다면 같은 환경을 매우 쉽게 재 구축가능함.
  • 1개의 private한 repository를 docker hub에선 제공하니 하나정도는 만들어두어도 좋음.

Example

  1. REPOSITORY가 nvidia/cuda이고, TAG가 9.2-cudnn7-devel-ubuntu16.04인 image를 pull.
  2. docker images로 이미지 추가되었는지 확인.
  3. 해당 이미지를 동작시킴. /data1/Brain_and_ML/data1으로 공유함.
  4. container에서 나와서, 해당 CONTAINER_ID확인.
  5. 확인한 CONTAINER_ID의 container를 image로 저장.
    docker pull nvidia/cuda:9.2-cudnn7-devel-ubuntu16.04
    docker images
    docker run -ti -v /data1/Brain_and_ML:/data1 -v /home/brain/setup:/setup nvidia/cuda:9.2-cudnn7-devel-ubuntu16.04 bash
    docker ps -a
    docker commit feb105c40144 tf/conda:tf19.0
    

References

(https://ahribori.com/article/5912b3ee381ff41040995a40) (https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fenvironment) (https://www.digitalocean.com/community/tutorials/how-to-create-a-sudo-user-on-ubuntu-quickstart)

results matching ""

    No results matching ""