SlideShare une entreprise Scribd logo
1  sur  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/

Contenu connexe

Tendances

Tendances (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...
 

Similaire à QA Club Kiev #20. Making life easier with Docker

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Dernier (20)

Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
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
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
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
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
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
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 

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/