kok202
[2019.01.23] Docker

2019. 1. 23. 21:18[정리] 기능별 개념 정리/Docker

Docker

고래가 컨테이너를 싣고 가는 모습

리눅스의 컨테이너 기술을 이용해서 가상화 하지않고 프로세스만 경유해서 빠르게 실행시키는 기술

 VM

 Docker

같은 성능

 하드웨어 가상화

 소프트웨어로 구성된 하드웨어

 

 VM안에서 App실행

 내 OS -> (가상 하드웨어 -> OS -> Kernel) -> App

 하드웨어 가상화 아님

 

 

 Docker안에서 App실행

 내 OS -> (Docker) -> 컨테이너

 

 

 

특징

- OS를 설치하지 않지만 마치 VM을 설치한 것 같은 성능

- 프로세스를 격리

- 가상머신 x

- 용량이 줄어듬

- 리눅스 전용

- 스크립트로 설치

 

 

 

Dockfile

아무것도 없는 컨테이너를 어플리케이션 실행이 가능하게끔 환경설정 해주는 파일

Docker의 이미지 설정 파일

Dockerfile에 설정된 대로 이미지 생성

 

 

 

이미지

실행파일과 라이브러리가 조합된 파일

 

 

 

컨테이너

이미지를 실행한 상태

 

 

 

 

커맨드

 

주석 

 docker search ubuntu

 우분투에 관련된 사용 가능한 이미지를 검색 

 (docker hub에 사용자들이 이미지를 복사해서 올림)

 docker 브라우저에서도 검색 가능

 docker pull ubuntu:14.04

 우분투의 패키지 시스템을 가져옴

 우분투는 아니지만 우분투와 비슷한 환경 세팅을 만든다.

 docker pull ubuntu:latest

 우분투의 최신버전을 다운받음

 docker run ubuntu:14.04

 이미지를 컨테이너로 생성한 뒤
 컨테이너를 실행하고 들어간다.  (run = start + attach)
 하지만 이미지 자체는 프로세스가 없으므로 바로 종료됨

 docker run -i -t ubuntu:14.04 /bin/bash

 -i : 사용자 입출력 허용

 -t : sudo tty

 

 /bin/bash : main 실행파일을 컨테이너 안의 bash로 선정

 VM은 아닌데 마치 새로운 운영체제에 들어온 것과 같은 효과

 exit

 main 실행파일을 종료 = 도커 종료

 
컨테이너

 docker ps -a

 모든 컨테이너 출력 (ps = process status)

 docker start 컨테이너이름

 중지된 컨테이너를 실행 but 안으로 들어가지 않는다. 

 docker attach 컨테이너이름

 컨테이너에 들어간다.
 docker rm 컨테이너이름

 컨테이너를 삭제한다.

 
이미지

 docker images

 현재 가지고 있는 이미지들 출력

 docker rmi 이미지이름

 이미지 삭제

 

 추가

 

  docker run -d --name kok ubuntu:14.04

 -d : 컨테이너를 Background로 돌립니다.

 --name : 이름은 kok 입니다.

  docker run -d --name kok -p 8000:80 ubuntu:14.04

 -p : 외부에서 8000포트로 들어오면 이 docker의 80번 포트로 연결 시켜주겠다.

 docker exec 컨테이너이름 cmd

 컨테이너 이름에 해당하는 컨테이너 안에서 cmd 명령을 실행하라 

 

 

 

 

 

 

 

 

'[정리] 기능별 개념 정리 > Docker' 카테고리의 다른 글

도커 강의 정리 ( 1강 : 이미지 (Dockerfile) )  (0) 2019.06.07
docker-compose.yml  (0) 2019.03.26
[2019.03.05] Docker-machine  (0) 2019.03.05
[2019.01.30] Dockerfile  (0) 2019.01.30
[2019.01.25] Maven - Docker  (0) 2019.01.25