SlideShare une entreprise Scribd logo
1  sur  95
Télécharger pour lire hors ligne
Docker 활용법 ‐ 개발 환경 구성하기
raccoony
twi er.com/@raccoonyy
사전 학습
근데 도커가 뭐야?
(추천) subicura님의 초보를 위한 도커 안내서 시리즈
1. 도커란 무엇인가?
2. 설치하고 컨테이너 실행하기
3. 이미지 만들고 배포하기
(사족)
도커(클래스와 인스턴스에 비유하자면)
Dockerfile: 서버 구성을 문서화한 것(=클래스 정의가 들어 있는 파일)
docker build: 도커 이미지 만들기(=클래스 정의를 애플리케이션에 로드)
docker run의 옵션들: 이미지에 붙이는 장식들(=인스턴스의 변수들)
docker run: 장식 붙은 이미지를 실제로 실행(=인스턴스 생성)
다음 저장소를 클론하세요
파이썬/Django용 예제 프로젝트
노드/Express용 예제 프로젝트
개발 환경 구성 시작
파이썬+장고 프로젝트를 예로 들면,
$ pyenv install (파이썬 버전)
$ pyenv virtualenv (파이썬 버전) (가상환경이름)
(가상환경이름) $ pip install -r requirements.txt
...
한 번에 되면 좋겠지만...
패키지 설치가 막힐 때도 있음(SSL, LDAP 관련)
서버 환경이랑 같지 않아서 발생하는 문제들
로컬의 다른 환경이랑 꼬임!
oTL
배포 환경에서는 도커 활용 중
아 간단하다...
개발 환경 설치하기 귀찮으니까
개발 환경도 도커로 해볼까?
일단 이미지 빌드하고
$ docker build -t django-sample .
앱 컨테이너 실행
$ docker run -it --rm 
-p 8000:8000 
django-sample 
./manage.py runserver 0:8000
데이터베이스에 접속이 안 되네?
데이터베이스 컨테이너 실행
$ docker run -it --rm 
postgres:9.6.1
그래도 개발 서버는 실행되지 않는다
문제점 1
앱 컨테이너가 PostgreSQL 컨테이너를 못 찾음
앱 컨테이너에서 
데이터베이스 컨테이너를 찾을 수 있게 하자 (1/2)
$ docker run -it --rm 
--name db 
-e POSTGRES_DB=djangosample 
-e POSTGRES_USER=sampleuser 
-e POSTGRES_PASSWORD=samplesecret 
postgres:9.6.1
--name 으로 데이터베이스 컨테이너의 이름을  db 라고 설정
-e 로 환경 변수 설정
(각 환경 변수에 대해서는 dockerhub의 공식 postgres:9.6.1 이미지 참고)
앱 컨테이너에서 
데이터베이스 컨테이너를 찾을 수 있게 하자 (2/2)
$ docker run -it --rm 
-p 8000:8000 
--link db 
-e DJANGO_DB_HOST=db 
-e DJANGO_DEBUG=True 
django-sample 
./manage.py runserver 0:8000
--link 를 통해 db 컨테이너를 참조
(각 옵션에 대한 자세한 설명은 블로그 글을 참고하세요.)
문제점 2
앱 코드를 수정해도, 
개발 서버가 알아채지 못함
앱 코드 디렉터리를 앱 컨테이너 내부로 연결하자
$ docker run -it --rm 
-p 8000:8000 
--link db 
-e DJANGO_DB_HOST=db 
-e DJANGO_DEBUG=True 
--volume=$(pwd):/app/ 
django-sample 
./manage.py runserver 0:8000
--volume 을 통해 현재 디렉터리를 컨테이너 안으로 연결
문제점 3
db 컨테이너가 죽으면, 
데이터도 사라짐
데이터를 로컬에 저장하자
$ docker run -it --rm 
--name db 
-e POSTGRES_DB=djangosample 
-e POSTGRES_USER=sampleuser 
-e POSTGRES_PASSWORD=samplesecret 
--volume=$(pwd)/docker/data:/var/lib/postgresql/data 
postgres:9.6.1
정리 차원에서 다시 실행!
1. db 컨테이너 실행
$ docker run -it --rm 
--name db 
-e POSTGRES_DB=djangosample 
-e POSTGRES_USER=sampleuser 
-e POSTGRES_PASSWORD=samplesecret 
--volume=$(pwd)/docker/data:/var/lib/postgresql/data 
postgres:9.6.1
2. 앱 이미지 빌드
$ docker build -t django-sample .
3. 앱 컨테이너 실행
$ docker run -it --rm 
-p 8000:8000 
--link db 
-e DJANGO_DB_HOST=db 
-e DJANGO_DEBUG=True 
--volume=$(pwd):/app/ 
django-sample 
./manage.py runserver 0:8000
떴다!
h p://127.0.0.1:8000에 가보면?
지금까지의 구조를 그려보면
그러나
1. 장황한 옵션을 타이핑하기가 너무 복잡하다
미리 적어둘 수는 없을까?
2. 매번 데이터베이스 띄운 다음,
앱 서버 띄우기가 귀찮음
한 번에 묶어서 띄울 수는 없을까?
도커 컴포즈라는 애가 있다던데?
도커 컴포즈
Tool for defining and running 
multi-container Docker applications
컨테이너 여럿을 사용하는 도커 애플리케이션을 
정의하고 실행하는 도구
도커 vs. 도커 컴포즈
Dockerfile  vs.  Dockerfile-dev : 서버 구성을 문서화한 것(=클래스 선언이 들어
있는 파일)
docker build  vs.  docker-compose build : 도커 이미지 만들기(=클래스 선언을 애
플리케이션에 로드)
docker run 의 옵션들 vs.  docker-compose.yml : 이미지에 붙이는 장식들(=인스
턴스의 변수들)
docker run  vs.  docker-compose up : 장식 붙은 이미지를 실제로 실행(=인스턴스
생성)
컨테이너 대신 서비스라고 부름(한 서비스에 컨테이너를 여러 개 띄울 수도 있음)
도커 컴포즈로 가자!
선행 조건
docker engine 1.12.0 이상
docker‐compose 1.6.0 이상
$ docker version
Client:
Version: 1.13.1
API version: 1.26
Go version: go1.7.5
Git commit: 092cba3
Built:
OS/Arch: darwin/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 092cba3
Built: Wed Feb 8 08:47:51 2017
OS/Arch: linux/amd64
Experimental: true
$ docker-compose version
docker-compose version 1.11.1, build 7c5d5e4
docker-py version: 2.0.2
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016
docker‐compose.yml을 만들자
전체 내용을 정리한 gist
version
version: '2.1'
도커 컴포즈 파일 규격의 버전
services
services:
도커 컴포즈에서는 컨테이너 단위를 묶어서 서비스라고 함(한 서비스에 여러 컨테이너
를 띄울 수 있음).
db
db:
postgres 서비스의 이름을  db 라고 정의
image
image: postgres:9.6.1
db  서비스에서 사용할 도커 이미지
volumes
volumes:
- ./docker/data:/var/lib/postgresql/data
데이터를 로컬의  ./docker/data 에 저장함
environment
environment:
- POSTGRES_DB=sampledb
- POSTGRES_USER=sampleuser
- POSTGRES_PASSWORD=samplesecret
- POSTGRES_INITDB_ARGS=--encoding=UTF-8
(각 환경 변수에 대해서는 dockerhub의 공식 postgres:9.6.1 이미지 참고)
healthcheck
healthcheck:
test: "pg_isready -h localhost -p 5432 -q -U postgres"
interval: 3s
timeout: 1s
retries: 10
검사에 사용할 명령( test )을
3초 간격( interval )으로
열 번 시도( retries )
각 시도에서 타임아웃은 1초( timeout )
django
django:
앱 서비스의 이름을  django 로 지정
build
build:
context: .
dockerfile: ./compose/django/Dockerfile-dev
특정 이미지 대신 '개발용' 도커 이미지를 빌드하여 사용
environment
environment:
- DJANGO_DEBUG=True
- DJANGO_DB_HOST=db
- DJANGO_DB_PORT=5432
- DJANGO_DB_NAME=sampledb
- DJANGO_DB_USERNAME=sampleuser
- DJANGO_DB_PASSWORD=samplesecret
필요한 환경 변수들
ports
ports:
- "8000:8000"
접근할 포트
depends_on
depends_on:
db:
condition: service_healthy
db  서비스의 헬스체크가 성공( service_healty )한 후  django  서비스를 실행
links
links:
- db
db  서비스를  db 라는 이름으로 참조
command
command: /start-dev.sh
./manage.py runserver 0:8000 을 대신할 셀 스크립트 파일
(start‐dev.sh의 내용)
#!/bin/sh
python manage.py migrate
python manage.py runserver 0:8000
volumes
volumes:
- ./:/app/
프로젝트 루트 디렉터리를 컨테이너 안으로 연결
드디어 실행!
$ docker-compose up -d
Creating network "djangosample_default" with the default driver
Creating djangosample_db_1
Creating djangosample_django_1
Attaching to djangosample_db_1, djangosample_django_1
db_1 | Initializing database
... (DB 초기화 진행) ...
django_1 | Operations to perform:
django_1 | Apply all migrations: admin, app, auth, contenttypes, myapp, session
django_1 | Running migrations:
... (DB 마이그레이션 진행) ...
h p://127.0.0.1:8000에 접속 성공!
여기까지를 그림으로 나타내면,
마지막!
Dockerfile‐dev
Dockerfile vs. Dockerfile‐dev (1/2)
# 개발 서버용 Dockerfile-dev에서 뺄 부분들
# 앱 코드 복사
ADD ./app/ /app/
# Django 정적 파일 수집
RUN ./manage.py collectstatic --noinput
# 서버 실행 명령
CMD ['supervisord', '-n']
Dockerfile vs. Dockerfile‐dev (2/2)
# 개발용 Dockerfile-dev에 추가할 부분들
# 개발 환경 구성에 필요한 파일 복사
COPY ./requirements-dev.txt /app/requirements-dev.txt
RUN pip install -r requirements-dev.txt
# 개발 서버 실행에 필요한 파일 복사
ADD compose/django/start-dev.sh /start-dev.sh
RUN chmod +x /*.sh
최종 Dockerfile‐dev
작은 개선 하나
수정된 docker‐compose.yml
도커가 지원하는 가상 디스크를 사용하도록
프로젝트 루트 전체 대신 필요한 파일이나 폴더만 연결
docker‐compose의 주요 명령어
docker-compose 를 짧은 alias로 등록해두면 편리
oh‐my‐zsh에서는 기본으로  dco
up ‐d
서비스 생성 + 이미지 빌드 + 서비스 실행
1. 서비스를 띄울 네트워크 설정
2. 필요한 볼륨 생성
3. 필요한 이미지 pull
4. 필요한 이미지 build
5. 서비스 의존성에 따라 서비스 실행
-d : 서비스 실행 후 콘솔로 빠져나옴
ps
현재 개발 환경에서 실행 중인 서비스 확인
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
djangosample_db_1 /docker-entrypoint.sh postgres Up 5432/tcp
djangosample_django_1 /start-dev.sh Up 0.0.0.0:8000->8000/tc
stop, start
서비스 시작 / 멈춤
$ docker-compose stop
Stopping djangosample_django_1 ...
Stopping djangosample_db_1 ...
$ docker-compose start
Starting db ... done
Starting django ... done
down
서비스, 네트워크 삭제
서비스를 초기화할 때 사용
$ docker-compose down --volume
Removing myproject_django_1 ... done
Removing myproject_db_1 ... done
Removing network djangosample_default
Removing volume django_sample_db_dev
down --volume : 볼륨까지 삭제
exec
실행 중인 컨테이너에서 명령어 실행
$ docker-compose exec django ./manage.py makemigrations
...
$ docker-compose exec node npm run test
> expresssample@0.1.0 test /www/service
> mocha $(find test -name '*.spec.js')
...
비슷한 명령어  run : 새 컨테이너 실행(‐‐rm 옵션을 적어야 컨테이너 찌꺼기가 남지 않음)
logs ‐f
서비스 로그 확인
$ docker-compose logs django
Attaching to djangosample_django_1
django_1 | System check identified no issues (0 silenced).
django_1 | February 13, 2017 - 16:32:28
django_1 | Django version 1.10.4, using settings 'djangosample.settings'
django_1 | Starting development server at http://0.0.0.0:8000/
django_1 | Quit the server with CONTROL-C.
-f : 로그 팔로잉
사용하면서 느낀 점
docker‐compose.yml을 수정했다면
up ‐d [<서비스 이름>]
바뀐 내용을 감지하면 
알아서 서비스를 재생성하고 재시작함
Dockerfile‐dev를 수정했다면
up ‐d ‐‐build [<서비스 이름>]
이미지를 새로 만들고 서비스 재생성 후 재시작
Dockerfile‐dev와 Dockerfile 모두 신경 써야 함
Dockerfile만 고치면서 개발 환경에서  외않돼?
(Dockerfile에도 외부 파일 참조 개념이 있으면 좋을 텐데...)
데이터베이스 내용도 지우고 싶다면
down ‐‐volume
docker-compose.yml 의 volumes 부분에 선언한 볼륨들을 지움
MySQL 초기화에 대략 15초
PostgreSQL 초기화에 대략 5초
PostgreSQL 짱짱맨
ERROR: 'No space left on device'
/Users/LOGIN_ID/Library/Containers/com.docker.docker/Data/co
m.docker.driver.amd64‐linux/Docker.qcow2
기본 max 값이 64GiB
파일 삭제하거나 Docker for Mac에서  Reset
하지만 지금까지 만든
Docker 이미지와 컨테이너, 볼륨이
모두 사라진다는 점을 주의!
python3 호환성 작업할 때도 좋음
다양한 파이썬 버전을 로컬에 설치할 필요가 없어서
블로그 운영에도 사용하는 중
h p://raccoonyy.github.io/docker‐for‐ghost‐blogging/
Docker를 배우고 나면
모든 것이 컨테이너로 보인다
‐‐ raccoony
“
“
끝

Contenu connexe

Tendances

Introduce Docker
Introduce DockerIntroduce Docker
Introduce DockerYongbok Kim
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageejlp12
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례NAVER LABS
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Simplilearn
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker ComposeAjeet Singh Raina
 
Docker multi-stage build
Docker multi-stage buildDocker multi-stage build
Docker multi-stage buildAlexei Ledenev
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...Amazon Web Services Korea
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
Docker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmDocker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmCarlos E. Salazar
 
Docker intro
Docker introDocker intro
Docker introOleg Z
 

Tendances (20)

Docker internals
Docker internalsDocker internals
Docker internals
 
Introduce Docker
Introduce DockerIntroduce Docker
Introduce Docker
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Multi Stage Docker Build
Multi Stage Docker Build Multi Stage Docker Build
Multi Stage Docker Build
 
Docker multi-stage build
Docker multi-stage buildDocker multi-stage build
Docker multi-stage build
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
Docker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmDocker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker Swarm
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker swarm
Docker swarmDocker swarm
Docker swarm
 

En vedette

The Future of Everything
The Future of EverythingThe Future of Everything
The Future of EverythingMichael Ducy
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise DockerLee Ji Eun
 
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container DayAmazon Web Services Korea
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Stephen Benjamin
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenterlzap
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 
20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현Tae Young Lee
 
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기Kenneth Ceyer
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016Taehoon Kim
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017Taehoon Kim
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017Taehoon Kim
 

En vedette (15)

The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
 
Enterprise Docker
Enterprise DockerEnterprise Docker
Enterprise Docker
 
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
도커 컨테이너 활용 사례 Codigm - 남 유석 개발팀장 :: AWS Container Day
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현20141223 머하웃(mahout) 협업필터링_추천시스템구현
20141223 머하웃(mahout) 협업필터링_추천시스템구현
 
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
 

Similaire à Docker (Compose) 활용 - 개발 환경 구성하기

aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편negabaro
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)CONNECT FOUNDATION
 
[오픈소스컨설팅]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
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTLOGISPOT
 
Python codelab1
Python codelab1Python codelab1
Python codelab1건희 김
 
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
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
[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
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)Ji-Woong Choi
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Sangcheol Hwang
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container DayAmazon Web Services Korea
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Dongil Yeom
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)YoungSu Son
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계Leonardo YongUk Kim
 

Similaire à Docker (Compose) 활용 - 개발 환경 구성하기 (20)

aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
 
[오픈소스컨설팅]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
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
Python codelab1
Python codelab1Python codelab1
Python codelab1
 
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
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
[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 on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
도커의 기초 - 김상필 솔루션즈 아키텍트 :: AWS Container Day
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
테스트
테스트테스트
테스트
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계
 

Plus de raccoony

How to survive in AWS re:Invent
How to survive in AWS re:InventHow to survive in AWS re:Invent
How to survive in AWS re:Inventraccoony
 
select-fix(일괄 바꿈) 프로젝트 소개
select-fix(일괄 바꿈) 프로젝트 소개select-fix(일괄 바꿈) 프로젝트 소개
select-fix(일괄 바꿈) 프로젝트 소개raccoony
 
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기raccoony
 
Write The Docs 서울의 2019년 첫 밋업 소개 자료
Write The Docs 서울의 2019년 첫 밋업 소개 자료Write The Docs 서울의 2019년 첫 밋업 소개 자료
Write The Docs 서울의 2019년 첫 밋업 소개 자료raccoony
 
번역 작업의 지속 가능성을 높이는 CAT
번역 작업의 지속 가능성을 높이는 CAT번역 작업의 지속 가능성을 높이는 CAT
번역 작업의 지속 가능성을 높이는 CATraccoony
 
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Composeraccoony
 
한글 폰트 크기 문제를 테스트해봅니다
한글 폰트 크기 문제를 테스트해봅니다한글 폰트 크기 문제를 테스트해봅니다
한글 폰트 크기 문제를 테스트해봅니다raccoony
 
음향 기초 안내서
음향 기초 안내서음향 기초 안내서
음향 기초 안내서raccoony
 
인디자인을 활용한 자동 조판 실험
인디자인을 활용한 자동 조판 실험인디자인을 활용한 자동 조판 실험
인디자인을 활용한 자동 조판 실험raccoony
 
민주주의를 위한 대화, 소통, 참여, 협력의 기술
민주주의를 위한 대화, 소통, 참여, 협력의 기술민주주의를 위한 대화, 소통, 참여, 협력의 기술
민주주의를 위한 대화, 소통, 참여, 협력의 기술raccoony
 
(중학생도 이해하는) 에니그마의 작동 원리
(중학생도 이해하는) 에니그마의 작동 원리(중학생도 이해하는) 에니그마의 작동 원리
(중학생도 이해하는) 에니그마의 작동 원리raccoony
 
서버 개발자가 되기 전에 알았으면 좋았을 것들
서버 개발자가 되기 전에 알았으면 좋았을 것들서버 개발자가 되기 전에 알았으면 좋았을 것들
서버 개발자가 되기 전에 알았으면 좋았을 것들raccoony
 
Sublime Text 3 for python and django
Sublime Text 3 for python and djangoSublime Text 3 for python and django
Sublime Text 3 for python and djangoraccoony
 

Plus de raccoony (13)

How to survive in AWS re:Invent
How to survive in AWS re:InventHow to survive in AWS re:Invent
How to survive in AWS re:Invent
 
select-fix(일괄 바꿈) 프로젝트 소개
select-fix(일괄 바꿈) 프로젝트 소개select-fix(일괄 바꿈) 프로젝트 소개
select-fix(일괄 바꿈) 프로젝트 소개
 
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
 
Write The Docs 서울의 2019년 첫 밋업 소개 자료
Write The Docs 서울의 2019년 첫 밋업 소개 자료Write The Docs 서울의 2019년 첫 밋업 소개 자료
Write The Docs 서울의 2019년 첫 밋업 소개 자료
 
번역 작업의 지속 가능성을 높이는 CAT
번역 작업의 지속 가능성을 높이는 CAT번역 작업의 지속 가능성을 높이는 CAT
번역 작업의 지속 가능성을 높이는 CAT
 
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
 
한글 폰트 크기 문제를 테스트해봅니다
한글 폰트 크기 문제를 테스트해봅니다한글 폰트 크기 문제를 테스트해봅니다
한글 폰트 크기 문제를 테스트해봅니다
 
음향 기초 안내서
음향 기초 안내서음향 기초 안내서
음향 기초 안내서
 
인디자인을 활용한 자동 조판 실험
인디자인을 활용한 자동 조판 실험인디자인을 활용한 자동 조판 실험
인디자인을 활용한 자동 조판 실험
 
민주주의를 위한 대화, 소통, 참여, 협력의 기술
민주주의를 위한 대화, 소통, 참여, 협력의 기술민주주의를 위한 대화, 소통, 참여, 협력의 기술
민주주의를 위한 대화, 소통, 참여, 협력의 기술
 
(중학생도 이해하는) 에니그마의 작동 원리
(중학생도 이해하는) 에니그마의 작동 원리(중학생도 이해하는) 에니그마의 작동 원리
(중학생도 이해하는) 에니그마의 작동 원리
 
서버 개발자가 되기 전에 알았으면 좋았을 것들
서버 개발자가 되기 전에 알았으면 좋았을 것들서버 개발자가 되기 전에 알았으면 좋았을 것들
서버 개발자가 되기 전에 알았으면 좋았을 것들
 
Sublime Text 3 for python and django
Sublime Text 3 for python and djangoSublime Text 3 for python and django
Sublime Text 3 for python and django
 

Docker (Compose) 활용 - 개발 환경 구성하기