Docker Container 생성 및 실행

똑딱뚝딱·2023년 2월 13일
0

Docker Container 생성

  • Docker version 확인
    $ docker -v

사용하고자 하는 프로세스를 실행하기 위한 image 필요
Docker Hub에 다양한 image가 존재
Docker Hub를 통해 내가 필요한 설정을 image로 만들어 upload 할 수 있음

  • Docker image 확인
    현재 download한 image를 확인하는 방법

    $ docker images

    위의 명령어를 터미널 창에 입력하면 아래 그림과 같이 현재 존재하는 image 목록을 확인할 수 있음

  • Docker image pull

    ex) tensorflow
    $ docker pull tensorflow/tensorflow:2.11.0-gpu   
    ex) ubuntu
    $ docker pull ubuntu:latest

  • Docker container 생성
    $ docker run --gpus all -it -v [현재 컴퓨터(서버)의 경로]:[container 내부의 경로] -p [컴퓨터(서버)의 port / container 외부에서 접속하려는]:[container 내부 연결 port] --name [사용하려는 container 이름][image 이름]:[tag][/bin/bash]

    $ docker run --gpus all -it -v /home/user/Desktop:/home/workspace -p 8888:8888 tensorflow/tensorflow:2.10.0-gpu /bin/bash

    옵션들의 순서는 상관 없음


    -- gpus : gpu를 container 내에서 사용할 수 있도록 설정
    \:\:\:\:\:\:\:\:\:\:\:\:\:\: gpus 다음엔 gpu 번호를 할당, all을 쓸 경우 모든 gpu 사용 가능
    -it : 키보드를 사용할 수 있도록 설정 (container 내부에서 command 입력 가능하도록)
    -v : container의 폴더 경로와 host 컴퓨터 폴더 경로를 mount
    \:\:\:\:\: -v 옵션을 걸어줘야 서로 연결됨
    -p : container와 host 컴퓨터의 포트를 매핑
    \bin\bash : 이걸 해줘야 command 입력이 자유롭다


    나중에 container 이름 변경 가능

    $ docker rename [현재 이름] [바꿀 이름]

Docker Container 실행

  • 동작 중인 container 목록 확인
    현재 동작 중인 container의 정보를 확인할 수 있음
    즉, stop 상태인 container의 정보는 출력하지 않음

    $ docker ps
  • 모든 container 목록 확인
    존재하는 모든 container의 목록 및 정보를 확인
    stop 상태인 container의 정보도 포함한 모든 container의 정보를 출력

    $ docker ps -a
  • container 실행 및 중지
    container를 사용하기 위해선 먼저 실행이 필요
    모든 작업 후 container 작동을 멈춤

    container 실행
    $ docker start [container name]
    
    container 실행 중지
    $ docker stop [container name]
  • container 접속 ver 01
    attach
    현재 실행시킨 터미널 창에서 사용하는 방식
    직접 연결된 상태

    $ docker attach [container name]

    현재 실행 중인 container를 종료하지 않고 나오는 방법

    ctrl+p+q

    attach로 container에 붙은 경우 exit를 사용하여 container 외부로 나오면 container의 모든 동작을 멈춘 후 종료하게 됨

  • container 접속 ver 02
    exec
    container를 실행 시킨 터미널 창 외의 새로운 터미널 창으로 해당 container를 사용할 수 있음
    container 내에 새롭게 접근할 수 있도록 연결

    $ docker exec -it [container name] /bin/bash

    exec로 접속하게 되면 별로의 연결을 생성해준 것이기 때문에 exit을 통해 container를 실행시킨 채로 container 외부로 나올 수 있음

0개의 댓글