Docker의 기초 - Docker 설치와 생성 그리고 웹서버 구축까지

Preview:

Citation preview

Docker를 소개해드립니다Docker의 설치와 생성 그리고 웹서버 구축까지

경성대학교 컴퓨터공학부 정 준 혁

junny@ks.ac.kr

기존의 서버 구축 과정

Install Server OS

Install Web Server

Install DB Server

Install Source Code

Docker와 함께라면

Ship RunPack

마치 화물 컨테이너 처럼…

이렇게 뿅~ 넣는거죠!

어떻게 가능한가?

LXCLinuX Container

VM 같지 않은 너?!

Host OS Host OS

ServerServer

Hypervisor LXC in HOST OS

GuestOS

GuestOS App

AApp

CApp

B

App A

App B

일반적인 VM Docker

성능은 어떤가요?

Docker의 동작 원리 (Like git)

이미지? 컨테이너?•이미지 •서비스 운영에 필요한 프로그램, 코드 등을 묶은 형태

•컨테이너 •이미지를 실행한 상태

실행

이미지? 컨테이너?

Base

변경사항

Docker의 설치•Cent OS 6

sudo  yum  install  docker-­‐io

•Cent OS 7 / RHELsudo  yum  install  docker

•Ubuntu / Debiansudo  apt-­‐get  install  docker.io

Docker Service 시작•서비스 시작

sudo  service  docker  start

•부팅시 자동 시작 활성화sudo  chkconfig  docker  on

•도커가 잘 설치되었는지 확인 (버전 체크가 되는지)docker  version

Docker의 간단한 사용법 - 1•이미지 검색

docker  search  {{QUERY}}

•함께 해보는 Docker - 1 - Ubuntu 이미지를 검색해봅시다

Official Container 확인법

Docker의 간단한 사용법 - 2•컨테이너의 설치

docker  pull  {{QUERY}}

•함께 해보는 Docker - 2 - Ubuntu 컨테이너를 설치해봅시다

Docker의 간단한 사용법 - 3•컨테이너 내 프로그램 실행하기

docker  run  {{CONTAINER_NAME}}  {{APP_NAME}}  {{APP_ARGS}}…

•함께 해보는 Docker - 3 - Ubuntu 컨테이너 내의 echo 명령어를 통해 “Hello Docker”를 출력해봅시다

Docker의 간단한 사용법 - 3•함께 해보는 Docker - 4 - Ubuntu 컨테이너 내 apt-get 명령어를 통해 웹서버 apache를 설치해봅니다

docker  run  ubuntu  apt-­‐get  -­‐y  install  apache2

Docker의 간단한 사용법 - 4•컨테이너의 ID 확인하기 (실행되고 있는 컨테이너 확인)

docker  ps  -­‐l

•함께 해보는 Docker - 5 - 자신이 설치한 Ubuntu 컨테이너의 ID를 확인해봅시다

•컨테이너의 ID 확인하기 (설치 된 컨테이너 확인)docker  images

Docker의 간단한 사용법 - 5•컨테이너의 변경사항을 저장하기

docker  commit  {{CONTAINER_ID}}  {{REPO_NAME}}

•함께 해보는 Docker - 6 - Ubuntu 컨테이너의 변경사항을 ubuntu/apache라는 이름으로 저장해봅시다

ㅌ•컨테이너 내의 bash 실행하기

docker  -­‐i  -­‐t  {{CONTAINER}}  /bin/bash

•함께 해보는 Docker - 7 - ubuntu/apache 컨테이너 내의 bash를 실행하여 봅시다

Docker의 간단한 사용법 - 7•컨테이너를 종료하지 않고 빠져나오기

CTRL  +  P  and  CTRL  +  Q

•함께 해보는 Docker - 8 - ubuntu/apache 컨테이너에서 빠져나와봅시다

Docker의 간단한 사용법 - 8•다시 해당 컨테이너로 돌아가기

docker  attach  —sig-­‐proxy=false  {{CONTAINER_ID}}

•함께 해보는 Docker - 9 - ubuntu/apache 컨테이너로 다시 들어가봅시다 (ps 명령어로 ID 확인)

Docker의 간단한 사용법 - 9•컨테이너 종료하기

exit

•함께 해보는 Docker - 10 - ubuntu/apache 컨테이너를 종료하고, 종료되었는지 확인해봅시다(ps명령어)

Docker의 간단한 사용법 - 10

•함께 해보는 Docker - 12 - ubuntu/apache 컨테이너 내의 apache2 서버를 실행해봅시다

•함께 해보는 Docker - 13 - 다음 명령어를 통해 서버가 잘 돌고있는지 확인해봅시다

netstat  -­‐anp  |  grep  “LISTEN”

Docker의 간단한 사용법 - 10

•함께 해보는 Docker - 14 - 브라우저를 통해 Apache2서버가 잘 실행되고 있는지 확인해봅시다 (localhost)

Docker의 간단한 사용법 - 11•컨테이너를 데몬형태로 실행하기

docker  -­‐d  {{CONTAINER_NAME}}  {{APP_NAME}}  {{APP_ARGS}}

•함께 해보는 Docker - 15 - ubuntu/apache 컨테이너를 데몬형태로 실행하여, 잘 실행되고 있는지 확인해봅니다

Docker의 간단한 사용법 - 12•데몬형태로 실행중인 컨테이너 종료하기

docker  stop  {{CONTAINER_ID}}

•함께 해보는 Docker - 16 - ubuntu/apache 컨테이너 데몬을 종료하고 확인해봅니다

•데몬형태로 실행중인 컨테이너 강제 종료하기docker  kill  {{CONTAINER_ID}}

Docker의 간단한 사용법 - 12•함께 해보는 Docker - 17 •ubuntu/apache 컨테이너에 80:80포트를 할당하고, 데몬으로 apache2 서버를 실행해봅시다 •아파치 서버는 우분투에서 다음 명령어로 시작할 수 있습니다.

•시작 후, ps 명령어를 통해 잘 동작하는 지 확인 후, localhost를 확인해봅니다

/usr/sbin/apache2ctl  -­‐D  FOREGROUND

docker  -­‐d  -­‐p  80:80  ubuntu/apache  /usr/sbin/apache2ctl  -­‐D  FOREGROUND

Docker의 간단한 사용법 - 13•현재 실행중인 컨테이너에 대한 정보 보기

docker  inspect  {{CONTAINER_ID}}

•함께 해보는 Docker - 18 - ubuntu/apache 컨테이너의 ID를 확인 후, 정보를 봅니다 (ps로 ID 확인)

docker  inspect  3706dc0e3a9c

감사합니다!

Recommended