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
Ad

More Related Content

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
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 Production
Patrick 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
Docker
Abhishek Tomar
 
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
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
Walid Ashraf
 
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 Production
Patrick 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
 
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
 

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

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
Docker
Mutlu Okuducu
 
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 & Virtualisierung
VMware@Night: Container & VirtualisierungVMware@Night: Container & Virtualisierung
VMware@Night: Container & Virtualisierung
Digicomp Academy AG
 
VMware@Night Container and Virtualization
VMware@Night Container and VirtualizationVMware@Night Container and Virtualization
VMware@Night Container and Virtualization
Opvizor, Inc.
 
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
The Software House
 
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
 
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
 
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
 
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
 
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 & Virtualisierung
VMware@Night: Container & VirtualisierungVMware@Night: Container & Virtualisierung
VMware@Night: Container & Virtualisierung
Digicomp Academy AG
 
VMware@Night Container and Virtualization
VMware@Night Container and VirtualizationVMware@Night Container and Virtualization
VMware@Night Container and Virtualization
Opvizor, Inc.
 
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 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
 
Ad

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
양재동 코드랩
 
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] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
[Codelab 2017] Ionic Framework을 통한 하이브리드앱 개발하기
양재동 코드랩
 
[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
양재동 코드랩
 
Ad

Recently uploaded (20)

Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 

[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