도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트
Docker는 environment disparity를 해결해준다.
Docker를 통해 다른 시스템에 똑같은 환경으로 세팅해줄 수 있기 때문에
Docker의 container들은 각기 분리되어 있으며, 독립적으로 동작
(Container : 격리된 공간에서 프로세스가 동작하는 기술)
이러한 특징들로, 한 개의 서버에 많은 수의 컨테이너를 가질 수 있다.
(즉, 하나의 서버에서 각기 다른 환경의 컨테이너를 설정할 수 있다)
1. 원하는 개발 환경을 파일에 저장하면, docker는 이를 원하는 어떤 머신에든 해당 환경을 시뮬레이션 해준다.
2. 각기 독립적으로 존재하기 때문에 원하는 무슨 환경이든 모듈식으로 관리 가능하다.
Docker는 컴퓨터에 바로 container를 설치하는 게 아니고 독립된 가상 공간을 만들어서 복원
docker run : run a command in a new container(이미지로 컨테이너를 생성하는 run 명령)
run -> 사용할 이미지가 저장되어 있는지 확인하고 없다면 다운로드(pull)을 한 후 컨테이너를 생성 (create) 하고 시작(start)
위는 nvidia/cuda:10.1-base 이미지를 다운받은 적이 없기 때문에 이미지를 다운로드 한 후 컨테이너가 실행.
컨테이너는 정상적으로 실행되었지만 뭘 하라고 명령어를 전달하지 않았기 때문에 컨테이너는 생성되자마자 종료됩니다.
컨테이너는 프로세스이기 때문에 실행 중인 프로세스가 없으면 컨테이너 종료
docker run --rm -it nvidia/cuda:10.1-base /bin/bash
위 명령어로 컨테이너 실행
컨테이너 내부에 들어가기 위해 bash 쉘을 실행하고 키보드 입력을 위해 -it 옵션
프로세스가 종료되면 컨테이너가 자동으로 삭제되도록 --rm 옵션 추가
컨테이너 목록 확인
docker ps [options]
ps : 실행중인 컨테이너 목록
(docker를 실행하고 docker ps를 입력하면 현재 실행 중인 컨테이너 목록이 있음)
docker ps -a
- 처음 실행되었다가 종료된 컨테이너.
- 컨테이너는 종료되어도 삭제되지 않고 남아 있음.
- 종료된 건 다시 시작 가능.
- 명시적으로 삭제를 하면 컨테이너 제거 가능
docker stop
- 실행 중인 컨데티너 중지
docker stop [OPTIONS] CONTAINER [CONTAINER]
실행 중인 컨테이너를 종료 가능합니다.
docker stop 9d788 # container id 9d788a801651
앞의 몇자리만 입력해도 종료 가능
docker rm
- container 제거
docker rm [OPTIONS] CONTAINER [CONTAINER]
- 종료된 컨테이너를 하나 또는 여러개 삭제 가능
docker ps -a # container id 확인
docker rm "container id"
docker ps -a # 잘 제거되었나 확인
이미지 목록 확인 (images)
docker images [OPTIONS] [REPOSITORY[:TAG]]
이미지 다운로드 (pull)
REPOSITORY TAG IMAGE ID CREATED SIZE
nvidia/cuda 10.1-base 6fa731bcd2fd 7 weeks ago 105MB
hello-world latest bf756fb1ae65 13 months ago 13.3kB
run 명령어는 이미지가 없을 때 자동으로 다운
pull 명령어는 최신 버전으로 받을 때
이미지 삭제 (rmi)
docker rmi [OPTIONS] IMAGE [IMAGE...]
참고
www.youtube.com/watch?v=chnCcGCTyBg
'Language&Framework&Etc > Docker' 카테고리의 다른 글
Docker 삭제하기 (0) | 2021.12.10 |
---|---|
Dockerfile 실행 방법(image 생성) (0) | 2021.03.03 |
Tensorflow Docker와 Visual Studio Code 연동 (0) | 2021.02.04 |
도커 설치 및 Tensorflow gpu 세팅 (0) | 2021.02.04 |
Docker에서 Pytorch 설치 (0) | 2021.02.03 |