SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Who I am?
• Robert Reiz
• Software Developer
• I started VersionEye
• Software Dev since 1998
Started 2009 DevOps Days in Belgium
DevOps is all about working together. About agile Infrastructure.
Youbuildit.Yourunit.Youtakeresponsibilityforit!
Shipment
without
Containers
1956 Malcom McLean introduced the 40’Container - ISO 668.
> 15 Million inst.
2/3
of global trade run
over 40’Containers!
The Logistic Problem
Same Problem in Software Dev.
Java ? ? ?
Ruby ? ? ?
Node.JS ? ? ?
MySQL ? ? ?
Dev-Env. Test-Env. Prod-Env.
Java JKD 1.8.14 - Win32 JKD 1.8.1 - Lnx-64 JDK 1.7-patch UNX
Ruby 2.2.2 rvm 2.2.1 nat MRI 2.1.0 rubinius
Node.JS 4.0 win 4.0 Linux 4.0 Linux
MySQL 5.5 win 5.0 Linux 5.0 Linux
Dev-Env. Test-Env. Prod-Env.
Java .WAR / .EAR .WAR / .EAR .WAR / .EAR
Ruby GEM / GIT GEM / GIT GEM / GIT
Node.JS ZIP / GIT ZIP / GIT ZIP / GIT
MySQL .dmg .exe .dep
Dev-Env. Test-Env. Prod-Env.
Java
Ruby
Node.JS
MySQL
Dev-Env. Test-Env. Prod-Env.
What is Docker?
What is Docker?
❖ Open Source Project started in March 2013
❖ From the makes of dotCloud (PaaS).
❖ Received $162 Million Funding.
❖ Community grows rapidly!
What is Docker?
❖ Tiny VM (25 MB)
❖ Linux based - LXC Interface / libcontainer
❖ Own Namespaces and Cgroups!
❖ Shared resources with host system.
❖ It doesn’t work natively on Windows! Not yet!
Build - Ship - Run
Docker-Hub
Build RUN
RUN
RUN
docker push
docker pull
Server Farm Production
Build
Dockerfile
FROM ubuntu:14.10
MAINTAINER Robert Reiz <reiz@versioneye.com>
ENV LANG en_US.UTF-8
RUN apt-get update
RUN apt-get install -y --force-yes -q nginx
ADD nginx.conf /etc/nginx/nginx.conf
CMD nginx
EXPOSE 80
Build - Dockerfile
> docker build -t reiz/nginx:1.0.0 .
docker image => reiz/nginx:1.0.0
Ship
Ship Docker Image
> docker push reiz/nginx:1.0.0
Run
Fetch a Docker Image
> docker pull reiz/nginx:1.0.0
Download docker image reiz/nginx:1.0.0 from Docker Hub to local
Docker repository.
Run a Docker Container
> docker run reiz/nginx:1.0.0
Creates a Docker container out of the Docker image reiz/nginx:1.0.0.
It runs the nginx process.
More Commands
> docker stop <container_id>
> docker start <container_id>
> docker top <container_id>
> docker logs <container_id>
> docker rm <container_id>
Important
❖ A Docker Container doesn’t store state!
❖ You can not ssh into a Docker Container!
❖ A container is supposed to run 1 process!
Shell
Get a Shell
> docker run -it reiz/mongodb:1.0.2 /bin/bash
Starts a new Docker container with an active shell.
Get a Shell
> docker exec -it mongodb /bin/bash
Executes a command on a running contianer
Volumes
Mount a Volume
> docker run -v/mnt/mongodb:/data -d reiz/mongodb:1.0.2
Mounts “/mnt/mongodb” directory into the Docker container as “/data”.
Keep the data on the host. That’s how you keep data persisted.
Environment Variables
Set environment variables
> docker run --envLANG=en_US.UTF-8 -d reiz/mongodb:1.0.2
You can overwrite ENV variables from the Dockerfile here and also define
completely new ones.
Links
Link Docker Containers
> docker run —name mongodb -d versioneye/mongodb:1.0.2
> docker run —linkmongodb:mongo versioneye/api:1.0.0
MONGO_PORT=tcp://172.1.10.1:27017
MONGO_PORT_27017_TCP=tcp://172.1.10.1:27017
MONGO_PORT_27017_TCP_ADDR=172.1.10.1
MONGO_PORT_27017_TCP_PORT=27017
MONGO_PORT_27017_TCP_PROTO=tcp
Environmentvariablesareinjectedin2ndcontainer:
DEMO
Docker Compose
api:
image: versioneye/rails_api:2.5.7
ports:
- "9090:9090"
container_name: "api"
links:
- mongodb:db
- elasticsearch:es
mongodb:
image: reiz/mongodb:2.6.6_2
container_name: “mongodb"
elasticsearch:
image: reiz/elasticsearch:0.9.1
container_name: "elasticsearch"
docker-compose.yml
describes a whole
set of Docker
containers
Docker Compose
> docker-compose up -d
> docker-compose ps
> docker-compose stop
Docker Compose
> docker-compose build api
> docker-compose up --no-deps -d api
Updating a single container, not ALL of them.
Docker Compose
> docker-compose scale worker=3
Scaling up containers
DEMO
Docker Machine
> docker-machine create --driver virtualbox dev
Docker Machine: create, manage and remote control
docker machines/hosts.
BETA
Docker Machine
> docker-machine ls
> eval "$(docker-machine env dev)"
> docker ps
DEMO
Docker Swarm
DockerNode
DockerNode
DockerNode
DockerMaster
DockerSwarm
DockerClient
docker run
ServiceDiscovery
BETA
Continuous Testing with Docker Containers
Storage Driver
❖ AUFS
❖ devicemapper
DON’TUSE
DEVICEMAPPER!
Link Docker Containers
Linking only works on same hosts!
Service Discovery
Service Discovery
❖ Environment Variables
❖ Mount configuration via volumes
❖ Use a service like: etcd, zookeeper etc…
Orchestration
Docker Orchestration
❖ Docker Swarm
❖ CM-Tools (Chef, Puppet, Ansible, Salt)
❖ Kubernetes
❖ Mesos
? ? ?
@RobertReiz
https://www.versioneye.com/go/docker:docker

Mais conteúdo relacionado

Mais procurados

Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
John Willis
 

Mais procurados (20)

Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management services
 
Docker
DockerDocker
Docker
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 

Destaque

Why Docker
Why DockerWhy Docker
Why Docker
dotCloud
 
VersionEye for PHP User Group Berlin
VersionEye for PHP User Group BerlinVersionEye for PHP User Group Berlin
VersionEye for PHP User Group Berlin
Robert Reiz
 
Reflection in java
Reflection in javaReflection in java
Reflection in java
upen.rockin
 

Destaque (20)

Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Dependencies and Licenses
Dependencies and LicensesDependencies and Licenses
Dependencies and Licenses
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
手把手帶你學Docker 03042017
手把手帶你學Docker 03042017手把手帶你學Docker 03042017
手把手帶你學Docker 03042017
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & Ansible
 
VersionEye for PHP User Group Berlin
VersionEye for PHP User Group BerlinVersionEye for PHP User Group Berlin
VersionEye for PHP User Group Berlin
 
Docker engine - Indroduc
Docker engine - IndroducDocker engine - Indroduc
Docker engine - Indroduc
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
 
Basics of reflection in java
Basics of reflection in javaBasics of reflection in java
Basics of reflection in java
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014
 
Reflection in Java
Reflection in JavaReflection in Java
Reflection in Java
 
Docker presentation | Paris Docker Meetup
Docker presentation | Paris Docker MeetupDocker presentation | Paris Docker Meetup
Docker presentation | Paris Docker Meetup
 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
 
Reflection in java
Reflection in javaReflection in java
Reflection in java
 
Using Chef for Automated Infrastructure in the Cloud
Using Chef for Automated Infrastructure in the CloudUsing Chef for Automated Infrastructure in the Cloud
Using Chef for Automated Infrastructure in the Cloud
 
EuroPython 2014 YAML Reader Lightning Talk
EuroPython 2014 YAML Reader Lightning TalkEuroPython 2014 YAML Reader Lightning Talk
EuroPython 2014 YAML Reader Lightning Talk
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4
 

Semelhante a Docker Introduction

Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Puja Abbassi
 

Semelhante a Docker Introduction (20)

Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 
Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...
Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...
Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker meetup-20-apr-17-openshit
Docker meetup-20-apr-17-openshitDocker meetup-20-apr-17-openshit
Docker meetup-20-apr-17-openshit
 
Docker & Daily DevOps
Docker & Daily DevOpsDocker & Daily DevOps
Docker & Daily DevOps
 
Docker and-daily-devops
Docker and-daily-devopsDocker and-daily-devops
Docker and-daily-devops
 
The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
 
Docker navjot kaur
Docker navjot kaurDocker navjot kaur
Docker navjot kaur
 
Everything you need to know about Docker
Everything you need to know about DockerEverything you need to know about Docker
Everything you need to know about Docker
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
 
Greach 2016 dockerize your grails
Greach 2016   dockerize your grailsGreach 2016   dockerize your grails
Greach 2016 dockerize your grails
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Тарас Кирилюк — Docker basics. How-to for Drupal developers
Тарас Кирилюк — Docker basics. How-to for Drupal developersТарас Кирилюк — Docker basics. How-to for Drupal developers
Тарас Кирилюк — Docker basics. How-to for Drupal developers
 
Docker and SDL Web/Tridion - SDL UK User Group April 2017
Docker and SDL Web/Tridion - SDL UK User Group April 2017Docker and SDL Web/Tridion - SDL UK User Group April 2017
Docker and SDL Web/Tridion - SDL UK User Group April 2017
 

Mais de Robert Reiz (8)

Silicon Valley vs. Berlin vs. Mannheim
Silicon Valley vs. Berlin vs. MannheimSilicon Valley vs. Berlin vs. Mannheim
Silicon Valley vs. Berlin vs. Mannheim
 
Go with Go
Go with GoGo with Go
Go with Go
 
Api Days Berlin - Continuous Updating
Api Days Berlin - Continuous UpdatingApi Days Berlin - Continuous Updating
Api Days Berlin - Continuous Updating
 
Gruenden indercloud
Gruenden indercloudGruenden indercloud
Gruenden indercloud
 
Continuous Updating
Continuous UpdatingContinuous Updating
Continuous Updating
 
Silicon Valley
Silicon ValleySilicon Valley
Silicon Valley
 
Software Libraries And Numbers
Software Libraries And NumbersSoftware Libraries And Numbers
Software Libraries And Numbers
 
Ruby for Java Developers
Ruby for Java DevelopersRuby for Java Developers
Ruby for Java Developers
 

Último

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 

Docker Introduction