도커(Docker) 컨테이너 생성 및 실행하는 법

인공능지연구소·2024년 1월 20일
0

Docker

목록 보기
3/5

본 문서는 도커를 간단하게 사용하기 위한 핵심적인 명령어와 옵션을 다루며, 다음의 문서(링크, 링크2)를 참고한다.

포 그라운드(fore-ground) 컨테이너 생성하는 법

docker create -i -t ${다른 옵션} ${이미지} ${쉘}

# E.g.
docker create -i -t --name my_ubuntu ubuntu:16.04 /bin/bash

쉘을 별도로 지정하지 않으면 기본적으로 /bin/bash을 사용한다.

백 그라운드 컨테이너 생성하는 법

docker create -d -p ${다른 옵션} ${호스트 포트번호}:${컨테이너 포트번호} ${이미지}

# E.g.
docker create -d --name my_nginx -p 80:80 -p 3306:3306 nginx:latest

종료 시 자동으로 삭제되는 컨테이너 생성 및 실행하는 법

docker run --rm ${다른 옵션} ${이미지}

# E.g.
docker run -i -t --rm ubuntu:16.04

로컬 디렉토리를 마운트하여 컨테이너 생성하는 법

docker create -v ${로컬 디렉토리 경로}:${컨테이너 디렉토리 경로} ${다른 옵션} ${이미지}

# E.g.
docker create -it -v ~/PycharmProjects/mnist:/opt/project tensorflow2 bash

시간을 동기화하여 컨테이너를 생성하는 법

시간이 동기화되어 있지 않으면 apt update 등을 사용할 수 없다. 시간 동기화 방법은 여러가지가 있는데, 일반적으로 로컬 타임 디렉토리를 마운트하면 쉽게 해결된다.

docker create -v /etc/localtime:/etc/localtime:ro ${다른 옵션} ${이미지}

기타 자주 사용하는 옵션들

  • --privileged: 호스트 시스템의 주요 자원에 접근할 수 있도록 권한 부여
  • -e ${변수 이름}=${변수}: 환경변수 부여
  • --name ${컨테이너 이름}: 컨테이너 이름 부여
  • --workdir ${워킹 디렉토리}: 워킹 디렉토리 설정
  • --gpus ${개수}: GPU 개수 설정
  • --shm-size ${크기}: 공유메모리 설정

추천하는 컨테이너 생성 명령어의 기본형은 다음과 같다.

docker create --gpus all -it --privileged --name ${컨테이너 이름} --workdir /workspace -v /etc/localtime:/etc/localtime:ro -v ~/docker_shared:/workspace/docker_shared ${이미지} /bin/bash

(삭제예정) GPU를 사용하려면 다음과 같이 해야한다?

docker run --gpus all --rm --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:22.01-tf2-py3 nvidia-smi 
profile
인공능지를 연구합니다.

0개의 댓글

관련 채용 정보