This document summarizes Jirayut Nimsaeng's Docker workshop for beginners on March 20, 2016 at Odd-e Thailand. It introduces Docker concepts like images, containers, and the Dockerfile used to build images. It covers installing Docker, running basic Docker commands, building a simple image, exposing ports, and running containers in daemon mode. The workshop aims to help developers understand how Docker can help solve problems with inconsistent environments by providing a portable deployment mechanism.
Joomla Continuous Delivery with Docker on Joomla Day Bangkok 2014.
I did demo to show how it looks like on that session too. In case of anyone interested on how I did it. Please check README.md on my repository here https://git.winginfotech.net/continuous-delivery/cd-joomla/tree/master
For whoever wants to see the real demo. Please see it here https://www.youtube.com/watch?v=nFzulhEt3As at the minute around after 19.30. Demo session in Thai and hope there will be a chance that I can do presentation in English soon :)
DevOps Drivent Development is my experiment to find the way to improve technical practice and process in your company to get better product delivery by make DevOps focus on doing DevOps then improve and scale it
Docker in Production from Docker meetup Thailand 2016 #1 @ Kaidee on January 14, 2016
This slide will tell you about pitfall when you want to use Docker in Production.
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
In normal project work everybody will have heard the sentence: „On my local machine it worked“! The circumstances which lead to this statement are that there are usually minor inconsistencies within the setup of the different environments. Different operating systems, Java versions or installed hot fixes influent the behavior of the developed application and cause issues. This is where Docker comes in place. Docker automates the deployment of applications and isolates them inside software containers, by providing an additional layer of abstraction and automation but with out the overhead caused by a virtual machine. Ones set up, it limits the installation process to 5 minutes independent which environment. Furthermore, the same application can be reused to run on local machines, data centers or in the cloud. We will show you how we incorporated Docker in our continuous deployment process and how we facilitate it for our development and deployment chain.
Joomla Continuous Delivery with Docker on Joomla Day Bangkok 2014.
I did demo to show how it looks like on that session too. In case of anyone interested on how I did it. Please check README.md on my repository here https://git.winginfotech.net/continuous-delivery/cd-joomla/tree/master
For whoever wants to see the real demo. Please see it here https://www.youtube.com/watch?v=nFzulhEt3As at the minute around after 19.30. Demo session in Thai and hope there will be a chance that I can do presentation in English soon :)
DevOps Drivent Development is my experiment to find the way to improve technical practice and process in your company to get better product delivery by make DevOps focus on doing DevOps then improve and scale it
Docker in Production from Docker meetup Thailand 2016 #1 @ Kaidee on January 14, 2016
This slide will tell you about pitfall when you want to use Docker in Production.
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
In normal project work everybody will have heard the sentence: „On my local machine it worked“! The circumstances which lead to this statement are that there are usually minor inconsistencies within the setup of the different environments. Different operating systems, Java versions or installed hot fixes influent the behavior of the developed application and cause issues. This is where Docker comes in place. Docker automates the deployment of applications and isolates them inside software containers, by providing an additional layer of abstraction and automation but with out the overhead caused by a virtual machine. Ones set up, it limits the installation process to 5 minutes independent which environment. Furthermore, the same application can be reused to run on local machines, data centers or in the cloud. We will show you how we incorporated Docker in our continuous deployment process and how we facilitate it for our development and deployment chain.
Presentation about docker from Java User Group in Ostrava CZ (23th of November 2015). Presented by Martin Damovsky (@damovsky).
Demos are available at https://github.com/damovsky/jug-ostrava-docker
Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesNLJUG
Docker recently hit version 1.0 and is being picked up around the world by Ops teams to ease running their applications. Docker can also play a big role in easing the development of applications. In this talk I will address how to use docker to: - create a more scalable build environment using jenkins and docker; - integration test your software using maven and docker; - package your software and run the images in different environments.
Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We’ll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.
Dev to Delivery with Puppet, Vagrant and AWSPuppet
"Dev to Delivery with Puppet, Vagrant and AWS" by Sam Bashton of Bashton Ltd. at Puppet Camp London 2013. Find the video here: http://puppetlabs.com/community/puppet-camp
Docker and Containers are proven solutions, but are they ready to replace your current deployment? And more importantly, are you aware of the changes you'll have to make to accommodate them? Are there any risks involved? This talk will answer these questions and talk about how to plan, automate, build, deploy, and orchestrate the whole process.
This presentation gives a quick introduction to Docker and aims to motivate you to read and learn more about this really cool technology that is gaining a lot of attention/popularity at the moment.
Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.
A hands-on workshop that covers 18 best practices in 4 categories or in other words ✅️ Dos & Don'ts.
After a general introduction, we will have a look at the essential practices (aka must do), then move to the image practices, then we will go through the security practices, and finally, some general practices.
Please note, this workshop assumes that you have a basic knowledge of Docker.
Hands-on repo:
https://github.com/aabouzaid/docker-best-practices-workshop
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Example Simple NodeJS Application for Docker demo
- https://gist.github.com/abtris/6aca9b2668b8b5af0208
Video
- https://www.youtube.com/watch?v=p6olO6NChno&feature=youtu.be
Beyond OpenStack keynote presentation in 2nd Cloud OpenStack-Container Conference and Workshop 2016 at
Grand Postal Building, Bangrak, Bangkok on September 22-23, 2016.
Presentation about docker from Java User Group in Ostrava CZ (23th of November 2015). Presented by Martin Damovsky (@damovsky).
Demos are available at https://github.com/damovsky/jug-ostrava-docker
Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesNLJUG
Docker recently hit version 1.0 and is being picked up around the world by Ops teams to ease running their applications. Docker can also play a big role in easing the development of applications. In this talk I will address how to use docker to: - create a more scalable build environment using jenkins and docker; - integration test your software using maven and docker; - package your software and run the images in different environments.
Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We’ll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.
Dev to Delivery with Puppet, Vagrant and AWSPuppet
"Dev to Delivery with Puppet, Vagrant and AWS" by Sam Bashton of Bashton Ltd. at Puppet Camp London 2013. Find the video here: http://puppetlabs.com/community/puppet-camp
Docker and Containers are proven solutions, but are they ready to replace your current deployment? And more importantly, are you aware of the changes you'll have to make to accommodate them? Are there any risks involved? This talk will answer these questions and talk about how to plan, automate, build, deploy, and orchestrate the whole process.
This presentation gives a quick introduction to Docker and aims to motivate you to read and learn more about this really cool technology that is gaining a lot of attention/popularity at the moment.
Thanks to tools like vagrant, puppet/chef, and Platform as a Service services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but 100% configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.
A hands-on workshop that covers 18 best practices in 4 categories or in other words ✅️ Dos & Don'ts.
After a general introduction, we will have a look at the essential practices (aka must do), then move to the image practices, then we will go through the security practices, and finally, some general practices.
Please note, this workshop assumes that you have a basic knowledge of Docker.
Hands-on repo:
https://github.com/aabouzaid/docker-best-practices-workshop
Testing cloud and kubernetes applications - ElasTestMicael Gallego
Kubernetes applications are complex distributed systems composed by several microservices. When some end to end test is failing in these kind of applications, root cause is difficult without good observability tools. In this presentation, several tools are presented to make easier root cause analysis of cloud and kubernetes applications. One of the most interesting ones is ElasTest, a platform that integrates several open source tools to provide observability to e2e testing of complex distributed systems.
Example Simple NodeJS Application for Docker demo
- https://gist.github.com/abtris/6aca9b2668b8b5af0208
Video
- https://www.youtube.com/watch?v=p6olO6NChno&feature=youtu.be
Beyond OpenStack keynote presentation in 2nd Cloud OpenStack-Container Conference and Workshop 2016 at
Grand Postal Building, Bangrak, Bangkok on September 22-23, 2016.
OpenStack Journey to implement private cloud at Kaidee in 2nd Cloud OpenStack-Container Conference and Workshop 2016 at Grand Postal Building, Bangrak, Bangkok on September 22-23, 2016.
Build cloud like Rackspace with OpenStack AnsibleJirayut Nimsaeng
Build cloud like Rackspace with OpenStack Ansible Workshop in 2nd Cloud OpenStack-Container Conference and Workshop 2016 at Grand Postal Building, Bangrak, Bangkok on September 22-23, 2016
In computer/mobile product world, due to the stability, project timeline, etc considerations, latest upstream kernel isn't their preference. The long term stable kernel is. But if you want to some latest features which only is in upstream kernel. You have to backport them to old stable kernel.
This presentation will share the kernel feature backport experience with audience, help them understand how to do backports quickly and effectively without detailed knowledge of the target feature, thus giving more flexibility and Improving productivity when making products.
It will talk by some examples, to discuss how to get info from backport request, how to find necessary commits, how to get dependency, how to resolve conflicts, and finally how to test it.
This presentation was delivered by Alex Shi at LinuxCon Japan 2016.
Keynote by James Staten, Chief Strategist of the Cloud + Enterprise division of Microsoft, at OpenStack Silicon Valley 2015.
Clinton campaign manager James Carville reminded his team often that driving change came through winning the hearts and minds of the people and where government affects them the most: “It’s the economy, stupid.” In helping enterprises make the shift to cloud, the biggest issue isn’t the technology but the process change organizations have to go through that determine success. In this session, James Staten, chief strategist for the Microsoft Cloud+Enterprise division, and former lead cloud analyst at Forrester Research will share his findings and recommendations for helping enterprise organizations, particularly IT Orgs, successfully navigate a change to the cloud.
A tour of scalability improvements between Havana and Juno.
The presentation discusses results from an experimental campaign and the various features that enable the scalability improvements
Presentation from Aaron Rose and Salvatore Orlando.
Kernel address sanitizer (KASan) is a dynamic memory error detector for finding out-of-bounds and use-after-free bugs in Linux kernel. It uses shadow memory to record whether each byte of memory is safe to access and uses compile-time instrumentation to check shadow memory
on each memory access. In this presentation Alexander Popov will describe the successful experience of porting KASan to a bare-metal hypervisor: the main steps, pitfalls and the ways to make KASan checks much more strict and multi-purpose.
This presentation was delivered at LinuxCon Japan 2016 by Alexander Popov
Containers for the Enterprise: It's Not That SimpleMirantis
Keynote by Alex Polvi, CEO of CoreOS, at OpenStack Silicon Valley 2015.
Containers are rapidly finding their way into enterprise data centers. But enterprises like to consume complete products. How do technologies like containers make their way from hyperscale ubiquity to enterprise nirvana? Alex offers some clues.
Cloud Native Computing Foundation (CNCF) is founded for a microservice based new computing paradigm. Fujitsu joined CNCF since last December expecting to establish a new open standard platform. In this session, we'd like to share idea behind our participation and technical topics we're now investigating.
This presentation was delivered at LinuxCon Japan 2016 by Hiroyuki Kamezawa and Wolfgang Ries.
A quick introduction to Openstack Network Features, an overview of the Open vSwitch plugin with logical-2-physical mappins
3rd meetup Openstack User Group Italy
Automated Snap Package build processes without the Build ServiceDani Llewellyn
An exploration of my OCI images containing snapcraft, snapd, and systemd.
I will show how developers or proprietary apps can use the images within their own CI pipelines such as GitHub Actions and GitLab CI to automate their Snap Package build processes without requiring public disclosure of their source code, which using the snapcraft.io Build Service would necessitate.
I will also detail how they can be used in a comparable way by open-source projects to allow more fine-grained build customisation than the snapcraft.io Build Service allows. Such customisations include building and releasing pre-release Snaps without interfering with the stable release builds and without using the launchpad.net git-mirror-based workarounds.
Presentato al sesto WebMeetup del Machine Learning / Data Science Meetup Roma: https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/273089965/
Grazie a Docker è possibile costruire ambienti di sviluppo e di produzione consistenti e riproducibili, in questo talk parleremo delle origini e della storia di Docker, le technical foundation ed alcuni use-cases pratici per capire come è fatto un ambiente dockerizzato e come poterlo usare al meglio.
Developing apps in Windows Containers using DockerNaeem Sarfraz
You've ignored Containers long enough now, Microsoft is bringing them to you in Windows Server 2016. Yes, that's right, you'll be able to run Containers in Windows using Docker.
In this session we'll look at what a Container is, how to get started and how to deploy an ASP.NET application into one. We'll be focusing on what this means for your workflow as a developer using the latest offerings from Docker & Windows Server.
Introduction to Docker for NodeJs developers at Node DC 2/26/2014lenworthhenry
This was my presentation to the Node DC meetup on using Docker for Node JS projects. The code for the demonstration is available at github: https://github.com/lenworthhenry/Docker-Example
Docker 101 is a series of workshops that aims to help developers (or interested people) to get started with docker.
The workshop 101 is were the audience has the first contact with docker, from installation to manage multiple containers.
- Installing docker
- managing images (docker rmi, docker pull)
- basic commands (docker info, docker ps, docker images, docker run, docker commit, docker inspect, docker exec, docker diff, docker stop, docker start)
- Docker registry
- container life cycle (running, paused, stopped, restarted)
- Dockerfile
Docker Continuous Delivery Workshop slide in Docker Training & Workshop for DevOps and Continuous Delivery at OSS Festival 2014 Thailand on October 11, 2014
Work shop - an introduction to the docker ecosystemJoão Pedro Harbs
I ministered a Docker workshop at FliSoL (Latin American Free Software Festival), 2019 edition, hosted by the Federal Institute of Education, Science and Technology of the State of São Paulo (IFSP-BRT) on 27/04/2019, where I gave an introduction. what Docker / Container is, how it came about, some of its uses, and a walkthrough from installation to uploading your first application running in a container.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
2. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
#whoami
● Jirayut Nimsaeng (Dear)
● The Builder at
● Interested in Cloud and
Open Source Technology
● Agile Practitioner and
ScrumMaster with
DevOps Driven Development
3. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Developer Problems
Developer Local Test QA
Production
4. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
What Developer needs
Production-like Quick Repeatable
5. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker can solve this problem
Developer Local Test QA
Production
7. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker can
● Deploy (almost) everywhere
Native On VMs
8. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
What is Docker?
● Service Platform to help code, test and deploy
applications
● Combine with
– Lightweight container virtualization
– Work flows
– Tooling
11. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker image
● Docker images are read-only templates
● Each image consists of series of layers
● Docker use union file system to combine layers
into single image
● Every image starts from base image
12. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker image layers
http://merrigrove.blogspot.com/2015/10/visualizing-docker-containers-and-images.html
13. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker container
● A container is defined as a "union view" of a stack
of layers the top of which is a read-write layer.
http://merrigrove.blogspot.com/2015/10/visualizing-docker-containers-and-images.html
14. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Image vs Container
Docker Image is a class
Docker Container is a instance of class
15. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Image vs Container
http://merrigrove.blogspot.com/2015/10/visualizing-docker-containers-and-images.html
16. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Running Container
http://merrigrove.blogspot.com/2015/10/visualizing-docker-containers-and-images.html
17. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Dockerfile
● Dockerfile is instructions to build Docker image
– How to run commands
– Add files or directories
– Create environment variables
– What process to run when launching container
● Result from building Dockerfile is Docker image
18. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Sample Dockerfile
FROM ubuntu:14.04
MAINTAINER Jirayut Nimsaeng <w [at] winginfotech.net>
ADD build-files /build-files
RUN apt-get update
RUN apt-get install -y openssh-server vim tmux rsync byobu
RUN mkdir /var/run/sshd
RUN sed -i 's/required pam_loginuid.so/optional
pam_loginuid.so/g' /etc/pam.d/sshd
CMD /start.sh
EXPOSE 22
19. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker Registry
● Docker Registry is the store for Docker image
● Docker Hub is public Docker Registry like Github
● Using Docker client to push and pull Docker image
from Docker Registry
● You can create your own Docker Registry with
Docker Distribution
21. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker workflows
Dockerfile
For App A
Host 1 (Dev/Build Server)
Docker Engine
ImageAppAImageAppA
Docker
Registry
Host 2 (Container Server)
1.Build
2.Push
3.Pull
4.Run
Docker Engine
ImageAppA
ContainerAppAProduction
22. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker Installation
● Docker Toolbox for Mac and Windows
– https://www.docker.com/toolbox
– All-in-one Docker installation
● Docker Engine
● Docker Machine
● Docker Compose
● Docker Kitematic
● VirtualBox
23. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker installation
● Ubuntu based
– https://docs.docker.com/installation/ubuntulinux/
– Recommend Ubuntu 14.04 64-bit LTS or up
– curl -sSL https://get.docker.com/ | sudo sh
● Redhat based
– https://docs.docker.com/installation/centos/
– Recommend CentOS 7
– curl -sSL https://get.docker.com/ | sh
24. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker architecture
Host
Docker Engine
Web Server
80 xxxx
Docker Containers
Database
Docker Client
socket
3306
25. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Boot2docker architecture
Host
Virtualbox VM
Docker Engine
Web Server
boot2docker-vm
80 1024+
Docker Containers
Database
2376
Host-only
80
80
3306
Docker Client
26. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Know the tools (1)
● Docker Client / Engine
Host
Virtualbox VM
Docker Engine
Web Server
boot2docker-vm
80 1024+
Docker Containers
Database
2376
Host-only
80
80
3306
Docker Client
27. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Know the tools (2)
● Docker Machine
– Lets you create Docker hosts on your computer, on
cloud providers, or inside your own data center
– Automated these steps
● Create Docker host
● Install Docker
● Configure Docker client to talk with server
– Manage Docker multiple Docker host
28. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Know the tools (3)
● VirtualBox
– Virtualization software to run Docker host
for Mac and Windows
– VM has been configured and managed
by Docker Machine
29. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Know the tools (4)
● Docker Kitematic
– Simple application for managing Docker containers on
Mac and Windows
30. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Know the tools (5)
● Docker Compose
– Tool for defining and running multi-container
applications with Docker in a single file
31. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker Image name
● Official Docker Image
– ubuntu:latest
– centos:centos7
● User's Docker Image on Docker Hub
– google/cadvisor:0.5.0
– dockerfile/mongodb
● Docker Image on Private Docker Registry
– r.winginfotech.net/ubuntu:14.10
– r:5000/docker-registry
32. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Run first Docker container
● docker images
● docker pull r.winginfotech.net/ubuntu
● docker images
● docker run r.winginfotech.net/ubuntu echo “Hello World”
●
docker run -i -t r.winginfotech.net/ubuntu bash
– whoami
– hostname
– cat /etc/*release*
– exit
33. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker basic operations
● docker pull [name[:tag]]
– docker pull r.winginfotech.net/centos
– docker pull ubuntu:latest
● docker run [-itd] [name[:tag]] [command]
● docker ps
● docker ps -a
● docker rm [name or cid]
● docker rm [part of cid]
● docker images
● docker rmi [name:tag or iid]
34. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Image name and tag
● docker pull r.winginfotech.net/ubuntu
● docker images
● docker pull r.winginfotech.net/ubuntu:15.10
● docker images
● docker pull r.winginfotech.net/ubuntu:14.04
● docker images
35. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Create your first image
●
docker run -it r.winginfotech.net/ubuntu bash
– vim
– echo 'Acquire::http::Proxy "http://r.winginfotech.net:3142";' >
/etc/apt/apt.conf.d/11proxy
– apt-get update
– apt-get install -y vim
– touch vim-installed
– ls
– exit
● docker ps -a
● docker commit [cid] ubuntu-vim
● docker images
● docker run -it ubuntu-vim bash
– ls
36. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker commit
● Commit takes a container's top-level read-write
layer and burns it into a read-only layer.
● This turns a container into an immutable image.
http://merrigrove.blogspot.com/2015/10/visualizing-docker-containers-and-images.html
37. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Expose ports
● docker run -it -p 80:80 ubuntu-vim bash
– apt-get install -y apache2
– service apache2 start
– Go to browser: http://ipaddress
– exit
● Commit your apache2 container as
ubuntu-apache2 with tag 14.04 and latest
● Make sure that new images have apache2
● Clear your stopped containers
38. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Run as daemon & expose port option
●
docker run ubuntu-apache2
●
docker run -d ubuntu-apache2 service apache2 start
●
docker run -d ubuntu-apache2 apachectl
-DFOREGROUND
●
docker run -d -p 80:80 ubuntu-apache2 apachectl
-DFOREGROUND
●
docker run -d -p 8880:80 ubuntu-apache2 apachectl
-DFOREGROUND
●
docker run -d -p 80 ubuntu-apache2 apachectl
-DFOREGROUND
●
docker ps
39. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Docker container operation
● docker ps
● docker stop [container id or name]
● docker start [container id or name]
● docker kill [container id or name]
● docker logs [container id or name]
● docker diff [container id or name]
● docker top [container id or name]
● docker inspect [container id or name]
40. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Some useful command & parameter
● docker run --name my-nginx -d -p 80:80 r.winginfotech.net/nginx
● docker ps
● docker exec -it my-nginx /bin/bash
41. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Linking
Host
Web Server
80
80
Docker Containers
Database
3306
3306
42. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Linking
Host
Web Server
80
80
Docker Containers
Database
Linking
43. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Running Wordpress without linking
● docker run -d –-name wp_mysql -p 3306:3306
-e MYSQL_ROOT_PASSWORD=mypass
r.winginfotech.net/mysql
● docker run -d –-name wp -p 80:80
-e WORDPRESS_DB_PASSWORD=mypass
-e WORDPRESS_DB_HOST=your-ip-address:3306
r.winginfotech.net/wordpress
44. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Running Wordpress with linking
● docker run -d –-name wp_mysql
-e MYSQL_ROOT_PASSWORD=mypass
r.winginfotech.net/mysql
● docker run -d –-name wp -p 80:80
-e WORDPRESS_DB_PASSWORD=mypass
--link wp_mysql:mysql
r.winginfotech.net/wordpress
45. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Data in Container (1)
● Default
https://kvaes.wordpress.com/2016/02/11/docker-storage-patterns-for-persistence/
46. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Data in Container (2)
● Data Volume
https://kvaes.wordpress.com/2016/02/11/docker-storage-patterns-for-persistence/
47. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Data in Container (3)
● Data Only Container
https://kvaes.wordpress.com/2016/02/11/docker-storage-patterns-for-persistence/
48. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Data in Container (4)
● Host Mapped Volume
https://kvaes.wordpress.com/2016/02/11/docker-storage-patterns-for-persistence/
49. Jirayut Nimsaeng
Docker Workshop for beginner
March 20, 2016 @ Odd-e Thailand
Running Wordpress with volume
● docker run -d –-name wp_mysql
-e MYSQL_ROOT_PASSWORD=mypass
r.winginfotech.net/mysql
● docker run -d –-name wp -p 80:80
-e WORDPRESS_DB_PASSWORD=mypass
--link wp_mysql:mysql
--volumes $(pwd)/uploads:/var/www/html/wp-content/uploads
r.winginfotech.net/wordpress