SlideShare a Scribd company logo
양재동 코드랩
DOCKER 기초 및 활용방안
Presentation URL
http://bit.ly/2xNeU4K
2
Who made this?
- Server programmer
- AWSKRUG Data Science Group Member
- Before
- Parisien
- AFI Server developer
- Now
- Movilest CTO
- Specialized in
- NodeJS, JAVA, French
- MySQL, dynamodb, redis, mongodb,
- Webpack, ReactJS, Redux
- docker, jenkins, docker-compose, DevOps
- AWS: ELB, EB, Route53, S3, CodeDeploy, Athena … etc
3
BYUN, Kyu Hyun
Docker is a
platform
4
Platform?
5
A platform
abstracts away a messy problem
so you can build on top of it.
- Sam Ghods, Co-Founder at Box
6https://www.youtube.com/watch?v=of45hYbkIZs&feature=youtu.be
Summary
1. What is docker?
2. Install kitematic
3. Run docker container using docker-cli
4. Manage docker image using Dockerfile
5. Run docker container using kitematic
6. Build multi-container environments using docker-compose
7. Run docker on AWS EC2 and Elastic Beanstalk
7
1.
What is docker?
Everyone says that docker is a trend in micro
services. Why?
8
9
What is docker?
- Docker is the world’s leading software container platform.
- Developers use Docker to eliminate “works on my machine”
problems when collaborating on code with co-workers.
- Operators use Docker to run and manage apps side-by-side in
isolated containers to get better compute density.
- Enterprises use Docker to build agile software delivery pipelines
to ship new features faster, more securely and with confidence for
both Linux and Windows Server apps.
https://www.docker.com/what-
docker
10
What is docker-container?
- Using containers, everything required to make a piece of software
run is packaged into isolated containers.
- Unlike VMs, containers do not bundle a full operating system -
only libraries and settings required to make the software work are
needed.
- This makes for efficient, lightweight, self-contained systems and
guarantees that software will always run the same, regardless of
where it’s deployed.
https://www.docker.com/what-
docker
11
What is docker-container?
- Package software into standardized units for development,
shipment and deployment.
- A container image is a lightweight, stand-alone, executable
package of a piece of software that includes everything needed to
run it: code, runtime, system tools, system libraries, settings.
Available for both Linux and Windows based apps, containerized
software will always run the same, regardless of the environment.
- Containers isolate software from its surroundings, for example
differences between development and staging environments and
help reduce conflicts between teams running different software
on the same infrastructure.
https://www.docker.com/what-
docker
12
What is docker-container?
https://www.docker.com/what-container
13
What is docker-container?
- Comparing Containers and Virtual Machines
https://www.docker.com/sites/default/files/VM%402x.png
https://www.docker.com/sites/default/files/Container%402x.png
14
What is docker-container?
- Comparing Containers and Virtual Machines Together
https://www.docker.com/what-container
15
Basic docker architecture
https://docs.docker.com/engine/article-img/architecture.svg
16
Docker customers
Source: https://d2axcg2cspgbkk.cloudfront.net/wp-content/uploads/ClusterUP-containerscape.png
2.
Install kitematic
17
18
Kitematic
Kitematic
- Fast and Easy Setup
- Docker Hub Integration
- Seamless Experience Between CLI and GUI
- Advanced Features
- Automatically map ports
- Visually change environment variables, configuring volumes,
streamline logs and CLI access to containers
https://kitematic.com/
19
Kitematic
20
Kitematic
Docker quickstart terminal
3.
Run docker container
using docker-cli
21
22
Run docker container using docker-cli
Docker Hub
- Docker Hub is a cloud-based registry service which allows you
to link to code repositories, build your images and test them,
stores manually pushed images, and links to Docker Cloud so
you can deploy images to your hosts. It provides a centralized
resource for container image discovery, distribution and
change management, user and team collaboration, and
workflow automation throughout the development pipeline.
https://docs.docker.com/docker-hub/
23
Run docker container using docker-cli
https://hub.docker.com/
24
Run docker container using docker-cli
https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=node&starCount=0
25
Run docker container using docker-cli
Useful command
- docker images
- docker ps -a
- docker attach
- docker run <option>
- docker exec -it <Conatainer-Name> bash
- docker build -t <username>/<image_name>:<TAG> ./
- docker commit <container> <username>/<image_name>:<TAG>
https://docs.docker.com/engine/reference/commandline/cli/
26
Run docker container using docker-cli
Docker base command
- https://docs.docker.com/engine/reference/commandline/docker/#description
Example
- https://gist.github.com/novemberde/238b48af0c49e8df4e0796f9182f11c6
4.
Manage docker image
using Dockerfile
27
28
Manage docker image using Dockerfile
What is Dockerfile?
- Docker can build images automatically by reading the
instructions from a Dockerfile. A Dockerfile is a text document
that contains all the commands a user could call on the command
line to assemble an image. Using docker build users can create an
automated build that executes several command-line instructions
in succession.
https://docs.docker.com/engine/reference/builder/
29
Manage docker image using Dockerfile
Dockerfile Instruction
- FROM <image> [AS <name>]
- RUN <command>
- CMD command param1 param2
- LABEL <key>=<value> <key>=<value> <key>=<value> …
- EXPOSE <port> [<port>/<protocol>...]
- ENV <key> <value> or ENV <key>=<value> ...
- ADD <src>... <dest>
- COPY <src>... <dest>
- ENTRYPOINT command param1 param2
- VOLUME ["/data"]
- USER <user>[:<group>] or USER <UID>[:<GID>]
- WORKDIR /path/to/workdir
- ARG <name>[=<default value>]
- ONBUILD [INSTRUCTION]
https://docs.docker.com/engine/reference/builder/
30
Manage docker image using Dockerfile
https://github.com/nodejs/docker-node/blob/c37d5e87fa6d46c0e387f73161b056bbf90b83aa/8.6/Dockerfile
31
Manage docker image using Dockerfile
Build Docker image
- Dockerfile
FROM node
MAINTAINER Novemberde "novemberde.github.io"
# node 배포환경으로 변수 설정
ENV NODE_ENV production
RUN npm install -g pm2 node-gyp
VOLUME /var/lib/node
VOLUME /root/.pm2
EXPOSE 80 443
- Make ‘.dockerignore’ file
- docker build . -t test
https://docs.docker.com/engine/reference/builder/
32
Manage docker image using Dockerfile
Dockerfile reference
- https://docs.docker.com/engine/reference/builder/
Example
- https://hub.docker.com/r/novemberde/docker_node_server/~/dockerfile/
- https://hub.docker.com/_/jenkins/
- https://hub.docker.com/_/redis/
- https://hub.docker.com/r/wnameless/oracle-xe-11g/
- https://hub.docker.com/_/mysql/
- https://hub.docker.com/_/mongo/
5.
Run docker container
using kitematic
33
34
Run docker container using kitematic
Create MySQL
https://kitematic.com/
35
Run docker container using kitematic
Connect to MySQL
https://kitematic.com/
36
Run docker container using kitematic
Connect to MySQL
- Set environment variables ( MYSQL_ROOT_PASSWORD=1234 )
https://kitematic.com/
37
Run docker container using kitematic
Connect to MySQL
- Restart the docker container
https://kitematic.com/
38
Run docker container using kitematic
Connect to MySQL
- Click EXEC button
- Follow the below image.
https://kitematic.com/
39
Run docker container using kitematic
Connect to MySQL
- Configure a custom port
https://kitematic.com/
40
Run docker container using kitematic
Connect to the MySQL on a docker container using MySQL Workbench
- CREATE DATABASE wordpress;
41
Run docker container using kitematic
Create wordpress server using docker
42
Run docker container using kitematic
Create wordpress server using docker
43
Run docker container using kitematic
Create an wordpress server using docker
44
Run docker container using kitematic
Create a ghost server using docker
45
Run docker container using kitematic
Create a tensorflow container using docker
6.
Build multi-container
environments using
docker-compose
46
47
What is docker-compose?
https://severalnines.com/sites/default/files/Compose.png
48
What is docker-compose?
- Compose is a tool for defining and running multi-container Docker
applications. With Compose, you use a YAML file to configure
your application’s services. Then, with a single command, you
create and start all the services from your configuration. To learn
more about all the features of Compose, see the list of features.
- Compose works in all environments: production, staging,
development, testing, as well as CI workflows. You can learn more
about each case in Common Use Cases.
https://docs.docker.com/compose/overview/
49
Build multi-container environments
- Example
version: "3"
services:
webapp:
build:
context: ./
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
- PORT=3000
volumes:
- src:/src
volumes:
src:
50
Build multi-container environments
51
Build multi-container environments
- Command line interface
- docker-compose [SUBCOMMAND] --help
- build
- --force-rm: Always remove intermediate containers.
- --no-cache: Do not use cache when building the image.
- --pull: Always attempt to pull a newer version of the image.
- --build-arg key=val: Set build-time variables for one service.
- up
- -d: start containers using daemon
- down
- logs
- start
- stop
7.
Run docker on AWS
EC2 and Elastic
Beanstalk
52
53
AWS EC2 and Elastic Beanstalk
- Amazon EC2
- Amazon Elastic Computing Cloud
- Amazon EC2’s simple web service interface allows you to
obtain and configure capacity with minimal friction
- AWS Elastic Beanstalk
- An easy-to-use service for deploying and scaling web
applications and services developed with Java, .NET, PHP,
Node.js, Python, Ruby, Go, and Docker on familiar servers
such as Apache, Nginx, Passenger, and IIS.
54
Run docker on EC2
- Install AWS Command line interface on Local
- https://aws.amazon.com/ko/cli/
- Create IAM user for the programmatic access.
- https://console.aws.amazon.com/iam/home
- aws configure
AWS Access Key ID [****************AAAA]:
AWS Secret Access Key [****************AAAA]:
Default region name [ap-northeast-2]:
Default output format [None]:
https://docs.docker.com/machine/examples/aws/#step-2-use-machine-to-create-the-
instance
55
Run docker on EC2
- docker-machine create --driver amazonec2 --amazonec2-open-port 8000 --
amazonec2-region us-east-1 aws-sandbox
- docker-machine ls
- docker-machine inspect <machine>
- docker-machine ssh aws-sandbox
sudo docker container ls -a
exit
- docker container ls -a
https://docs.docker.com/machine/examples/aws/#step-2-use-machine-to-create-the-
instance
56
Beanstalk
57
Beanstalk
58
Beanstalk
59
Beanstalk
60
Beanstalk
- Upload new version
61
Beanstalk
62
References
- https://www.youtube.com/watch?v=of45hYbkIZs&feature=youtu.be
- https://www.docker.com/what-docker
- https://kitematic.com/
- https://docs.docker.com/docker-hub/
- https://docs.docker.com/engine/reference/commandline/cli/
- https://docs.docker.com/engine/reference/builder/
- https://github.com/nodejs/docker-
node/blob/c37d5e87fa6d46c0e387f73161b056bbf90b83aa/8.6/Dockerfile
- https://docs.docker.com/compose/overview/
- https://docs.docker.com/machine/examples/aws/#step-2-use-machine-to-create-the-
instance
Thanks!
Any questions?
You can find me at:
https://novemberde.github.io
https://awskrug.slack.com/
https://yjdcodelab.slack.com
63

More Related Content

What's hot

A Hands-on Introduction to Docker
A Hands-on Introduction to DockerA Hands-on Introduction to Docker
A Hands-on Introduction to Docker
CodeOps Technologies LLP
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
Walid Ashraf
 
Dockerized maven
Dockerized mavenDockerized maven
Dockerized maven
Matthias Bertschy
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Mihai Criveti
 
Docker in development (Story)
Docker in development (Story)Docker in development (Story)
Docker in development (Story)
Quan Nguyen
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in ProductionPatrick Mizer
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 Presentation
Sreenivas Makam
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016
Ben Hall
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containers
Ben Hall
 
Docker and the Container Ecosystem
Docker and the Container EcosystemDocker and the Container Ecosystem
Docker and the Container Ecosystem
psconnolly
 
Docker for Deep Learning (Andrea Panizza)
Docker for Deep Learning (Andrea Panizza)Docker for Deep Learning (Andrea Panizza)
Docker for Deep Learning (Andrea Panizza)
MeetupDataScienceRoma
 
Intro- Docker Native for OSX and Windows
Intro- Docker Native for OSX and WindowsIntro- Docker Native for OSX and Windows
Intro- Docker Native for OSX and Windows
Thomas Chacko
 
Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)
bridgetkromhout
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
Jérôme Petazzoni
 
Docker by Example - Quiz
Docker by Example - QuizDocker by Example - Quiz
Docker by Example - Quiz
CodeOps Technologies LLP
 
Docker
DockerDocker
Buildservicewithdockerin90mins
Buildservicewithdockerin90minsBuildservicewithdockerin90mins
Buildservicewithdockerin90mins
Yong Cha
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
Nicolas Poggi
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
Runcy Oommen
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
PROIDEA
 

What's hot (20)

A Hands-on Introduction to Docker
A Hands-on Introduction to DockerA Hands-on Introduction to Docker
A Hands-on Introduction to Docker
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
 
Dockerized maven
Dockerized mavenDockerized maven
Dockerized maven
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
 
Docker in development (Story)
Docker in development (Story)Docker in development (Story)
Docker in development (Story)
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
 
Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 Presentation
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containers
 
Docker and the Container Ecosystem
Docker and the Container EcosystemDocker and the Container Ecosystem
Docker and the Container Ecosystem
 
Docker for Deep Learning (Andrea Panizza)
Docker for Deep Learning (Andrea Panizza)Docker for Deep Learning (Andrea Panizza)
Docker for Deep Learning (Andrea Panizza)
 
Intro- Docker Native for OSX and Windows
Intro- Docker Native for OSX and WindowsIntro- Docker Native for OSX and Windows
Intro- Docker Native for OSX and Windows
 
Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
Docker by Example - Quiz
Docker by Example - QuizDocker by Example - Quiz
Docker by Example - Quiz
 
Docker
DockerDocker
Docker
 
Buildservicewithdockerin90mins
Buildservicewithdockerin90minsBuildservicewithdockerin90mins
Buildservicewithdockerin90mins
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 

Similar to [Codelab 2017] Docker 기초 및 활용 방안

Docker
DockerDocker
Docker
Narato
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
Taswar Bhatti
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
msyukor
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
andrzejsydor
 
Docker how to
Docker how toDocker how to
Docker how to
Patryk Omiotek
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
Vincent De Smet
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
Ulrich Krause
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
Dr. Syed Hassan Amin
 
Faster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker PlatformFaster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker Platform
msyukor
 
Docker
DockerDocker
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
Roman Rodomansky
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
Docker, Inc.
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
{code}
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
Philip Zheng
 
VMware@Night Container and Virtualization
VMware@Night Container and VirtualizationVMware@Night Container and Virtualization
VMware@Night Container and Virtualization
Opvizor, Inc.
 
VMware@Night: Container & Virtualisierung
VMware@Night: Container & VirtualisierungVMware@Night: Container & Virtualisierung
VMware@Night: Container & Virtualisierung
Digicomp Academy AG
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini Anand
PRIYADARSHINI ANAND
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
Ben Hall
 
Docker
DockerDocker
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 

Similar to [Codelab 2017] Docker 기초 및 활용 방안 (20)

Docker
DockerDocker
Docker
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Docker how to
Docker how toDocker how to
Docker how to
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
Faster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker PlatformFaster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker Platform
 
Docker
DockerDocker
Docker
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 
VMware@Night Container and Virtualization
VMware@Night Container and VirtualizationVMware@Night Container and Virtualization
VMware@Night Container and Virtualization
 
VMware@Night: Container & Virtualisierung
VMware@Night: Container & VirtualisierungVMware@Night: Container & Virtualisierung
VMware@Night: Container & Virtualisierung
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini Anand
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Docker
DockerDocker
Docker
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 

More from 양재동 코드랩

T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React NativeT12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
양재동 코드랩
 
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
양재동 코드랩
 
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
양재동 코드랩
 
T13_1_김건_오픈소스 컨트리뷰션 101
T13_1_김건_오픈소스 컨트리뷰션 101T13_1_김건_오픈소스 컨트리뷰션 101
T13_1_김건_오픈소스 컨트리뷰션 101
양재동 코드랩
 
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
양재동 코드랩
 
[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초
양재동 코드랩
 
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
양재동 코드랩
 
[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6
양재동 코드랩
 
[W3C HTML5 2016] Univeral Rendering
[W3C HTML5 2016] Univeral Rendering[W3C HTML5 2016] Univeral Rendering
[W3C HTML5 2016] Univeral Rendering
양재동 코드랩
 
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
양재동 코드랩
 
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
양재동 코드랩
 
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
양재동 코드랩
 
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
양재동 코드랩
 
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
양재동 코드랩
 
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
양재동 코드랩
 

More from 양재동 코드랩 (15)

T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React NativeT12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
 
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
T13_2_이은호_비개발자 대표의 3개월 서비스 개발기
 
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
 
T13_1_김건_오픈소스 컨트리뷰션 101
T13_1_김건_오픈소스 컨트리뷰션 101T13_1_김건_오픈소스 컨트리뷰션 101
T13_1_김건_오픈소스 컨트리뷰션 101
 
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
T11-2 장기효_Progressive Web Apps - 미래가 아닌 현재
 
[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초[Codelab 2017] ReactJS 기초
[Codelab 2017] ReactJS 기초
 
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
 
[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6
 
[W3C HTML5 2016] Univeral Rendering
[W3C HTML5 2016] Univeral Rendering[W3C HTML5 2016] Univeral Rendering
[W3C HTML5 2016] Univeral Rendering
 
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
[W3C HTML5 2016] Ionic 하이브리드 앱 개발하기, 사례와 시사점
 
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
[W3C HTML5 2016] 컨테이너와 웹 어플리케이션
 
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
[W3C HTML5 2016] 일렉트론, 웹 기술로 담아내는 데스크탑 애플리케이션
 
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
 
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
 
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 

[Codelab 2017] Docker 기초 및 활용 방안

  • 3. Who made this? - Server programmer - AWSKRUG Data Science Group Member - Before - Parisien - AFI Server developer - Now - Movilest CTO - Specialized in - NodeJS, JAVA, French - MySQL, dynamodb, redis, mongodb, - Webpack, ReactJS, Redux - docker, jenkins, docker-compose, DevOps - AWS: ELB, EB, Route53, S3, CodeDeploy, Athena … etc 3 BYUN, Kyu Hyun
  • 6. A platform abstracts away a messy problem so you can build on top of it. - Sam Ghods, Co-Founder at Box 6https://www.youtube.com/watch?v=of45hYbkIZs&feature=youtu.be
  • 7. Summary 1. What is docker? 2. Install kitematic 3. Run docker container using docker-cli 4. Manage docker image using Dockerfile 5. Run docker container using kitematic 6. Build multi-container environments using docker-compose 7. Run docker on AWS EC2 and Elastic Beanstalk 7
  • 8. 1. What is docker? Everyone says that docker is a trend in micro services. Why? 8
  • 9. 9 What is docker? - Docker is the world’s leading software container platform. - Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. - Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. - Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps. https://www.docker.com/what- docker
  • 10. 10 What is docker-container? - Using containers, everything required to make a piece of software run is packaged into isolated containers. - Unlike VMs, containers do not bundle a full operating system - only libraries and settings required to make the software work are needed. - This makes for efficient, lightweight, self-contained systems and guarantees that software will always run the same, regardless of where it’s deployed. https://www.docker.com/what- docker
  • 11. 11 What is docker-container? - Package software into standardized units for development, shipment and deployment. - A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment. - Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure. https://www.docker.com/what- docker
  • 13. 13 What is docker-container? - Comparing Containers and Virtual Machines https://www.docker.com/sites/default/files/VM%402x.png https://www.docker.com/sites/default/files/Container%402x.png
  • 14. 14 What is docker-container? - Comparing Containers and Virtual Machines Together https://www.docker.com/what-container
  • 18. 18 Kitematic Kitematic - Fast and Easy Setup - Docker Hub Integration - Seamless Experience Between CLI and GUI - Advanced Features - Automatically map ports - Visually change environment variables, configuring volumes, streamline logs and CLI access to containers https://kitematic.com/
  • 22. 22 Run docker container using docker-cli Docker Hub - Docker Hub is a cloud-based registry service which allows you to link to code repositories, build your images and test them, stores manually pushed images, and links to Docker Cloud so you can deploy images to your hosts. It provides a centralized resource for container image discovery, distribution and change management, user and team collaboration, and workflow automation throughout the development pipeline. https://docs.docker.com/docker-hub/
  • 23. 23 Run docker container using docker-cli https://hub.docker.com/
  • 24. 24 Run docker container using docker-cli https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=node&starCount=0
  • 25. 25 Run docker container using docker-cli Useful command - docker images - docker ps -a - docker attach - docker run <option> - docker exec -it <Conatainer-Name> bash - docker build -t <username>/<image_name>:<TAG> ./ - docker commit <container> <username>/<image_name>:<TAG> https://docs.docker.com/engine/reference/commandline/cli/
  • 26. 26 Run docker container using docker-cli Docker base command - https://docs.docker.com/engine/reference/commandline/docker/#description Example - https://gist.github.com/novemberde/238b48af0c49e8df4e0796f9182f11c6
  • 28. 28 Manage docker image using Dockerfile What is Dockerfile? - Docker can build images automatically by reading the instructions from a Dockerfile. A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Using docker build users can create an automated build that executes several command-line instructions in succession. https://docs.docker.com/engine/reference/builder/
  • 29. 29 Manage docker image using Dockerfile Dockerfile Instruction - FROM <image> [AS <name>] - RUN <command> - CMD command param1 param2 - LABEL <key>=<value> <key>=<value> <key>=<value> … - EXPOSE <port> [<port>/<protocol>...] - ENV <key> <value> or ENV <key>=<value> ... - ADD <src>... <dest> - COPY <src>... <dest> - ENTRYPOINT command param1 param2 - VOLUME ["/data"] - USER <user>[:<group>] or USER <UID>[:<GID>] - WORKDIR /path/to/workdir - ARG <name>[=<default value>] - ONBUILD [INSTRUCTION] https://docs.docker.com/engine/reference/builder/
  • 30. 30 Manage docker image using Dockerfile https://github.com/nodejs/docker-node/blob/c37d5e87fa6d46c0e387f73161b056bbf90b83aa/8.6/Dockerfile
  • 31. 31 Manage docker image using Dockerfile Build Docker image - Dockerfile FROM node MAINTAINER Novemberde "novemberde.github.io" # node 배포환경으로 변수 설정 ENV NODE_ENV production RUN npm install -g pm2 node-gyp VOLUME /var/lib/node VOLUME /root/.pm2 EXPOSE 80 443 - Make ‘.dockerignore’ file - docker build . -t test https://docs.docker.com/engine/reference/builder/
  • 32. 32 Manage docker image using Dockerfile Dockerfile reference - https://docs.docker.com/engine/reference/builder/ Example - https://hub.docker.com/r/novemberde/docker_node_server/~/dockerfile/ - https://hub.docker.com/_/jenkins/ - https://hub.docker.com/_/redis/ - https://hub.docker.com/r/wnameless/oracle-xe-11g/ - https://hub.docker.com/_/mysql/ - https://hub.docker.com/_/mongo/
  • 34. 34 Run docker container using kitematic Create MySQL https://kitematic.com/
  • 35. 35 Run docker container using kitematic Connect to MySQL https://kitematic.com/
  • 36. 36 Run docker container using kitematic Connect to MySQL - Set environment variables ( MYSQL_ROOT_PASSWORD=1234 ) https://kitematic.com/
  • 37. 37 Run docker container using kitematic Connect to MySQL - Restart the docker container https://kitematic.com/
  • 38. 38 Run docker container using kitematic Connect to MySQL - Click EXEC button - Follow the below image. https://kitematic.com/
  • 39. 39 Run docker container using kitematic Connect to MySQL - Configure a custom port https://kitematic.com/
  • 40. 40 Run docker container using kitematic Connect to the MySQL on a docker container using MySQL Workbench - CREATE DATABASE wordpress;
  • 41. 41 Run docker container using kitematic Create wordpress server using docker
  • 42. 42 Run docker container using kitematic Create wordpress server using docker
  • 43. 43 Run docker container using kitematic Create an wordpress server using docker
  • 44. 44 Run docker container using kitematic Create a ghost server using docker
  • 45. 45 Run docker container using kitematic Create a tensorflow container using docker
  • 48. 48 What is docker-compose? - Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features. - Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases. https://docs.docker.com/compose/overview/
  • 49. 49 Build multi-container environments - Example version: "3" services: webapp: build: context: ./ dockerfile: Dockerfile ports: - "3000:3000" environment: - PORT=3000 volumes: - src:/src volumes: src:
  • 51. 51 Build multi-container environments - Command line interface - docker-compose [SUBCOMMAND] --help - build - --force-rm: Always remove intermediate containers. - --no-cache: Do not use cache when building the image. - --pull: Always attempt to pull a newer version of the image. - --build-arg key=val: Set build-time variables for one service. - up - -d: start containers using daemon - down - logs - start - stop
  • 52. 7. Run docker on AWS EC2 and Elastic Beanstalk 52
  • 53. 53 AWS EC2 and Elastic Beanstalk - Amazon EC2 - Amazon Elastic Computing Cloud - Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction - AWS Elastic Beanstalk - An easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
  • 54. 54 Run docker on EC2 - Install AWS Command line interface on Local - https://aws.amazon.com/ko/cli/ - Create IAM user for the programmatic access. - https://console.aws.amazon.com/iam/home - aws configure AWS Access Key ID [****************AAAA]: AWS Secret Access Key [****************AAAA]: Default region name [ap-northeast-2]: Default output format [None]: https://docs.docker.com/machine/examples/aws/#step-2-use-machine-to-create-the- instance
  • 55. 55 Run docker on EC2 - docker-machine create --driver amazonec2 --amazonec2-open-port 8000 -- amazonec2-region us-east-1 aws-sandbox - docker-machine ls - docker-machine inspect <machine> - docker-machine ssh aws-sandbox sudo docker container ls -a exit - docker container ls -a https://docs.docker.com/machine/examples/aws/#step-2-use-machine-to-create-the- instance
  • 62. 62 References - https://www.youtube.com/watch?v=of45hYbkIZs&feature=youtu.be - https://www.docker.com/what-docker - https://kitematic.com/ - https://docs.docker.com/docker-hub/ - https://docs.docker.com/engine/reference/commandline/cli/ - https://docs.docker.com/engine/reference/builder/ - https://github.com/nodejs/docker- node/blob/c37d5e87fa6d46c0e387f73161b056bbf90b83aa/8.6/Dockerfile - https://docs.docker.com/compose/overview/ - https://docs.docker.com/machine/examples/aws/#step-2-use-machine-to-create-the- instance
  • 63. Thanks! Any questions? You can find me at: https://novemberde.github.io https://awskrug.slack.com/ https://yjdcodelab.slack.com 63