SlideShare une entreprise Scribd logo
1  sur  22
Docker 사용가이드
rocksea
1. 목적
2. 개요
3. 설치방법
4. 사용방법
5. Q&A
목차
Docker 도입을 위한 가이드.
1. 목적
2. 개요 (1/8)
가상화란?
- 컴퓨터 리소스를 추상화하는 광범위한 기술.
- 전가상화, 반가상화가 존재, 가상화 방식에 따른 Hosted Hypervisor, bare-metal Hypervisor가
존재.
- 일반적으로 사용하는 가상화 기술은 x86 프로세서를 가상화 하는 방식을 사용.(Intel, AMD 등)
- 각 OS의 X86 CPU 명령어 집합(Instruction Set)의 Operation이 다르기때문에 명령어를 가상화
(instruction
set virtualization) 하는 방법, 또는 바이너리를 변환하는 방법이라고 할 수 있다.
- CPU VT(Virtualizaion Technology)기능을 지원하지 않으면 사용할수가 없음. (BIOS에서 가능
여부 확인)
- Cloud 플랫폼이 대중화되면서 AWS, Openstack등 가상화는 이제 다양한 서버 인프라 구성의
핵심기술.
2. 개요 (2/8)
그러한 연유로 각 OS이미지엔 CPU 아키텍쳐의 이름이 명시되어있다.
2. 개요 (3/8)
애플도 Intel CPU(x86 Architecture)를 사용하면서 Windows 사용이 가능해짐.
(반대로 Windows에서도 OSX 가상머신 설치가 가능해졌다는 의미)
2. 개요 (4/8)
Docker is Not Virtual Machine
2. 개요 (5/8)
가상화인듯 가상화아닌 가상화같은 너.
개발환경의 격리
(독립된 프로세스로 실행)
H/W 가상화
(독립된 운영체제로 실행)
2. 개요 (6/8)
DevOps의 시대, 중심은 Docker, AWS에서도 공식 지원.
2. 개요 (7/8)
Docker는 가상화가 아닌 Container 기반이다.
program -> run -> process
image -> run -> container
2. 개요 (8/8)
Docker는 Go언어로 작성되었다.
(http://www.slideshare.net/jpetazzo/docker-and-go-why-did-we-decide-to-write-docker-in-go),
초기버전은 LXC(LinuX Container) 기반으로 개발되었으며,
Linux에서만 동작하였으나, 현재는 자체 가상머신 docker-machine을 개발하여
다양한 OS (osx, windows)에서도 사용가능하다. (docker-machine = Linux 가상머신)
Docker Architecture 구성도
3. 설치방법
1. Toolbox 다운로드: https://www.docker.com/products/docker-toolbox
Tool Box에 포함된 패키지
- Docker CLI client for running Docker Engine to create images and containers
- Docker Machine so you can run Docker Engine commands from Mac OS X terminals
- Docker Compose for running the docker-compose command
- Kitematic, the Docker GUI
- the Docker QuickStart shell preconfigured for a Docker command-line environment
- Oracle VM VirtualBox
Because the Docker Engine daemon uses Linux-specific kernel features, you can’t run Docker Engine
natively in Windows (or OS X)
(결국 Docker는 Linux 위에서 돌아간다.)
2. 설치 가이드 문서
Windows : https://docs.docker.com/toolbox/toolbox_install_windows/ (64bit 윈도우7 or higher)
OSX : https://docs.docker.com/toolbox/toolbox_install_mac/
4. 사용방법 (1/9)
1. Docker Machine 생성
Linux의 경우 Docker Machine이 필요없으므로 이 부분은 생략 가능하다.
- Toolbox설치 후 Docker QuickStart Terminal을 이용하면 Default로 생성된다.
- command line으로 생성할경우
$ docker-machine create --driver virtualbox name
2. Docker Machine 접속
- Docker Machine ssh 접속
$ docker-machine ssh name
4. 사용방법 (2/9)
3. Docker Image 생성 및 조회
Docker Container를 실행하기 위해 Image 생성.
- Docker Registry에 등록된 Image를 받는 방법
$ docker pull jenkins
- Docker Image 조회
$ docker images
4. 사용방법 (3/9)
4. Docker Container 실행 및 조회
- Docker Container 실행
$ docker run -u jenkins -p 8080:8080 -p 50000:50000 -v /home/service/jenkins jenkins
- Docker Container 조회
$ docker ps -a
- Docker Container 시작
$ docker start container-id
- Docker Container 종료
$ docker stop container-id
4. 사용방법 (4/9)
5. Docker Image 원격 저장소 등록
Docker Cloud에 가입한 뒤 원격 저장소를 사용할 수 있다.
기본적으로 Github 사용법과 유사하다.
(https://cloud.docker.com/_/dashboard/onboarding)
- Docker Container Commit으로 Snapshot 저장
운영중인 Container를 Snapshot을 뜬 후 Image로 저장.
$ docker commit container-id
-Docker 원격저장소 인증
$ docker login
4. 사용방법 (5/9)
- Docker Image Push
Commit한 Image snapshot을 원격 저장소에 Push한다.
$ docker push user/repository:tag
Commit한 Image snapshot을 원격 저장소에 Push한다.
$ docker push user/repository
- Docker Image Pull
$ docker pull user/repository:tag
4. 사용방법 (6/9)
6. Dockerfile을 이용한 빌드방법
- Dockerfile 작성 예
FROM ubuntu:14.04
ENV NPM_CONFIG_LOGLEVEL info
ENV NVM_VERSION 0.11.1
ENV NODE_VERSION 4.3.1
RUN 
sed -i 's/# (.*multiverse$)/1/g' /etc/apt/sources.list && 
sed -i 's/archive.ubuntu.com/ftp.daumkakao.com/g' /etc/apt/sources.list && 
apt-get update && 
apt-get -y upgrade && 
apt-get install -y build-essential && 
apt-get install -y software-properties-common && 
apt-get install -y byobu curl git htop man unzip vim wget && 
rm -rf /var/lib/apt/lists/* 
RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
RUN apt-get install -y nodejs && apt-get -y install npm
RUN mkdir -p /home/service/chat
ADD chat /home/service/chat
WORKDIR /home/service/chat
RUN npm install -d
#RUN npm install pm2 -g
EXPOSE 8080:8080
CMD [ "nodejs", "index.js" ]
4. 사용방법 (7/9)
- Dockerfile build를 통해 이미지 생성
$ docker build -t nodejs .
- 생성된 이미지 확인
4. 사용방법 (8/9)
7. Docker Compose 사용법.
docker-compose를 이용하면 하나의 서비스를 여러개의 Container로 분리하여 운영할 수 있다.
(https://docs.docker.com/compose/install/)
- docker-compose.yml 작성 예
version: '1'
services:
redis:
image: redis:latest
ports:
- "6379:6379"
restart: always
nodejs:
image: nodejs:latest
ports:
- "8080:8080"
depends_on:
- redis
links:
- redis
restart: always
4. 사용방법 (9/9)
- Container 생성
$ docker-compose up -d
- Container 삭제
$ docker-compose down
- Container 시작
$ docker-compose start
- Container 종료
$ docker-compose stop
5. Q&A
Q&A
globalrocksea@gmail.com

Contenu connexe

Tendances

도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편Sam Kim
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08Nomad Connection, Inc.
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Dronix
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Sangcheol Hwang
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 
Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2XpressEngine
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치Lee Seungeun
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법pyrasis
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
 
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료Juneyoung Oh
 
CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개충섭 김
 
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편negabaro
 
Dockerfile과 Bash
Dockerfile과 BashDockerfile과 Bash
Dockerfile과 Bashpyrasis
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3Ji-Woong Choi
 
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker securityNAVER D2
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집Daegwon Kim
 
왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법GeunCheolYeom
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013Jude Kim
 

Tendances (20)

DevOps with Docker
DevOps with DockerDevOps with Docker
DevOps with Docker
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
 
Docker 사내교육 자료
Docker 사내교육 자료Docker 사내교육 자료
Docker 사내교육 자료
 
CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개CoreOS를 이용한 Docker 관리툴 소개
CoreOS를 이용한 Docker 관리툴 소개
 
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
 
Dockerfile과 Bash
Dockerfile과 BashDockerfile과 Bash
Dockerfile과 Bash
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집
 
왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013
 

En vedette

Docker Machineを始めるには?
Docker Machineを始めるには?Docker Machineを始めるには?
Docker Machineを始めるには?Masahito Zembutsu
 
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운다운 정
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례NAVER LABS
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기jiseob kim
 
Integration and Interoperation of existing Nexus networks into an ACI Archite...
Integration and Interoperation of existing Nexus networks into an ACI Archite...Integration and Interoperation of existing Nexus networks into an ACI Archite...
Integration and Interoperation of existing Nexus networks into an ACI Archite...Cisco Canada
 
Dockerize node.js application
Dockerize node.js applicationDockerize node.js application
Dockerize node.js applicationSeokjun Kim
 
Docker registry swift
Docker registry swiftDocker registry swift
Docker registry swiftJunho Kim
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_startSukjin Yun
 
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기창훈 정
 
Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunhoJunho Kim
 
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDocker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDaegwon Kim
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 

En vedette (18)

Docker Machineを始めるには?
Docker Machineを始めるには?Docker Machineを始めるには?
Docker Machineを始めるには?
 
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
10.) vxlan
10.) vxlan10.) vxlan
10.) vxlan
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기
 
Integration and Interoperation of existing Nexus networks into an ACI Archite...
Integration and Interoperation of existing Nexus networks into an ACI Archite...Integration and Interoperation of existing Nexus networks into an ACI Archite...
Integration and Interoperation of existing Nexus networks into an ACI Archite...
 
Dockerize node.js application
Dockerize node.js applicationDockerize node.js application
Dockerize node.js application
 
Docker registry swift
Docker registry swiftDocker registry swift
Docker registry swift
 
RZDESK-Docker hackday
RZDESK-Docker hackdayRZDESK-Docker hackday
RZDESK-Docker hackday
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
 
정책가이드북
정책가이드북 정책가이드북
정책가이드북
 
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
boot2docker 사용시 컨테이너에서 생성한 데이터를 유지하기
 
Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunho
 
Pharos
PharosPharos
Pharos
 
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmondDocker Casual Talk #2 - Dockerizing newrelic-sysmond
Docker Casual Talk #2 - Dockerizing newrelic-sysmond
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 

Similaire à Docker 사용가이드 public v0.1

[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTHosang Jeon
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTLOGISPOT
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)CONNECT FOUNDATION
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)Ji-Woong Choi
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편Sam Kim
 
OpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid CloudOpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid CloudDennis Hong
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container DayAmazon Web Services Korea
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)Ian Choi
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 

Similaire à Docker 사용가이드 public v0.1 (20)

[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
why docker
why dockerwhy docker
why docker
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
K8s in action02
K8s in action02K8s in action02
K8s in action02
 
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
OpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid CloudOpenStack Horizon AWS Plugin For Hybrid Cloud
OpenStack Horizon AWS Plugin For Hybrid Cloud
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
 
Internship backend
Internship backendInternship backend
Internship backend
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 

Dernier

실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 

Dernier (8)

실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 

Docker 사용가이드 public v0.1

  • 2. 1. 목적 2. 개요 3. 설치방법 4. 사용방법 5. Q&A 목차
  • 3. Docker 도입을 위한 가이드. 1. 목적
  • 4. 2. 개요 (1/8) 가상화란? - 컴퓨터 리소스를 추상화하는 광범위한 기술. - 전가상화, 반가상화가 존재, 가상화 방식에 따른 Hosted Hypervisor, bare-metal Hypervisor가 존재. - 일반적으로 사용하는 가상화 기술은 x86 프로세서를 가상화 하는 방식을 사용.(Intel, AMD 등) - 각 OS의 X86 CPU 명령어 집합(Instruction Set)의 Operation이 다르기때문에 명령어를 가상화 (instruction set virtualization) 하는 방법, 또는 바이너리를 변환하는 방법이라고 할 수 있다. - CPU VT(Virtualizaion Technology)기능을 지원하지 않으면 사용할수가 없음. (BIOS에서 가능 여부 확인) - Cloud 플랫폼이 대중화되면서 AWS, Openstack등 가상화는 이제 다양한 서버 인프라 구성의 핵심기술.
  • 5. 2. 개요 (2/8) 그러한 연유로 각 OS이미지엔 CPU 아키텍쳐의 이름이 명시되어있다.
  • 6. 2. 개요 (3/8) 애플도 Intel CPU(x86 Architecture)를 사용하면서 Windows 사용이 가능해짐. (반대로 Windows에서도 OSX 가상머신 설치가 가능해졌다는 의미)
  • 7. 2. 개요 (4/8) Docker is Not Virtual Machine
  • 8. 2. 개요 (5/8) 가상화인듯 가상화아닌 가상화같은 너. 개발환경의 격리 (독립된 프로세스로 실행) H/W 가상화 (독립된 운영체제로 실행)
  • 9. 2. 개요 (6/8) DevOps의 시대, 중심은 Docker, AWS에서도 공식 지원.
  • 10. 2. 개요 (7/8) Docker는 가상화가 아닌 Container 기반이다. program -> run -> process image -> run -> container
  • 11. 2. 개요 (8/8) Docker는 Go언어로 작성되었다. (http://www.slideshare.net/jpetazzo/docker-and-go-why-did-we-decide-to-write-docker-in-go), 초기버전은 LXC(LinuX Container) 기반으로 개발되었으며, Linux에서만 동작하였으나, 현재는 자체 가상머신 docker-machine을 개발하여 다양한 OS (osx, windows)에서도 사용가능하다. (docker-machine = Linux 가상머신) Docker Architecture 구성도
  • 12. 3. 설치방법 1. Toolbox 다운로드: https://www.docker.com/products/docker-toolbox Tool Box에 포함된 패키지 - Docker CLI client for running Docker Engine to create images and containers - Docker Machine so you can run Docker Engine commands from Mac OS X terminals - Docker Compose for running the docker-compose command - Kitematic, the Docker GUI - the Docker QuickStart shell preconfigured for a Docker command-line environment - Oracle VM VirtualBox Because the Docker Engine daemon uses Linux-specific kernel features, you can’t run Docker Engine natively in Windows (or OS X) (결국 Docker는 Linux 위에서 돌아간다.) 2. 설치 가이드 문서 Windows : https://docs.docker.com/toolbox/toolbox_install_windows/ (64bit 윈도우7 or higher) OSX : https://docs.docker.com/toolbox/toolbox_install_mac/
  • 13. 4. 사용방법 (1/9) 1. Docker Machine 생성 Linux의 경우 Docker Machine이 필요없으므로 이 부분은 생략 가능하다. - Toolbox설치 후 Docker QuickStart Terminal을 이용하면 Default로 생성된다. - command line으로 생성할경우 $ docker-machine create --driver virtualbox name 2. Docker Machine 접속 - Docker Machine ssh 접속 $ docker-machine ssh name
  • 14. 4. 사용방법 (2/9) 3. Docker Image 생성 및 조회 Docker Container를 실행하기 위해 Image 생성. - Docker Registry에 등록된 Image를 받는 방법 $ docker pull jenkins - Docker Image 조회 $ docker images
  • 15. 4. 사용방법 (3/9) 4. Docker Container 실행 및 조회 - Docker Container 실행 $ docker run -u jenkins -p 8080:8080 -p 50000:50000 -v /home/service/jenkins jenkins - Docker Container 조회 $ docker ps -a - Docker Container 시작 $ docker start container-id - Docker Container 종료 $ docker stop container-id
  • 16. 4. 사용방법 (4/9) 5. Docker Image 원격 저장소 등록 Docker Cloud에 가입한 뒤 원격 저장소를 사용할 수 있다. 기본적으로 Github 사용법과 유사하다. (https://cloud.docker.com/_/dashboard/onboarding) - Docker Container Commit으로 Snapshot 저장 운영중인 Container를 Snapshot을 뜬 후 Image로 저장. $ docker commit container-id -Docker 원격저장소 인증 $ docker login
  • 17. 4. 사용방법 (5/9) - Docker Image Push Commit한 Image snapshot을 원격 저장소에 Push한다. $ docker push user/repository:tag Commit한 Image snapshot을 원격 저장소에 Push한다. $ docker push user/repository - Docker Image Pull $ docker pull user/repository:tag
  • 18. 4. 사용방법 (6/9) 6. Dockerfile을 이용한 빌드방법 - Dockerfile 작성 예 FROM ubuntu:14.04 ENV NPM_CONFIG_LOGLEVEL info ENV NVM_VERSION 0.11.1 ENV NODE_VERSION 4.3.1 RUN sed -i 's/# (.*multiverse$)/1/g' /etc/apt/sources.list && sed -i 's/archive.ubuntu.com/ftp.daumkakao.com/g' /etc/apt/sources.list && apt-get update && apt-get -y upgrade && apt-get install -y build-essential && apt-get install -y software-properties-common && apt-get install -y byobu curl git htop man unzip vim wget && rm -rf /var/lib/apt/lists/* RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - RUN apt-get install -y nodejs && apt-get -y install npm RUN mkdir -p /home/service/chat ADD chat /home/service/chat WORKDIR /home/service/chat RUN npm install -d #RUN npm install pm2 -g EXPOSE 8080:8080 CMD [ "nodejs", "index.js" ]
  • 19. 4. 사용방법 (7/9) - Dockerfile build를 통해 이미지 생성 $ docker build -t nodejs . - 생성된 이미지 확인
  • 20. 4. 사용방법 (8/9) 7. Docker Compose 사용법. docker-compose를 이용하면 하나의 서비스를 여러개의 Container로 분리하여 운영할 수 있다. (https://docs.docker.com/compose/install/) - docker-compose.yml 작성 예 version: '1' services: redis: image: redis:latest ports: - "6379:6379" restart: always nodejs: image: nodejs:latest ports: - "8080:8080" depends_on: - redis links: - redis restart: always
  • 21. 4. 사용방법 (9/9) - Container 생성 $ docker-compose up -d - Container 삭제 $ docker-compose down - Container 시작 $ docker-compose start - Container 종료 $ docker-compose stop