An overview of Docker and Linux containers. There are three parts:
An introduction to Docker and containers
A demo that the audience can try out
An overview of the various vendors and groups in this space
The demo is meant to be a simple, step-by-step recipe that introduces the basic commands and ends by spinning up a node.js app using two linked containers: node and redis.
The final section explores the companies and groups that are working on containers, either complementing Docker's contributions or in direct competition with them.
Docker is a platform for building, shipping and running applications. It provides lightweight virtual containers that allow applications to run consistently regardless of environment. Key Docker concepts include images, containers, Docker Engine and tools like Docker Compose and Docker Machine. The document then provides steps for setting up WordPress and Laravel projects using Docker, including using Docker Compose to define services and Docker Machine to provision and manage Docker hosts.
Docker is an open platform for building, shipping and running containers. It provides lightweight virtualization that allows applications to run reliably from one computing environment to another. Some key benefits of Docker include guaranteed consistency through isolation of applications and their dependencies into lightweight executable packages called containers.
This document summarizes a presentation about using Docker for development. It discusses installing Docker, running a "Hello World" Docker image, building a custom Python Docker image, and composing a more complex Docker application with PHP, MySQL, and Apache. The benefits of Docker like lightweight containers, easy environment setup, and scalability are highlighted. Some challenges with scaling and orchestration are also mentioned, along with solutions like Docker Swarm and Kubernetes.
If you're not familiar with Docker yet, here is your chance to catch up: a quick overview of the Open Source Docker Engine, and its associated services delivered through the Docker Hub. It also includes Jérôme will also discuss the new features of Docker 1.0, and briefly explain how you can run and maintain Docker on Azure. In addition, an Azure team member will demonstrate how deploy docker to Azure. The presentation will be followed by a Q&A session!
This document provides an introduction to Docker including Docker vocabulary, architecture, file systems, networking, volumes, registry services like Docker Hub, and clustering technologies like Docker Swarm, Kubernetes and Mesos. It also covers setting up a local Docker environment, building Docker images with Dockerfiles, running containers, and deploying containers on AWS EC2 Container Service.
This document provides instructions on installing and using Docker on Linux (Ubuntu) and Windows. It discusses installing Docker on Ubuntu, basic Docker commands like images, ps, pull, run options for ports, volumes, and other commands. For Windows, it recommends using Docker Toolbox which includes Docker Machine, Engine, Compose and Kitematic GUI. It also covers installing the newer Docker for Windows which requires Windows 10 Pro/Enterprise with Hyper-V enabled.
Docker containers are other piece of the new Connections architecture that makes it a highly extensible and flexible collaboration platform. Flashing back to IBM Connect 17 in San Francisco, I knew Docker was going to be a topic of high interest as the Docker session was standing room only. Predicated on this I decided to conduct an introduction to Docker session at Social Connections 11.
Docker is a platform for building, shipping and running applications. It provides lightweight virtual containers that allow applications to run consistently regardless of environment. Key Docker concepts include images, containers, Docker Engine and tools like Docker Compose and Docker Machine. The document then provides steps for setting up WordPress and Laravel projects using Docker, including using Docker Compose to define services and Docker Machine to provision and manage Docker hosts.
Docker is an open platform for building, shipping and running containers. It provides lightweight virtualization that allows applications to run reliably from one computing environment to another. Some key benefits of Docker include guaranteed consistency through isolation of applications and their dependencies into lightweight executable packages called containers.
This document summarizes a presentation about using Docker for development. It discusses installing Docker, running a "Hello World" Docker image, building a custom Python Docker image, and composing a more complex Docker application with PHP, MySQL, and Apache. The benefits of Docker like lightweight containers, easy environment setup, and scalability are highlighted. Some challenges with scaling and orchestration are also mentioned, along with solutions like Docker Swarm and Kubernetes.
If you're not familiar with Docker yet, here is your chance to catch up: a quick overview of the Open Source Docker Engine, and its associated services delivered through the Docker Hub. It also includes Jérôme will also discuss the new features of Docker 1.0, and briefly explain how you can run and maintain Docker on Azure. In addition, an Azure team member will demonstrate how deploy docker to Azure. The presentation will be followed by a Q&A session!
This document provides an introduction to Docker including Docker vocabulary, architecture, file systems, networking, volumes, registry services like Docker Hub, and clustering technologies like Docker Swarm, Kubernetes and Mesos. It also covers setting up a local Docker environment, building Docker images with Dockerfiles, running containers, and deploying containers on AWS EC2 Container Service.
This document provides instructions on installing and using Docker on Linux (Ubuntu) and Windows. It discusses installing Docker on Ubuntu, basic Docker commands like images, ps, pull, run options for ports, volumes, and other commands. For Windows, it recommends using Docker Toolbox which includes Docker Machine, Engine, Compose and Kitematic GUI. It also covers installing the newer Docker for Windows which requires Windows 10 Pro/Enterprise with Hyper-V enabled.
Docker containers are other piece of the new Connections architecture that makes it a highly extensible and flexible collaboration platform. Flashing back to IBM Connect 17 in San Francisco, I knew Docker was going to be a topic of high interest as the Docker session was standing room only. Predicated on this I decided to conduct an introduction to Docker session at Social Connections 11.
Docker from A to Z, including Swarm and OCCSFrank Munz
This document provides an overview of Docker from A to Z including using Docker with Oracle Container Cloud Service. It discusses basics of Docker including how it provides isolation using Linux namespaces and cgroups. It compares Docker containers to virtual machines and covers Docker images, containers, limitations, networking, security concerns and suggestions. It also discusses using Docker with Oracle technologies including Dockerfiles on GitHub, the Oracle Container Registry, and Oracle Container Cloud Service.
Docker is a system for running applications in isolated containers. It addresses issues with traditional virtual machines by providing lightweight containers that share resources and allow applications to run consistently across different environments. Docker eliminates inconsistencies in development, testing and production environments. It allows applications and their dependencies to be packaged into a standardized unit called a container that can run on any Linux server. This makes applications highly portable and improves efficiency across the entire development lifecycle.
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
This document provides an overview and introduction to using Docker in production environments. It discusses how Docker can help with "solved" problems like installing, building, and distributing applications. It also covers important areas for production Docker usage, such as service discovery, orchestration, performance, configuration management, and sysadmin tasks. The document outlines various approaches in each area and notes that there are often multiple valid solutions to consider.
Docker is a tool that makes it easier to use Linux containers (LXC) to deploy applications. It allows applications to run consistently across servers by including dependencies within containers. Containers are more lightweight than virtual machines and use less resources. Docker containers start faster than VMs and allow for easy sharing of application components. The Docker registry stores container images and metadata for easy sharing between developers and production environments.
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...Yogesh Wadile
The Docker daemon is a service that runs on your host operating system. It currently only runs on Linux because it depends on a number of Linux kernel features, but there are a few ways to run Docker on MacOS and Windows too. TheDocker daemon itself exposes a REST API.
Docker container is an open source software development platform. Its main benefit is to package applications in “containers,” allowing them to be portable among any system running the Linux operating system (OS).
Docker Hub is a cloud-based registry service which allows you to link to code repositories, build your images and test them, stores manually pushed images, and links to Docker Cloud so you can deploy images to your hosts.
This document provides an overview of Docker for developers. It discusses Docker's capabilities for solving portability issues, its advantages over traditional virtualization through operating system-level virtualization using containers that share the same kernel, and how it addresses challenges like slow development times and inefficient resource usage. It also covers Docker concepts like images, containers, registries, networking, security best practices using tools like Docker Bench Security, and cluster management using Docker Swarm.
Docker has created enormous buzz in the last few years. Docker is a open-source software containerization platform. It provides an ability to package software into standardised units on Docker for software development. In this hands-on introductory session, I introduce the concept of containers, provide an overview of Docker, and take the participants through the steps for installing Docker. The main session involves using Docker CLI (Command Line Interface) - all the concepts such as images, managing containers, and getting useful work done is illustrated step-by-step by running commands.
Docker is a technology that uses lightweight containers to package applications and their dependencies in a standardized way. This allows applications to be easily deployed across different environments without changes to the installation procedure. Docker simplifies DevOps tasks by enabling a "build once, ship anywhere" model through standardized environments and images. Key benefits include faster deployments, increased utilization of resources, and easier integration with continuous delivery and cloud platforms.
Docker is a system for running applications securely isolated in a container to provide a consistent deployment environment. The document introduces Docker, discusses the challenges of deploying applications ("the matrix from hell"), and how Docker addresses these challenges by allowing applications and their dependencies to be packaged into lightweight executable containers that can run on any infrastructure. It also summarizes key Docker tools like Docker Compose for defining and running multi-container apps, Docker Machine for provisioning remote Docker hosts in various clouds, and Docker Swarm for clustering Docker hosts.
Introduction to docker. Docker is open source framework that provides "container virtualization". This does not need hypervisor rather works directly with Kernel. It needs x64 Linux and kernel 3.8+ to provide virtualization
Docker allows for the delivery of applications using containers. Containers are lightweight and allow for multiple applications to run on the same host, unlike virtual machines which each require their own operating system. Docker images contain the contents and configuration needed to run an application. Images are built from manifests and layers of content and configuration are added. Running containers from images allows applications to be easily delivered and run. Containers can be connected to volumes to preserve data when the container is deleted. Docker networking allows containers to communicate and ports can be exposed to the host.
Docker and Containers for Development and Deployment — SCALE12XJérôme Petazzoni
Docker is an Open Source engine to build, run, and manage containers. We'll explain what are Linux Containers, what powers them (under the hood), and what extra value Docker brings to the table. Then we'll see what the typical Docker workflow looks like from a developer point of view. We'll also give an Ops perspective, including deployment options. If you already saw a "Docker 101", consider this presentation as the February 2014 update! :-)
This document provides an introduction to Docker presented by Tibor Vass, a core maintainer on Docker Engine. It outlines challenges with traditional application deployment and argues that Docker addresses these by providing lightweight containers that package code and dependencies. The key Docker concepts of images, containers, builds and Compose are introduced. Images are read-only templates for containers which sandbox applications. Builds describe how to assemble images with Dockerfiles. Compose allows defining multi-container applications. The document concludes by describing how Docker improves the deployment workflow by allowing testing and deployment of the same images across environments.
This document introduces Docker and provides an overview of its key features and benefits. It explains that Docker allows developers to package applications into lightweight containers that can run on any Linux server. Containers deploy instantly and consistently across environments due to their isolation via namespaces and cgroups. The document also summarizes Docker's architecture including storage drivers, images, and the Dockerfile for building images.
Enhancing the application development process in all its phases—building, scaling, shipping, deploying
and running—plays a vital role in today’s competitive IT industry by shortening the time between writing
code and running it.
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
Ken Cochrane gave a presentation on Docker and Docker's suitability for Django projects. He began with an introduction to Docker, explaining how it uses Linux containers to package applications into lightweight portable containers. He then discussed several common use cases for Docker like local development, continuous integration/deployment, and testing. The presentation concluded with a demo of Docker commands and a discussion of upcoming Docker 1.0 features.
The ABC of Docker: The Absolute Best Compendium of DockerAniekan Akpaffiong
Containers provide a lightweight virtualization approach compared to virtual machines. Containers share the host operating system kernel and isolate applications at the process level, while virtual machines run a full guest operating system and require hypervisor software. Containers have a smaller footprint and overhead than virtual machines since they share resources more efficiently. Both containers and virtual machines provide portability and isolation benefits for applications.
Docker is a tool that allows users to package applications into containers to run on Linux servers. Containers provide isolation and resource sharing benefits compared to virtual machines. Docker simplifies deployment of containers by adding images, repositories and version control. Popular components include Dockerfiles to build images, Docker Hub for sharing images, and Docker Compose for defining multi-container apps. Docker has gained widespread adoption due to reducing complexity of managing containers across development and operations teams.
An introduction to Docker and docker-compose. Starting from single docker run commands we discover docker file basics, docker-compose basics and finally we play around with scaling containers in docker-compose.
This is a high-level presentation I will be presenting to employees at Medavie. I thought it might be useful for other people as well. Its vendor agnostic.
This document contains the slides from a presentation given by Oleksandr Pastukhov in August 2016 at JUG Shenzhen. The presentation introduces Docker, including what it is for developers and administrators, the differences between containers and VMs, Docker basics, and how Docker can be used to deploy applications across different environments like development, testing, production and more. Various Docker commands are also listed and explained.
Docker from A to Z, including Swarm and OCCSFrank Munz
This document provides an overview of Docker from A to Z including using Docker with Oracle Container Cloud Service. It discusses basics of Docker including how it provides isolation using Linux namespaces and cgroups. It compares Docker containers to virtual machines and covers Docker images, containers, limitations, networking, security concerns and suggestions. It also discusses using Docker with Oracle technologies including Dockerfiles on GitHub, the Oracle Container Registry, and Oracle Container Cloud Service.
Docker is a system for running applications in isolated containers. It addresses issues with traditional virtual machines by providing lightweight containers that share resources and allow applications to run consistently across different environments. Docker eliminates inconsistencies in development, testing and production environments. It allows applications and their dependencies to be packaged into a standardized unit called a container that can run on any Linux server. This makes applications highly portable and improves efficiency across the entire development lifecycle.
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
This document provides an overview and introduction to using Docker in production environments. It discusses how Docker can help with "solved" problems like installing, building, and distributing applications. It also covers important areas for production Docker usage, such as service discovery, orchestration, performance, configuration management, and sysadmin tasks. The document outlines various approaches in each area and notes that there are often multiple valid solutions to consider.
Docker is a tool that makes it easier to use Linux containers (LXC) to deploy applications. It allows applications to run consistently across servers by including dependencies within containers. Containers are more lightweight than virtual machines and use less resources. Docker containers start faster than VMs and allow for easy sharing of application components. The Docker registry stores container images and metadata for easy sharing between developers and production environments.
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...Yogesh Wadile
The Docker daemon is a service that runs on your host operating system. It currently only runs on Linux because it depends on a number of Linux kernel features, but there are a few ways to run Docker on MacOS and Windows too. TheDocker daemon itself exposes a REST API.
Docker container is an open source software development platform. Its main benefit is to package applications in “containers,” allowing them to be portable among any system running the Linux operating system (OS).
Docker Hub is a cloud-based registry service which allows you to link to code repositories, build your images and test them, stores manually pushed images, and links to Docker Cloud so you can deploy images to your hosts.
This document provides an overview of Docker for developers. It discusses Docker's capabilities for solving portability issues, its advantages over traditional virtualization through operating system-level virtualization using containers that share the same kernel, and how it addresses challenges like slow development times and inefficient resource usage. It also covers Docker concepts like images, containers, registries, networking, security best practices using tools like Docker Bench Security, and cluster management using Docker Swarm.
Docker has created enormous buzz in the last few years. Docker is a open-source software containerization platform. It provides an ability to package software into standardised units on Docker for software development. In this hands-on introductory session, I introduce the concept of containers, provide an overview of Docker, and take the participants through the steps for installing Docker. The main session involves using Docker CLI (Command Line Interface) - all the concepts such as images, managing containers, and getting useful work done is illustrated step-by-step by running commands.
Docker is a technology that uses lightweight containers to package applications and their dependencies in a standardized way. This allows applications to be easily deployed across different environments without changes to the installation procedure. Docker simplifies DevOps tasks by enabling a "build once, ship anywhere" model through standardized environments and images. Key benefits include faster deployments, increased utilization of resources, and easier integration with continuous delivery and cloud platforms.
Docker is a system for running applications securely isolated in a container to provide a consistent deployment environment. The document introduces Docker, discusses the challenges of deploying applications ("the matrix from hell"), and how Docker addresses these challenges by allowing applications and their dependencies to be packaged into lightweight executable containers that can run on any infrastructure. It also summarizes key Docker tools like Docker Compose for defining and running multi-container apps, Docker Machine for provisioning remote Docker hosts in various clouds, and Docker Swarm for clustering Docker hosts.
Introduction to docker. Docker is open source framework that provides "container virtualization". This does not need hypervisor rather works directly with Kernel. It needs x64 Linux and kernel 3.8+ to provide virtualization
Docker allows for the delivery of applications using containers. Containers are lightweight and allow for multiple applications to run on the same host, unlike virtual machines which each require their own operating system. Docker images contain the contents and configuration needed to run an application. Images are built from manifests and layers of content and configuration are added. Running containers from images allows applications to be easily delivered and run. Containers can be connected to volumes to preserve data when the container is deleted. Docker networking allows containers to communicate and ports can be exposed to the host.
Docker and Containers for Development and Deployment — SCALE12XJérôme Petazzoni
Docker is an Open Source engine to build, run, and manage containers. We'll explain what are Linux Containers, what powers them (under the hood), and what extra value Docker brings to the table. Then we'll see what the typical Docker workflow looks like from a developer point of view. We'll also give an Ops perspective, including deployment options. If you already saw a "Docker 101", consider this presentation as the February 2014 update! :-)
This document provides an introduction to Docker presented by Tibor Vass, a core maintainer on Docker Engine. It outlines challenges with traditional application deployment and argues that Docker addresses these by providing lightweight containers that package code and dependencies. The key Docker concepts of images, containers, builds and Compose are introduced. Images are read-only templates for containers which sandbox applications. Builds describe how to assemble images with Dockerfiles. Compose allows defining multi-container applications. The document concludes by describing how Docker improves the deployment workflow by allowing testing and deployment of the same images across environments.
This document introduces Docker and provides an overview of its key features and benefits. It explains that Docker allows developers to package applications into lightweight containers that can run on any Linux server. Containers deploy instantly and consistently across environments due to their isolation via namespaces and cgroups. The document also summarizes Docker's architecture including storage drivers, images, and the Dockerfile for building images.
Enhancing the application development process in all its phases—building, scaling, shipping, deploying
and running—plays a vital role in today’s competitive IT industry by shortening the time between writing
code and running it.
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
Ken Cochrane gave a presentation on Docker and Docker's suitability for Django projects. He began with an introduction to Docker, explaining how it uses Linux containers to package applications into lightweight portable containers. He then discussed several common use cases for Docker like local development, continuous integration/deployment, and testing. The presentation concluded with a demo of Docker commands and a discussion of upcoming Docker 1.0 features.
The ABC of Docker: The Absolute Best Compendium of DockerAniekan Akpaffiong
Containers provide a lightweight virtualization approach compared to virtual machines. Containers share the host operating system kernel and isolate applications at the process level, while virtual machines run a full guest operating system and require hypervisor software. Containers have a smaller footprint and overhead than virtual machines since they share resources more efficiently. Both containers and virtual machines provide portability and isolation benefits for applications.
Docker is a tool that allows users to package applications into containers to run on Linux servers. Containers provide isolation and resource sharing benefits compared to virtual machines. Docker simplifies deployment of containers by adding images, repositories and version control. Popular components include Dockerfiles to build images, Docker Hub for sharing images, and Docker Compose for defining multi-container apps. Docker has gained widespread adoption due to reducing complexity of managing containers across development and operations teams.
An introduction to Docker and docker-compose. Starting from single docker run commands we discover docker file basics, docker-compose basics and finally we play around with scaling containers in docker-compose.
This is a high-level presentation I will be presenting to employees at Medavie. I thought it might be useful for other people as well. Its vendor agnostic.
This document contains the slides from a presentation given by Oleksandr Pastukhov in August 2016 at JUG Shenzhen. The presentation introduces Docker, including what it is for developers and administrators, the differences between containers and VMs, Docker basics, and how Docker can be used to deploy applications across different environments like development, testing, production and more. Various Docker commands are also listed and explained.
[DockerHN_2nd_meetup] Ecosystem & Orchestration ToolsNguyen Anh Tu
This document summarizes a Docker meetup where the presenter discussed Docker ecosystem tools. A quick survey was conducted to gauge participants' familiarity with and use of Docker. The presenter then thanked Docker users who shared their experiences at DockerCon and Docker partners. Various Docker tools were explained, including containers, images, registries, Dockerfiles, and the client-server model. Lastly, the presenter discussed using Docker as a container service or for packaging services and applications in containers before demonstrating Docker orchestration.
Docker Online Meetup: Announcing Docker CE + EEDocker, Inc.
Docker Community Edition (CE) and Enterprise Edition (EE) are the best expressions of the Docker Platform to date. Whether you’re a developer, an ops team or a enterprise IT-team member, and no matter the infrastructure, Docker CE and EE gives you a way to install, upgrade and maintain Docker with the support and assurances required for your particular workload.
Both Docker CE and EE are available on a wide range of popular operating systems (including Windows Server 2016) and cloud infrastructure. Developers and devOps have the freedom to run Docker on their favorite infrastructure without risk of lock-in.
Michael Friis will give an overview of both editions and highlight the big enhancements to the lifecycle, maintainability and upgradability of Docker.
Conference poster In 5th International Conference on PErvasive Technologies Related to Assistive Environments (PETRA), Hersonissos, Crete (GR), June 6-8, 2012
Docker 1.13 includes several updates that improve the management of production environments, including a redesigned command line interface (CLI) and new system, plugin, and secret commands. The top-level CLI commands are now organized around common concepts like container, image, network and service. Docker 1.13 also introduces support for secrets in swarm mode and a --squash option to reduce image layers when building. The release makes experimental features fully supported.
Geospatial Data and Key Characteristics of Geospatial Data Analysis and ScienceLuis Bermudez
The growing complexity and interdisciplinarity of research and applied science questions requires the developments of standards to exchange data within continuously growing communities as well as across domains. In most domains, geo-spatial data is the fundamental base layer for data science and analysis, as the vast majority have some spatial characteristics or apply to elements in space. Using the available standards, a good level of interoperability can already be realized. Nevertheless, the increasing complexity of research questions, the growing number of available data, and the increasing range of data providers, ranging from citizen scientists to fully automated sensor networks making their data directly available at the Internet, require even richer models that need to be developed to enhance the level of interoperability.
National level strategy for Open Principles in GeospatialSuchith Anand
This session at FOSS4G UK conference 2016 at the Ordnance Survey UK is aims to start the process of bringing together interested participants from government, industry and academia to discuss ideas on best practices in open source geospatial implementations, open data, open standards, opportunities for geo industry, migration to open source GIS ,economic benefits, accelerating innovation ecosystems , skills development and educational opportunities, creating highly skilled jobs, expanding startups and accelerating the digital economy. There is a need for having a national level strategy for enabling the public sector to save money, innovate and make more effective policy decisions.
This document summarizes geospatial applications in civil engineering. It discusses how remote sensing and GIS techniques can be used for site investigations, terrain mapping and analysis, water resources engineering, town planning and urban development, transportation network analysis, and landslide studies. Specific applications are described, including using drones for site investigations, terrain analysis tools like slope and aspect maps, watershed and hydrologic modeling, and urban planning. Data sources, tools, and workflows are also outlined.
The document discusses trends in environmental data management. It notes that while free public data is available online, commercial and premium sources are still needed for comprehensive and authoritative quality data. New technologies are creating more user participation and choice, but also a more complex landscape with legal and quality issues. This increasing data availability and use, alongside growing environmental legislation, will result in greater needs for expertise in managing environmental data.
This document provides an overview of an online course on the global energy transition taking place from April 4th to April 22nd. The 3-week course will cover topics like energy trends, the Dutch energy policy priorities, the energy trilemma, and the transition to sustainability. Participants will learn about global energy challenges and policies, the Dutch contribution to addressing energy issues, and will network with important actors in the energy sector. The course is facilitated by experts from the Dutch Ministry of Foreign Affairs, TNO, Energy Academy Europe, and Netherlands Enterprise Agency. Participants can choose between a certified learning track requiring 4 hours per week or a free learning track with more flexibility and no certificate. Key dates include webinars on April 6th, 14
Docker Compose and Docker Swarm allow users to easily define and run multi-container applications. Docker Compose defines applications as code in a compose file and spins them up with a single command. Docker Swarm provides native clustering for Docker, turning multiple Docker hosts into a single virtual host. It solves the limitation of containers only running on a single host. The document demonstrates Docker Compose and Swarm through examples of installing, defining, and running applications on Compose and clustering containers on Swarm.
This document discusses Agile and Scrum methodology. It provides an overview of Agile principles and values based on the Agile Manifesto. It also describes Scrum roles, activities, artifacts and how Pronto implements Scrum in their work. Key Scrum concepts covered include sprints, product backlog, daily scrums, sprint planning and retrospectives. Common challenges with Scrum such as unclear requirements and lack of participation are also addressed.
From zero to hero with running your asp.net core 1 application in a docker co...Maurice De Beijer [MVP]
This document discusses running ASP.NET Core applications in Docker containers. It begins with an introduction to containers and Docker, explaining that containers package applications and dependencies to ensure a consistent environment. It then covers building and running Docker images, including creating a minimal Dockerfile. The document suggests benefits of Docker like consistent environments for development, testing and production.
The document discusses various topics related to software development life cycles including waterfall, agile, scrum frameworks. It describes roles in scrum like product owner, scrum master, development team. It also covers 3-tier architecture, MVC pattern, coding best practices, testing strategies and source control.
Scrum is an agile software development framework that focuses on self-organizing cross-functional teams, sprints of work lasting 2-4 weeks, daily stand-up meetings, and empirical process control. The key roles are the Product Owner who prioritizes features, the Scrum Master who facilitates the process, and the self-organizing Development Team. Scrum uses sprints, daily scrums, sprint planning meetings, sprint reviews, and retrospectives to deliver working software frequently in an iterative and incremental fashion.
Can agile frameworks help small development teams? After looking at some agile basics, I examine two projects where a small development team used scrum. Agile can be used by small teams to their advantage with commitment and some work.
Docker - container and lightweight virtualization Sim Janghoon
Docker is an open platform for building, shipping and running distributed applications. It uses containers, which are lightweight and portable execution environments, to isolate applications and their dependencies from one another. Containers are created from Docker images, which are templates that contain binaries, libraries and configuration files needed to run an application. Namespaces and control groups allow containers to share resources on the host machine while maintaining isolation.
It is a simple introduction to the containers world, starting from LXC to arrive to the Docker Platform.
The presentation is focused on the first steps in the docker environment and the scenarious from a developer point of view.
Running the Oracle SOA Suite Environment in a Docker ContainerGuido Schmutz
Running the Oracle SOA Suite Environment in a Docker Container
The document discusses running the Oracle SOA Suite environment in a Docker container. It begins with an introduction to Docker and its benefits over virtual machines. It then demonstrates various Docker commands like run, logs, images, ps to launch and manage containers. It also covers building custom images using Dockerfiles. The document provides examples to showcase common Docker tasks like committing changes to an image, pulling images, stopping and removing containers.
This document discusses containerization and the Docker ecosystem. It provides a brief history of containerization technologies and an overview of Docker components like Docker Engine, Docker Hub, and Docker Inc. It also discusses developing with Docker through concepts like Dockerfiles, images, and Fig for running multi-container apps. More advanced topics covered include linking containers, volumes, Docker Machine for provisioning, and clustering with Swarm and Kubernetes.
Docker is an open platform for building, shipping and running distributed applications. It allows developers to package applications into containers that have everything needed to run, including libraries and other dependencies, and ship them to any Docker-enabled infrastructure. Containers are more portable and provide better isolation than virtual machines, and allow applications to be deployed with minimal overhead or conflict. Docker uses containers, images and a Dockerfile to deploy and run applications reliably across any infrastructure.
- The document discusses Docker, a tool that allows users to package applications into standardized units called containers for development, shipping and running applications.
- It provides an overview of Docker concepts like images, containers, the Dockerfile and Docker Hub registry. It also includes examples of Docker commands and a sample Dockerfile.
- The document encourages readers to use Docker for benefits like continuous integration/delivery, distributed applications and easy application deployment in a platform-as-a-service model.
This document provides instructions on various Docker commands and concepts. It begins with definitions of Docker and the differences between VMs and Docker containers. It then covers topics like installing Docker, finding Docker images and versions, building images with Dockerfiles, running containers with commands like docker run, and managing images and containers.
The document provides an agenda for a DevOps with Containers training over 4 days. Day 1 covers Docker commands and running containers. Day 2 focuses on Docker images, networks, and storage. Day 3 introduces Docker Compose. Day 4 is about Kubernetes container orchestration. The training covers key Docker and DevOps concepts through presentations, videos, labs, and reading materials.
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationErica Windisch
This document summarizes Docker's growth over 15 months, including its community size, downloads, projects on GitHub, enterprise support offerings, and the Docker platform which includes the Docker Engine, Docker Hub, and partnerships. It also provides overviews of key Docker technologies like libcontainer, libchan, libswarm, and how images work in Docker.
Virtualization refers to creating virtual versions of hardware, operating systems, storage or network resources. Docker uses virtualization techniques like namespaces and control groups to virtualize operating systems and applications. Docker allows building, shipping and running applications securely isolated in containers. Developers can package applications with all dependencies into standardized units called containers that can run on any Linux server.
Dockerizing Symfony2 application. Why Docker is so cool And what is Docker? And what are Containers? How they works? What are the ecosystem of Docker? And how to dockerize your web application (can be based on Symfony2 framework)?
This document discusses Docker, including:
1. Docker is a platform for running and managing Linux containers that provides operating-system-level virtualization without the overhead of traditional virtual machines.
2. Key Docker concepts include images (immutable templates for containers), containers (running instances of images that have mutable state), and layers (the building blocks of images).
3. Publishing Docker images to registries allows them to be shared and reused across different systems. Volumes and networking allow containers to share filesystems and communicate.
1. Create a Dockerfile that defines the base image, installs Nginx and any modules, and exposes ports 80 and 443.
2. Build the image from the Dockerfile using "docker build ."
3. Run a container from the new image and publish the ports so Nginx is accessible.
This document summarizes Docker concepts and provides steps for a local Docker development setup. It introduces Docker images, containers, and registries. It then outlines requirements for development and production configurations and provides examples of setting up a Node.js/Angular frontend and Django backend using Docker images. The document concludes with notes on continuous integration and architecture options.
This document provides instructions for a lab on using Docker to install and run containers. The objectives are to install Docker, create images and containers, launch applications in containers, and store and access data in containers. It outlines setting up Docker on Ubuntu, pulling existing images like Fedora and running containers from them. Specific steps look at running the "hello-world" container, installing wget in a Fedora container, and persisting data. The last section provides instructions for building a Docker image to run the OwnCloud application in a container, addressing aspects like installing the application, configuring network access, and persisting data and configuration.
This document provides an introduction to Docker. It describes Docker as a platform for running software in isolated containers. It discusses how Docker allows running multiple software versions simultaneously and makes software easily installable and disposable. It covers Docker concepts like images, containers, Dockerfiles for building images, and running containers from images. It also discusses Docker networking, Docker Compose for defining multi-container apps, and tools for monitoring Docker performance and usage.
This document discusses using Docker for development and delivery environments. It begins with an introduction to Docker, explaining that it is an open platform for building, shipping and running distributed applications using lightweight containers. It then covers benefits of Docker like portability and reduced dependencies compared to traditional VMs. The document shows how to install and configure Docker, build Docker images from Dockerfiles, run containers from images using docker-compose, modify images and redeploy them. It also discusses using Docker to build microservices applications with independent, upgradeable services in separate containers.
Similar to Docker and the Container Ecosystem (20)
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Odoo ERP software
Odoo ERP software, a leading open-source software for Enterprise Resource Planning (ERP) and business management, has recently launched its latest version, Odoo 17 Community Edition. This update introduces a range of new features and enhancements designed to streamline business operations and support growth.
The Odoo Community serves as a cost-free edition within the Odoo suite of ERP systems. Tailored to accommodate the standard needs of business operations, it provides a robust platform suitable for organisations of different sizes and business sectors. Within the Odoo Community Edition, users can access a variety of essential features and services essential for managing day-to-day tasks efficiently.
This blog presents a detailed overview of the features available within the Odoo 17 Community edition, and the differences between Odoo 17 community and enterprise editions, aiming to equip you with the necessary information to make an informed decision about its suitability for your business.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
3. OS Virtualization
Virtualizing the Operating System
Containers have existed on *nix systems for some time
An extension of the 'chroot‘ concept
Examples:
Linux Containers
BSD “Jails”
Solaris Containers
“Understanding Docker”: https://docs.docker.com/introduction/understanding-docker/
5. What is Docker?
• Docker helps to create and manage containers easy
• Docker creates an ecosystem similar to Github and Maven that makes
it easy to share images
• An image is a shareable snapshot of software
• A container is a running instance of an image
• Images can be built and managed on your local workstation
• Images can be pulled and pushed from private and public repos
What is Docker? https://www.docker.com/whatisdocker/
6. Currently Linux-Centric
• Linux already has container support
• Container support is already in Linux
• Uses Linux namespaces and control groups (cgroups)
• So, what does Docker bring to the table?
• makes it easy to build images
• creates images that are portable
• provides an ecosystem to help users share their images
• Shared Registry
• is open-source
• has a very active community
• provides security
7. What About Mac OS?
• Can run Docker under Mac OS!
• Until native OS support is built – Use 'boot2docker'
• Full instructions: https://docs.docker.com/installation/mac/
Docker daemon is
native under Linux
boot2docker runs a
lightweight VM that hosts
the Docker daemon
8. What About Windows?
• Can run Docker under Windows
• Until native OS support is built – Use 'boot2docker'
Uses the standard Windows
installer
Startup screen looks like this:
See instructions at: https://docs.docker.com/installation/windows
9. Docker Ecosystem
• Docker provides a centralized repository of Images
• http://registry.hub.docker.com
• 3rd Party private repos are available too
• Or set up your own on-prem repos
• Similar to Github & Maven
Diagrams from “Docker in Action”, Manning Publications
11. Demo: Install Docker
https://docs.docker.com/installation/ubuntulinux/
Use the “Docker-maintained Package Installation” section
For the latest version of Docker
Check for HTTPS transport for apt:
sudo apt-get update
sudo apt-get install apt-transport-https
Create a new apt sources file – docker.list
sudo vi /etc/apt/sources.d/docker.list
and add the following line:
deb https://get.docker.com/ubuntu docker main
Finish the incantation with an update and an install:
sudo apt-get update
sudo apt-get install lxc-docker
And you’re done!
For other distros: https://docs.docker.com/installation/
12. Demo: Find Images
For a web interface:
https://registry.hub.docker.com/
Or you can search for images using the CLI:
sudo docker search busybox
• Stars indicate the popularity of the image
• Official [OK] indicate if the image is built/maintained by Docker.com
peterc@L4377743:~$ sudo docker search busybox
[sudo] password for peterc:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
busybox Busybox base image. 135 [OK]
progrium/busybox 36 [OK]
jeanblanchard/busybox-java Minimal Docker image with Java 21 [OK]
jeanblanchard/busybox-tomcat Minimal Docker image with Apache Tomcat 10 [OK]
radial/busyboxplus Full-chain, Internet enabled, busybox made... 4 [OK]
sequenceiq/busybox 1 [OK]
peelsky/zulu-openjdk-busybox 1 [OK]
skomma/busybox-data Docker image suitable for data volume cont... 1 [OK]
alars/busybox-go-webapp 0 [OK]
…
justicefries/busybox-ssl Busybox, with SSL support 0 [OK]
…
shingonoide/archlinux-busybox Arch Linux, a lightweight and flexible Lin... 0 [OK]
openshift/busybox-http 0 [OK]
ggtools/busybox-ubuntu Busybox ubuntu version with extra goodies 0 [OK]
akolosov/busybox 0 [OK]
socketplane/busybox 0 [OK]
powellquiring/busybox 0 [OK]
openshift/busybox-http-app 0 [OK]
peterc@L4377743:~$
13. Demo: Trusted Images
“Official” Docker images
https://registry.hub.docker.com/search?q=library&searchfield=
or via CLI:
peterc@L4377743:~$ sudo docker search library
NAME DESCRIPTION STARS OFFICIAL
AUTOMATED
ubuntu Official Ubuntu base image 1404 [OK]
centos The official build of CentOS. 865 [OK]
nginx Official build of Nginx. 646 [OK]
node Node.js is a JavaScript-based platform for... 559 [OK]
postgres The PostgreSQL object-relational database ... 554 [OK]
redis Redis is an open source key-value store th... 547 [OK]
mysql MySQL is a widely used, open-source relati... 507 [OK]
mongo MongoDB document databases provide high av... 478 [OK]
debian (Semi) Official Debian base image. 368 [OK]
jenkins Official Jenkins Docker image 284 [OK]
wordpress The WordPress rich content management syst... 234 [OK]
registry Containerized docker registry 204 [OK]
golang Go (golang) is a general purpose, higher-l... 166 [OK]
rails Rails is an open-source web application fr... 144 [OK]
fedora Official Fedora 21 base image and semi-off... 144 [OK]
busybox Busybox base image. 142 [OK]
python Python is an interpreted, interactive, obj... 138 [OK]
java Java is a concurrent, class-based, and obj... 137 [OK]
php While designed for web development, the PH... 136 [OK]
ruby Ruby is a dynamic, reflective, object-orie... 133 [OK]
tomcat Apache Tomcat is an open source implementa... 77 [OK]
perl Perl is a high-level, general-purpose, int... 29 [OK]
ubuntu-upstart Upstart is an event-based replacement for ... 21 [OK]
peterc@L4377743:~$
14. Demo: Running an Image
First time you ‘run’ an image, you download the image
The image, once running, is called a ‘container’
peterc@L4377743:~$ sudo docker run -ti busybox:latest
/ # ls -alp /
total 56
drwxr-xr-x 24 root root 4096 Feb 27 19:32 ./
drwxr-xr-x 24 root root 4096 Feb 27 19:32 ../
-rwxr-xr-x 1 root root 0 Feb 27 19:32 .dockerenv
-rwxr-xr-x 1 root root 0 Feb 27 19:32 .dockerinit
drwxrwxr-x 2 root root 4096 May 22 2014 bin/
drwxr-xr-x 5 root root 380 Feb 27 19:32 dev/
drwxr-xr-x 6 root root 4096 Feb 27 19:32 etc/
drwxrwxr-x 4 root root 4096 May 22 2014 home/
drwxrwxr-x 2 root root 4096 May 22 2014 lib/
lrwxrwxrwx 1 root root 3 May 22 2014 lib64 -> lib/
lrwxrwxrwx 1 root root 11 May 22 2014 linuxrc -> bin/busybox
drwxrwxr-x 2 root root 4096 Feb 27 2014 media/
drwxrwxr-x 2 root root 4096 Feb 27 2014 mnt/
drwxrwxr-x 2 root root 4096 Feb 27 2014 opt/
dr-xr-xr-x 321 root root 0 Feb 27 19:32 proc/
drwx------ 2 root root 4096 Feb 27 19:32 root/
lrwxrwxrwx 1 root root 3 Feb 27 2014 run -> tmp/
drwxr-xr-x 2 root root 4096 May 22 2014 sbin/
dr-xr-xr-x 13 root root 0 Feb 27 19:32 sys/
drwxrwxrwt 3 root root 4096 May 22 2014 tmp/
drwxrwxr-x 6 root root 4096 May 22 2014 usr/
drwxrwxr-x 4 root root 4096 May 22 2014 var/
/ # exit
peterc@L4377743:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
3bc3868dd6aa busybox:latest "/bin/sh" 15 minutes ago Exited (0) 8 seconds ago
cocky_wilson
peterc@L4377743:~$
15. Demo: Help
At this point, you’re wondering: “How do I remember all this?”
peterc@L4377743:~$ docker help
…
…
Commands:
attach Attach to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders from a container's filesystem to the host path
create Create a new container
diff Inspect changes on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Stream the contents of a container as a tar archive
history Show the history of an image
images List images
import Create a new filesystem image from the contents of a tarball
info Display system-wide information
inspect Return low-level information on a container or image
kill Kill a running container
load Load an image from a tar archive
login Register or log in to a Docker registry server
logout Log out from a Docker registry server
logs Fetch the logs of a container
port Lookup the public-facing port that is NAT-ed to PRIVATE_PORT
pause Pause all processes within a container
ps List containers
pull Pull an image or a repository from a Docker registry server
push Push an image or a repository to a Docker registry server
rename Rename an existing container
restart Restart a running container
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
…
16. Demo: Help
And you can get extensive help on each command:
peterc@L4377743:~$ docker help run
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container
-a, --attach=[] Attach to STDIN, STDOUT or STDERR.
--add-host=[] Add a custom host-to-IP mapping (host:ip)
-c, --cpu-shares=0 CPU shares (relative weight)
--cap-add=[] Add Linux capabilities
--cap-drop=[] Drop Linux capabilities
--cidfile="" Write the container ID to the file
--cpuset="" CPUs in which to allow execution (0-3, 0,1)
-d, --detach=false Detached mode: run the container in the background and print the new container ID
--device=[] Add a host device to the container (e.g. --device=/dev/sdc:/dev/xvdc:rwm)
--dns=[] Set custom DNS servers
--dns-search=[] Set custom DNS search domains (Use --dns-search=. if you don't wish to set the search
domain)
-e, --env=[] Set environment variables
--entrypoint="" Overwrite the default ENTRYPOINT of the image
--env-file=[] Read in a line delimited file of environment variables
--expose=[] Expose a port or a range of ports (e.g. --expose=3300-3310) from the container without
publishing it to your host
-h, --hostname="" Container host name
…
All the command details are available in the Docker website docs:
https://docs.docker.com/reference/commandline/cli/
17. Demo: node.js + redis app
Let’s spin up a node.js & redis app:
• Arbitrarily picked nodejs-todo app off github for this demo
• It uses these modules: ejs, express, underscore, and of course, redis
1. Start a redis instance
peterc@L4377743:~$ sudo docker run –d --name redis redis:latest
fb173fb5194afa5fbeaa24d2acf1b6f9dd8e72cfefa6088ff3b3e4e9b3059c66
peterc@L4377743:~$
2. Check for the running container
peterc@L4377743:~$ sudo docker ps -a
[sudo] password for peterc:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
fb173fb5194a redis:latest "redis-server /etc/r About an hour ago Up About an hour
6379/tcp redis
3bc3868dd6aa busybox:latest "/bin/sh" 4 hours ago Exited (0) 4 hours ago
cocky_wilson
peterc@L4377743:~$
We did not specify a port on the ‘run’ command
Default port for redis is 6379
All networking access is explicit; it has to be specified on ‘run’ if it’s required
Try ‘netstat’ or ‘telnet’… No 6379 port listening.
Run in detached mode
Give it a name so it’s easy to link
No port specified. Never needs to
communicate outside containers
18. Demo: node.js + redis app
The redis container is now up and running
Let’s get a sample node.js app to run and use the redis database
3. Get nodejs-todo
peterc@L4377743:~/tmp$ git clone https://github.com/amirrajan/nodejs-todo.git
Cloning into 'nodejs-todo'...
remote: Counting objects: 32, done.
remote: Total 32 (delta 0), reused 0 (delta 0), pack-reused 32
Unpacking objects: 100% (32/32), done.
Checking connectivity... done.
peterc@L4377743:~/tmp$
4. Examine source. Make a one-line modification
peterc@L4377743:~/tmp/nodejs-todo$ vi server.js
peterc@L4377743:~/tmp/nodejs-todo$ git diff server.js
diff --git a/server.js b/server.js
index 20263cd..59323fe 100644
--- a/server.js
+++ b/server.js
@@ -11,7 +11,7 @@ var client = null;
if(process.env.REDISTOGO_URL) { //heroku
client = require('redis-url').connect(process.env.REDISTOGO_URL);
} else if(config.env == "development") {
- client = redis.createClient();
+ client = redis.createClient(secret.redisPort, secret.redisMachine);
} else { //nodejitsu
client = redis.createClient(secret.redisPort, secret.redisMachine);
client.auth(secret.redisAuth, function (err) {
peterc@L4377743:~/tmp/nodejs-todo$
19. Demo: node.js + redis app
There are a couple of code changes needed so that the app runs under Docker
First, the nodejs-todo needs one dependency update…
5. Modify package.json
(Lock in express version 3.0.1, since newer versions require code changes)
peterc@L4377743:~/tmp/nodejs-todo$ git diff package.json
diff --git a/package.json b/package.json
index 39bd9de..052ecff 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"url": "git://github.com/amirrajan/nodejs-todo.git"
},
"dependencies": {
- "express": "~3.0.1",
+ "express": "3.0.1",
"ejs": "~0.8.3",
"jasmine-node": "~1.0.26",
"underscore": "~1.4.2",
peterc@L4377743:~/tmp/nodejs-todo$
20. Demo: node.js + redis app
When we start the node container, it will need to connect with redis
• There are many ways to do this
• Let’s use the Docker CLI to get the redis IP address
6. Get redis container’s IP address
peterc@L4377743:~/tmp/nodejs-todo$ export DOCKER_IP=`sudo docker inspect --format='{{.NetworkSettings.IPAddress}}'
> fb173fb5194a`
peterc@L4377743:~/tmp/nodejs-todo$ echo $DOCKER_IP
172.17.0.2
peterc@L4377743:~/tmp/nodejs-todo$
7. Set up nodejs-todo’s configuration file
peterc@L4377743:~/tmp/nodejs-todo$ sed -e "s/"redisMachine": "",/"redisMachine": "$DOCKER_IP",/"
> lib/secret.js.example > lib/secret.js
peterc@L4377743:~/tmp/nodejs-todo$ cat lib/secret.js
module.exports = {
"redisPort": 6379,
"redisMachine": "172.17.0.2",
"redisAuth": "",
};
peterc@L4377743:~/tmp/nodejs-todo$
Now the nodejs-todo app is ready to go
(Note that all of this is easily scriptable.)
21. Demo: node.js + redis app
Now let’s fire up the node.js container
We’ll bring it up as a terminal session, so you can see its internals
That will also allow us to install the ‘required’ modules
Since the generic node.js container doesn’t know anything about the nodejs-todo app
We’ll inject that app into the container when we start it
8. Start node.js container
peterc@L4377743:~/tmp/nodejs-todo$ sudo docker run -ti -p 3000:3000 -v ~/tmp/nodejs-todo:/opt/nodejs-todo
> --link redis:redis library/nodejs:0.10.36 /bin/bash
bash: -e: command not found
[ root@4b47ff312f4a:/data ]$ cd /opt/nodejs-todo
[ root@4b47ff312f4a:/opt/nodejs-todo {master *} ]$ cat lib/secret.js
module.exports = {
"redisPort": 6379,
"redisMachine": "172.17.0.2",
"redisAuth": "",
};
The --link option links this node container to the already running redis container.
Does the secret.js file look familiar?
We’re now accessing it inside the container.
Expose port 3000 (as 3000)
Place node app under /opt folder
Interactive terminal session
22. Demo: node.js + redis app
Starting the node.js container, continued…
• The node.js container is now running
• But before we start the node server, nodejs-todo requires 4 modules
9. Installing the app’s node dependencies in the container
root@595627a55592:/# cd /opt/nodejs-todo/
root@595627a55592:/opt/nodejs-todo# npm install
underscore@1.4.4 node_modules/underscore
ejs@0.8.8 node_modules/ejs
redis@0.8.6 node_modules/redis
jasmine-node@1.0.28 node_modules/jasmine-node
├── walkdir@0.0.7
├── coffee-script@1.9.1
├── requirejs@2.1.16
└── jasmine-reporters@2.0.5 (mkdirp@0.3.5)
express@3.0.1 node_modules/express
├── methods@0.0.1
├── fresh@0.1.0
├── cookie-signature@0.0.1
├── range-parser@0.0.4
├── cookie@0.0.4
├── crc@0.2.0
├── commander@0.6.1
├── mkdirp@0.3.3
├── debug@2.1.2 (ms@0.7.0)
├── send@0.1.0 (mime@1.2.6)
└── connect@2.6.2 (pause@0.0.1, bytes@0.1.0, formidable@1.0.11, qs@0.5.1)
root@595627a55592:/opt/nodejs-todo#
10. Start the server
[ root@4b47ff312f4a:/opt/nodejs-todo {master *} ]$ node server.js
23. Demo: node.js + redis app
The node.js container is now running the nodejs-todo app
We can now run the app in a browser
10. Start browser on localhost:3000
Play around. Stop the node container. Restart it. The redis data is still there!
25. Docker Swarm
Run many containers as a cluster
Turns pool of Docker hosts into a single,
virtual host
Swarm uses the existing Docker API
Pluggable backends
Allows swapping with more powerful backends
For example: Mesos
TLS support for all server communications
CLI to Swarm
Swarm to Docker nodes
https://github.com/docker/swarm/
26. Docker Machine
Makes Docker host creation much easier
Works on:
Local laptop
On cloud providers
In customer datacenters
Single command:
Creates servers
Installs Docker on them
Configures Docker client to communicate with them
In beta
https://github.com/docker/machine
27. Docker Collaborations
These are just some of the integrations:
• Google Compute Engine & Kubernetes
• IBM Containers
• Fedora Container & Docker Support
• Openstack & Docker
• Rackspace & Docker
• Red Hat (Project Atomic)
• VMware & Pivotal
• Microsoft Azure
29. Container Vendors 1
Vagrant Linux, Mac
& Windows
Manages virtual dev environments by
wrapping virtualization & configuration.
LXD
Ubuntu
Linux Provides a container-based hypervisor for
creating and managing container clusters.
Project Atomic
Red Hat
Linux A direct competitor to Docker, focusing
initially on the Red Hat distros. Additionally
supporting large-scale cluster support.
EC2 Container Service
Amazon
Linux Docker container support in an AWS EC2
context.
Flockport
Startup
Linux Very small, recent startup in direct
competitiion with Docker.
30. Container Vendors 2
Kubernetes
Google
Linux Provides large-scale cluster management
for Docker Containers.
Shipyard
Startup
Linux Provides a management console for
Docker Containers.
Tutum
Startup
Linux Provides cloud-based support for setup
and management of dev environments to
many different cloud providers.
Rocket
CoreOS
CoreOS Provides container support for CoreOS
which is a fork of ChromeOS. VERY
immature product.
Spoon
Xenocode
Windows Provides container-like support for
Windows. Meanwhile, Microsoft may build
in LXC-type support into Windows...
Docker Swarm Linux Provides large-scale cluster management
for Docker Containers. In beta.
31. Vagrant
•What is it?
Vagrant is computer software for creating and configuring virtual development
environments. It can be seen as a wrapper around virtualization software such as VirtualBox,
KVM, VMware and around configuration management software such as Ansible, Chef, Salt
or Puppet.
Wikipedia.org
•Since?
•2012. Current Release: 1.6.5 (9/4/2014)
•Open Source?
•Yes. MIT License
•On Github: https://github.com/mitchellh/vagrant
•Runs on?
•Windows, MacOS & Linux
•Cloud & Virtualization Ready?
•VirtualBox, VMware, AWS, OpenStack.
•Compatible with Docker.
•Requirements?
•Ruby 2.0 and LXC or libvert
•Resources?
•Website: https://www.vagrantup.com
•Repository: https://atlas.hashicorp.com/boxes/search
32. LXD: “The Linux Container Daemon”
•What is it?
LXD, pronounced Lex-Dee, is a container-based hypervisor sponsored by Canonical, the
company that supports Ubuntu Linux. It provides a way to manage containers, via a REST
API and a CLI.
Tycho Anderson (Canonical) at Linux.conf.au 2015 Auckland, New Zealand
•Since?
•Announced at Paris OpenStack Summit 2014 (November)
•0.1 release January 2015, container management only
•Open Source?
•Yes. Apache 2.0 License.
•On Github: https://github.com/lxc/lxd
•Runs?
•Linux distros under Ubuntu. No Windows. No Mac.
•Cloud & Virtualization Ready?
•OpenStack. Compatible with Docker.
•Requirements?
•Golang 3.0+ and LXC
•Resources?
•Website: http://www.ubuntu.com/cloud/tools/lxd
33. Project Atomic
•What is it?
Platform for rolling out Docker-based containizered apps. Supports atomic upgrades and
rollbacks. Web-based Cockpit provides storage, services and logging control, plus ability to
browse and inspect images and containers. Integrates with Kubernetes.
Project Atomic Website
•Since?
•Announced last year at Red Hat Summit
•Included in Fedora 21 (12/9/2014)
•Open Source?
•Yes. GPL 2 License.
•On Github: https://github.com/projectatomic/atomic-site/
•Runs?
•Fedora (now) and Centos & RHEL (later).
•Cloud & Virtualization Ready?
•Compatible with Docker.
•Requirements?
•Virtual Machine Manager (virt-manager) for Linux
•VirtualBox for Windows & Mac OS X
•Resources?
•Website: http://www.projectatomic.io/
34. Amazon EC2 Container Service
•What is it?
Amazon EC2 Container Service is a highly scalable, high performance container
management service that supports Docker containers and allows you to easily run
distributed applications on a managed cluster of Amazon EC2 instances.
Amazon EC2 Container Service website
•Since?
•Currently in Preview mode
•Open Source?
•No.
•Runs?
•EC2 Instances
•Cloud & Virtualization Ready?
•Compatible with Docker.
•Requirements?
•Amazon EC2 Instances
•Resources?
•Website: http://aws.amazon.com/ecs/
35. Flockport
•What is it?
Flockport provides web stacks and application in LXC containers that can be deployed on
any Linux server or VM in seconds. Looks like a direct competitor to Docker. Very small
company.
Flockport FAQs
•Since?
•Startup. September 9, 2014.
•Open Source?
•??? No information on their website or in any articles.
•Runs?
•Any Linux that supports LXC
•Cloud & Virtualization Ready?
•They “...will shortly enable users to deploy Flockport containers
directly to a number of public clouds directly from
Flockport.com...”
•Support for KVM for local work
•Requirements?
•Container Hub: http://www.flockport.com/containers/
•Resources?
•Website: http://www.flockport.com/
36. Kubernetes
•What is it?
Kubernetes is an open source container cluster manager. It schedules any number of container replicas
across a group of node instances. A master instance exposes the Kubernetes API, through which tasks are
defined. Kubernetes spawns containers on nodes to handle the defined tasks. The number and type of
containers can be dynamically modified according to need. An agent (a kubelet) on each node
instance monitors containers and restarts them if necessary. Kubernetes is optimized for Google Cloud
Platform, but can run on any physical or virtual machine..
Kubernetes project website
•Since?
•June 1, 2014.
•Open Source?
•Yes. Apache 2.0 License.
•Github repo:
https://github.com/googlecloudplatform/kubernetes
•Runs?
•Docker Images
•Cloud & Virtualization Ready?
•Yes.
•Requirements?
•Hosting: Google Cloud Platform, Digital Ocean
•Resources?
•Website: http://kubernetes.io/
37. Shipyard
•What is it?
Built on the Docker cluster management toolkit Citadel, Shipyard gives you the ability to
manage Docker resources including containers, hosts and more. Shipyard differs from other
management applications in that it promotes composability. Using "Extension Images" you
can add functionality such as application routing and load balancing, centralized logging,
deployment and more.
Shipyard Project website
•Since?
•June 2013
•Open Source?
•Yes. Apache 2.0 License.
•Github site: https://github.com/shipyard/shipyard
•Runs?
•Standard Docker Containers
•Cloud & Virtualization Ready?
•Uses Citadel for scheduling containers on a Docker cluster.
•Requirements?
•Golang 1.3+
•Resources?
•Website: http://shipyard-project.com/
38. Tutum
•What is it?
Web-hosted Docker container support. Build Docker compatible images and deploy the
containers to any cloud provider.
Tutum website
•Since?
•In beta.
•Open Source?
•No. Proprietary.
•Runs?
•Docker-compatible containers
•Cloud & Virtualization Ready?
•Yes.
•Requirements?
•Tutum Private Registry – requires account creation.
•Resources?
•Website: https://www.tutum.co
39. Rocket
•What is it?
Part of the CoreOS platform. CoreOS is a fork of ChromeOS. Partners with Pivotal. Direct
competitor with Docker but very immature product. Different philosophy from Docker: focus
on core container management, not on creating a full container platform.
CoreOS is building a container runtime, Rocket (12/1/2014)
•Since?
•Prototype version currently on Github
•Open Source?
•Yes. Apache 2.0 License.
•Github: https://github.com/coreos/rocket
•Runs?
•On CoreOS
•Cloud & Virtualization Ready?
•Direct competitor of Docker.
•Run CoreOS instances on Amazon AWS, Google or Rackspace
now.
•Requirements?
•Run Linux distros later...
•Resources?
•Website: https://github.com/coreos/rocket
40. Spoon
•What is it?
Container support in Windows. Uses Spoon VM instead of LXC. Hosts a component
repository.
What is Spoon?
•Since?
•Xenocode (2006-2010), then rebranded to Spoon in 2010.
•Open Source?
•No. Proprietary.
•Runs?
•Windows containers
•Cloud & Virtualization Ready?
•Docker and Spoon operate on different platforms (Linux vs.
Windows).
•Requirements?
•Windows
•Spoon.net Hub: https://spoon.net/hub
•Third-party Hub: http://turbo.net
•Resources?
•Website: https://spoon.net/