SlideShare una empresa de Scribd logo
1 de 21
Making life easier with
Docker
What is
Docker?
Docker is the world’s leading
software containerization
platform.
Docker vs Virtual machines
How Docker can help testing
- Exploration of existing Dockerfiles.
- Using dockerized tools.
- Creation of testing infrastructure based on Docker.
...you will also become more acquainted with Linux shell and shell/bash scripting.
Explorating existing Dockerfiles
You can find some useful information how to setup and configure some tools even by exploration of
existing Dockerfiles that can be found on Docker Hub, Github/Bitbucket inside Docker image repositories.
Using existing
dockerized tools
Advantages
● Easy installation and configuration.
● Ability to use a few different tool versions on one machine.
● Easy updating or switching between versions.
● Ability to easily switch tools between ports.
● Ability to use tools and services which aren’t supported by your OS.
Disadvantages
● Some functionality can work not as expected (e.g., there are some troubles in
using Docker inside dockerized Jenkins CI).
● Permissions for files created by Docker. By default, all the files and directories
created inside a Docker container and shared to host machine are owned by
Docker.
● Not all versions can be available for tools that you need.
● Some performance losses are possible on macOS and Windows systems
because of using Docker inside a virtual machine.
Where to search for existing tool images?
You can find existing Docker images using Docker registry:
● Docker Hub - the main Docker registry. https://hub.docker.com/
● Docker Store - place for trusted and Enterprise Ready Containers, Plugins,
and Docker Editions. https://store.docker.com/
Accessing dockerized tools by ports.
- Internal Docker container ports can be exposed to any free host port.
- Internal tool’s ports inside containers are to be exposed as a host machine
ports using docker run “-p” / ”-P” command options.
- Tools or services inside containers can be used through exposed ports by
calling needed port on host machine.
Creating your
own dockerized
tools and
services
Advantages
- Full control on software versions.
- Lightweight images.
- Configuration flexibility.
Disadvantages
- Can be time consuming, especially on the beginning.
- Commonly useless if you don’t need additional customization.
Ways of creating your own image
● Local image building and using on the same machine.
● Local image building and pushing it to Docker registry.
● Remote image building using Docker registry.
...anyway you need to start from writing a Dockerfile.
Creation of
testing
infrastructure
based on
Docker
Preconditions
- You need to have some CI system.
- There is a way to up project instances without human interactions on CI
system.
- It's preferable to have the whole project on docker.
- Understanding of docker-compose extending logic will be very helpful.
Possible docker-compose files structure.
● docker-compose.yml - basic configurations and services that are needed
for all environments.
● docker-compose.override.yml - additional configurations and services
that are commonly used for local environments.
● docker-compose.{whatever}.yml - additional configurations and
services that are needed for other environments.
Example of test environment starting command
Accessing services from another containers
http(s)://{name_of_service_used_in_docker-compose}:{port_inside_container}
Useful links:
● Docker documentation - https://docs.docker.com/manuals/
● Docker-compose documentation - https://docs.docker.com/compose/
● Docker Cookbook - http://shop.oreilly.com/product/0636920036791.do
● Docker Hub - https://hub.docker.com/
● Example of an image for Behat- https://hub.docker.com/r/bergil/docker-behat/

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Deployment Automation with Docker
Deployment Automation with DockerDeployment Automation with Docker
Deployment Automation with Docker
 
Docker
DockerDocker
Docker
 
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java AppsWebinar: Creating an Effective Docker Build Pipeline for Java Apps
Webinar: Creating an Effective Docker Build Pipeline for Java Apps
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
 
Containers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker ComposeContainers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
 
Docker for the new Era: Introducing Docker,its components and tools
Docker for the new Era: Introducing Docker,its components and toolsDocker for the new Era: Introducing Docker,its components and tools
Docker for the new Era: Introducing Docker,its components and tools
 
Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
 
Webinar: Using Docker Multi-stage Build to Create Advanced Pipelines
Webinar: Using Docker Multi-stage Build to Create Advanced PipelinesWebinar: Using Docker Multi-stage Build to Create Advanced Pipelines
Webinar: Using Docker Multi-stage Build to Create Advanced Pipelines
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Docker Tooling for Java EE Developers
Docker Tooling for Java EE  DevelopersDocker Tooling for Java EE  Developers
Docker Tooling for Java EE Developers
 
Webinar: Development Swarm Cluster with Docker Compose V3
Webinar: Development Swarm Cluster with Docker Compose V3Webinar: Development Swarm Cluster with Docker Compose V3
Webinar: Development Swarm Cluster with Docker Compose V3
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Eclipse Neon Webinar - Docker Tooling for Developers
Eclipse Neon Webinar - Docker Tooling for DevelopersEclipse Neon Webinar - Docker Tooling for Developers
Eclipse Neon Webinar - Docker Tooling for Developers
 
Testing strategies for Docker containers
Testing strategies for Docker containersTesting strategies for Docker containers
Testing strategies for Docker containers
 
06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce
06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce
06/03/19 Docker, Docker Compose y Heroku - Granada Developer Group - Salesforce
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 
Hide your development environment and application in a container
Hide your development environment and application in a containerHide your development environment and application in a container
Hide your development environment and application in a container
 
Use the Source or Join the Dark Side: differences between Docker Community an...
Use the Source or Join the Dark Side: differences between Docker Community an...Use the Source or Join the Dark Side: differences between Docker Community an...
Use the Source or Join the Dark Side: differences between Docker Community an...
 

Similar a QA Club Kiev #20. Making life easier with Docker

Similar a QA Club Kiev #20. Making life easier with Docker (20)

Docker
DockerDocker
Docker
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
You, and Me, and Docker Makes Three
You, and Me, and Docker Makes ThreeYou, and Me, and Docker Makes Three
You, and Me, and Docker Makes Three
 
Docker
DockerDocker
Docker
 
JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
 
Docker in everyday development
Docker in everyday developmentDocker in everyday development
Docker in everyday development
 
Docker interview Questions-1.pdf
Docker interview Questions-1.pdfDocker interview Questions-1.pdf
Docker interview Questions-1.pdf
 
Introduction to Dockers.pptx
Introduction to Dockers.pptxIntroduction to Dockers.pptx
Introduction to Dockers.pptx
 
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and JenkinsExpoQA 2017 Using docker to build and test in your laptop and Jenkins
ExpoQA 2017 Using docker to build and test in your laptop and Jenkins
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power Systems
 
Using Docker to boost your development experience with Drupal
Using Docker to boost your development experience with DrupalUsing Docker to boost your development experience with Drupal
Using Docker to boost your development experience with Drupal
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Introduction to docker and docker compose
Introduction to docker and docker composeIntroduction to docker and docker compose
Introduction to docker and docker compose
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 

Más de QA Club Kiev

Agile performance testing
Agile performance testingAgile performance testing
Agile performance testing
QA Club Kiev
 
QAClubKiev Performance-Structure
QAClubKiev Performance-StructureQAClubKiev Performance-Structure
QAClubKiev Performance-Structure
QA Club Kiev
 
QA Club Kiev #13 Performance Testing - introduction
QA Club Kiev #13  Performance Testing - introductionQA Club Kiev #13  Performance Testing - introduction
QA Club Kiev #13 Performance Testing - introduction
QA Club Kiev
 
Qa club kiev #12 istqb сertification
Qa club kiev #12  istqb сertification Qa club kiev #12  istqb сertification
Qa club kiev #12 istqb сertification
QA Club Kiev
 
ISTQB Certification
ISTQB CertificationISTQB Certification
ISTQB Certification
QA Club Kiev
 
Test management in scrum
Test management in scrumTest management in scrum
Test management in scrum
QA Club Kiev
 
Qa club kiev #11 test documentation - introduction
Qa club kiev #11  test documentation - introductionQa club kiev #11  test documentation - introduction
Qa club kiev #11 test documentation - introduction
QA Club Kiev
 
Agile testing - introduction
Agile testing - introductionAgile testing - introduction
Agile testing - introduction
QA Club Kiev
 
Effective testing in scrum approach and tools
Effective testing in scrum   approach and toolsEffective testing in scrum   approach and tools
Effective testing in scrum approach and tools
QA Club Kiev
 

Más de QA Club Kiev (20)

QA Club Kiev #20. Mobile Testing. Tips & Tricks
QA Club Kiev #20. Mobile Testing. Tips & TricksQA Club Kiev #20. Mobile Testing. Tips & Tricks
QA Club Kiev #20. Mobile Testing. Tips & Tricks
 
QA Club Kiev #19 - ISTQB to be or not to be
QA Club Kiev #19 - ISTQB to be or not to beQA Club Kiev #19 - ISTQB to be or not to be
QA Club Kiev #19 - ISTQB to be or not to be
 
QA Club Kiev #18 - Test Management in Google Sheets
QA Club Kiev #18 - Test Management in Google SheetsQA Club Kiev #18 - Test Management in Google Sheets
QA Club Kiev #18 - Test Management in Google Sheets
 
QA Club Kiev 18 - Test Management and Approaches
QA Club Kiev 18 - Test Management and ApproachesQA Club Kiev 18 - Test Management and Approaches
QA Club Kiev 18 - Test Management and Approaches
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Whay QA- engineers should know how to code
Whay QA- engineers should know how to codeWhay QA- engineers should know how to code
Whay QA- engineers should know how to code
 
Mobile Testing. What to do?
Mobile Testing. What to do?Mobile Testing. What to do?
Mobile Testing. What to do?
 
Мифы Автоматизации
Мифы АвтоматизацииМифы Автоматизации
Мифы Автоматизации
 
QA Club Kiev #17 Measuring quality by Volodymyr Prymakov
QA Club Kiev #17 Measuring quality by Volodymyr PrymakovQA Club Kiev #17 Measuring quality by Volodymyr Prymakov
QA Club Kiev #17 Measuring quality by Volodymyr Prymakov
 
QA Club Kiev #17 QA Challenge by Oleksandr Maidaniuk
QA Club Kiev #17 QA Challenge by Oleksandr MaidaniukQA Club Kiev #17 QA Challenge by Oleksandr Maidaniuk
QA Club Kiev #17 QA Challenge by Oleksandr Maidaniuk
 
QA Club Kiev #16: BA in IT
QA Club Kiev #16: BA in ITQA Club Kiev #16: BA in IT
QA Club Kiev #16: BA in IT
 
Agile performance testing
Agile performance testingAgile performance testing
Agile performance testing
 
QAClubKiev Performance-Structure
QAClubKiev Performance-StructureQAClubKiev Performance-Structure
QAClubKiev Performance-Structure
 
QA Club Kiev #13 Performance Testing - introduction
QA Club Kiev #13  Performance Testing - introductionQA Club Kiev #13  Performance Testing - introduction
QA Club Kiev #13 Performance Testing - introduction
 
Qa club kiev #12 istqb сertification
Qa club kiev #12  istqb сertification Qa club kiev #12  istqb сertification
Qa club kiev #12 istqb сertification
 
ISTQB Certification
ISTQB CertificationISTQB Certification
ISTQB Certification
 
Test management in scrum
Test management in scrumTest management in scrum
Test management in scrum
 
Qa club kiev #11 test documentation - introduction
Qa club kiev #11  test documentation - introductionQa club kiev #11  test documentation - introduction
Qa club kiev #11 test documentation - introduction
 
Agile testing - introduction
Agile testing - introductionAgile testing - introduction
Agile testing - introduction
 
Effective testing in scrum approach and tools
Effective testing in scrum   approach and toolsEffective testing in scrum   approach and tools
Effective testing in scrum approach and tools
 

Último

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
MateoGardella
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Último (20)

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 

QA Club Kiev #20. Making life easier with Docker

  • 1. Making life easier with Docker
  • 2. What is Docker? Docker is the world’s leading software containerization platform.
  • 3. Docker vs Virtual machines
  • 4. How Docker can help testing - Exploration of existing Dockerfiles. - Using dockerized tools. - Creation of testing infrastructure based on Docker. ...you will also become more acquainted with Linux shell and shell/bash scripting.
  • 5. Explorating existing Dockerfiles You can find some useful information how to setup and configure some tools even by exploration of existing Dockerfiles that can be found on Docker Hub, Github/Bitbucket inside Docker image repositories.
  • 7. Advantages ● Easy installation and configuration. ● Ability to use a few different tool versions on one machine. ● Easy updating or switching between versions. ● Ability to easily switch tools between ports. ● Ability to use tools and services which aren’t supported by your OS.
  • 8. Disadvantages ● Some functionality can work not as expected (e.g., there are some troubles in using Docker inside dockerized Jenkins CI). ● Permissions for files created by Docker. By default, all the files and directories created inside a Docker container and shared to host machine are owned by Docker. ● Not all versions can be available for tools that you need. ● Some performance losses are possible on macOS and Windows systems because of using Docker inside a virtual machine.
  • 9. Where to search for existing tool images? You can find existing Docker images using Docker registry: ● Docker Hub - the main Docker registry. https://hub.docker.com/ ● Docker Store - place for trusted and Enterprise Ready Containers, Plugins, and Docker Editions. https://store.docker.com/
  • 10. Accessing dockerized tools by ports. - Internal Docker container ports can be exposed to any free host port. - Internal tool’s ports inside containers are to be exposed as a host machine ports using docker run “-p” / ”-P” command options. - Tools or services inside containers can be used through exposed ports by calling needed port on host machine.
  • 12. Advantages - Full control on software versions. - Lightweight images. - Configuration flexibility. Disadvantages - Can be time consuming, especially on the beginning. - Commonly useless if you don’t need additional customization.
  • 13. Ways of creating your own image ● Local image building and using on the same machine. ● Local image building and pushing it to Docker registry. ● Remote image building using Docker registry. ...anyway you need to start from writing a Dockerfile.
  • 14.
  • 16. Preconditions - You need to have some CI system. - There is a way to up project instances without human interactions on CI system. - It's preferable to have the whole project on docker. - Understanding of docker-compose extending logic will be very helpful.
  • 17. Possible docker-compose files structure. ● docker-compose.yml - basic configurations and services that are needed for all environments. ● docker-compose.override.yml - additional configurations and services that are commonly used for local environments. ● docker-compose.{whatever}.yml - additional configurations and services that are needed for other environments.
  • 18.
  • 19. Example of test environment starting command
  • 20. Accessing services from another containers http(s)://{name_of_service_used_in_docker-compose}:{port_inside_container}
  • 21. Useful links: ● Docker documentation - https://docs.docker.com/manuals/ ● Docker-compose documentation - https://docs.docker.com/compose/ ● Docker Cookbook - http://shop.oreilly.com/product/0636920036791.do ● Docker Hub - https://hub.docker.com/ ● Example of an image for Behat- https://hub.docker.com/r/bergil/docker-behat/