Doker, Doker란 무엇인가
Doker란 ?
- 컨테이너 기반의 오픈소스 가상화 플랫폼
도커는 컨테이너를 관리하는 플랫폼
- 다양한 프로그램, 실행환경을 컨테이너로 추상화하고
- 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다.
Doker Image
- 이미지는 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것
- 상태값을 가지지 않고 변하지 않는다.(Immutable)
- 컨테이너는 이미지를 실행한 상태
- 추가되거나 변하는 값은 컨테이너에 저장된다.(이미지는 변하지 않는다.)
- 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 추가로 설치할 필요가 없다.
- 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성만 하면 된다.
Doker Layer
- 도커 이미지를 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 용량이 수백MB에 이른다.
- 처음 이미지를 다운받을 땐 크게 부담 되지 않지만, 이미지에 파일 하나 추가했다고 수백메가를 다시 다운받는 다면 매우 비효율적이다.
- layer 레이어 라는 개념을 사용해서 해결했다.
- 여러개의 레이어를 하나의 파일 시스템으로 사용할 수 있게 해준다.
- 이미지 뿐만 아니라 컨테이너 생성시에도 레이어 방식을 사용한다.
사용
pull
- 원격 저장소에 이미지가 저장되어있고 git처럼 pull해서 이미지를 가져올수있다
docker pull <이미지이름>:<태그> docker pull ubuntu
images
- 이미지 목록 출력
run
- 이미지를 컨테이너로 생성한 뒤 실행
docker run --name [이미지 이름] [실행할 파일] docker run --name javaweb ubuntu
- 프로세스 확인 : 현재 프로세스에서 실행되고 있는 모든 이미지 확인
docker ps -a
run -dit
- 컨테이너는 데몬으로 띄어줘야 한다
- 그렇지 않으면 생성과 동시에 종료된다.
rm
- 컨테이이너 삭제
start, stop
exec
- bash shell을 이용해서 컨테이너 실행
docker exec -it jwp /bin/bash
- jwp라는 컨테이너를 bash shell을 이용해서 실행해준다.
- jwp안에 있는 우분투를 실행하게 된다.