The document discusses using Docker and configuration management tools like Ansible and Chef together. It provides examples of building Docker images from code using tools like SBT and Maven. It also describes using Ansible playbooks and Chef recipes to automate pulling, running and managing Docker containers. Configuration files and credentials can be handled securely. Overall, the document shows how Docker and configuration management can be integrated to provide an automated and flexible deployment pipeline.
Deploying an application with Chef and DockerDaniel Ku
Docker 캐주얼 토크 #1 (2014-10-15)에서 발표하기 위해 만든 자료.
원래 'Docker 실서비스 도입기'를 발표하려고 했으나, 아직 도입이 마무리되지 못한 관계로 그 과정에서 의미 있는 부분을 찾아보았다.
그래서 Chef와 Docker가 도입되면 StudyGPS에서 어플리케이션을 업데이트하는 기존의 방식이 어떻게 변화하는지에 대해 설명하고, 그 변화의 의미에 대해서 생각해보고 정리하였다.
We created a Redis container from the Redis image and ran it in detached mode. We then ran another container interactively to connect to the Redis server using the host IP and exposed port. Docker creates containers with isolated filesystems, network stacks, and process spaces from images. When a container starts, Docker joins the container process to the necessary namespaces to isolate it and sets up the network and filesystem.
Docker allows wrapping software in containers that contain everything needed to run. Images are templates for containers. This document discusses using Docker to set up a Django project with linked Django and database containers. It provides an overview of the development process, which includes creating Dockerfiles and docker-compose files to build images for the Django and database containers. Useful Docker commands are also listed.
This document introduces Docker. It discusses that Docker is an abstraction layer for Linux containers that provides lightweight virtualization. Key Docker concepts are explained such as images, containers, volumes, and Dockerfiles which are used to build images. Examples of using Dockerfiles, running containers, and sharing files between the host and containers are provided. Tips are given such as using containers for build processes and monitoring.
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 overview of Docker fundamentals, including an introduction to Docker and containerization, how to install Docker on various platforms, and how to use basic Docker commands to run containers from images. It covers topics such as Docker architecture, images vs containers, managing containers, networking, Docker Compose, and how Docker is implemented using Linux kernel features like namespaces and cgroups.
My talk from Dockercon EU in Amsterdam, Dec 2014. Original abstract:
The ModCloth Platform team has been building a Docker-based continuous delivery pipeline. This presentation discusses that project and how we build containers at ModCloth. The topics include what goes into our containers; how to optimize builds to use the Docker build cache effectively; useful development workflows (including using fig); and the key decision to treat containers as processes instead of mini-vms. This presentation will also discuss (and demo!) the workflow we’ve adopted for building containers and how we’ve integrated container builds with our CI.
Deploying an application with Chef and DockerDaniel Ku
Docker 캐주얼 토크 #1 (2014-10-15)에서 발표하기 위해 만든 자료.
원래 'Docker 실서비스 도입기'를 발표하려고 했으나, 아직 도입이 마무리되지 못한 관계로 그 과정에서 의미 있는 부분을 찾아보았다.
그래서 Chef와 Docker가 도입되면 StudyGPS에서 어플리케이션을 업데이트하는 기존의 방식이 어떻게 변화하는지에 대해 설명하고, 그 변화의 의미에 대해서 생각해보고 정리하였다.
We created a Redis container from the Redis image and ran it in detached mode. We then ran another container interactively to connect to the Redis server using the host IP and exposed port. Docker creates containers with isolated filesystems, network stacks, and process spaces from images. When a container starts, Docker joins the container process to the necessary namespaces to isolate it and sets up the network and filesystem.
Docker allows wrapping software in containers that contain everything needed to run. Images are templates for containers. This document discusses using Docker to set up a Django project with linked Django and database containers. It provides an overview of the development process, which includes creating Dockerfiles and docker-compose files to build images for the Django and database containers. Useful Docker commands are also listed.
This document introduces Docker. It discusses that Docker is an abstraction layer for Linux containers that provides lightweight virtualization. Key Docker concepts are explained such as images, containers, volumes, and Dockerfiles which are used to build images. Examples of using Dockerfiles, running containers, and sharing files between the host and containers are provided. Tips are given such as using containers for build processes and monitoring.
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 overview of Docker fundamentals, including an introduction to Docker and containerization, how to install Docker on various platforms, and how to use basic Docker commands to run containers from images. It covers topics such as Docker architecture, images vs containers, managing containers, networking, Docker Compose, and how Docker is implemented using Linux kernel features like namespaces and cgroups.
My talk from Dockercon EU in Amsterdam, Dec 2014. Original abstract:
The ModCloth Platform team has been building a Docker-based continuous delivery pipeline. This presentation discusses that project and how we build containers at ModCloth. The topics include what goes into our containers; how to optimize builds to use the Docker build cache effectively; useful development workflows (including using fig); and the key decision to treat containers as processes instead of mini-vms. This presentation will also discuss (and demo!) the workflow we’ve adopted for building containers and how we’ve integrated container builds with our CI.
This document summarizes a Docker workshop that covers:
1. Running Docker containers, including starting containers interactively or detached, checking statuses, port forwarding, linking containers, and mounting volumes.
2. Building Docker images, including committing existing containers or building from a Dockerfile, and using Docker build context.
3. The official Docker Hub for finding and using common Docker images like Redis, MySQL, and Jenkins. It also covers tagging and pushing images to private Docker registries.
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.
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.
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 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.
Ship your Scala code often and easy with DockerMarcus Lönnberg
This document discusses how to build and ship Scala code using Docker containers. It introduces Docker and shows how to define Dockerfiles and build Docker images from sbt projects using the sbt-docker and sbt-assembly plugins. It also demonstrates how to manage Docker containers from Scala code and how Docker can be used to automate build and deployment pipelines.
The document provides an overview of getting started with Docker. It discusses what Docker is, how containerization differs from virtualization, and how to install Docker. It covers building Docker images using Dockerfiles, the difference between images and containers, and common Docker commands. The document also compares traditional deployment workflows to those using Docker, demonstrating how Docker can help ensure consistency across environments.
The document discusses deploying OpenStack using Kolla, Kolla-Ansible, Kayobe and Tenks. It introduces these tools and provides steps to deploy a containerized OpenStack cluster on bare metal hosts, including defining the control plane instances with Tenks, inspecting and provisioning them with Kayobe, deploying and configuring OpenStack services with Kolla-Ansible, and booting a VM instance. It also demonstrates reconfiguring the cluster to add centralized logging and describes accessing the Kibana UI.
Puppet is automation software that helps system administrators manage infrastructure by automating provisioning, configuration, and other repetitive tasks. It ensures consistency and stability. Puppet consists of a Puppet Master and Puppet Agents. Vagrant provides a way to easily create and configure virtual development environments using configuration files and automation (e.g. Puppet). It uses Oracle VirtualBox and allows specifying and provisioning resources. Benefits include consistent environments for development, testing, and teams.
The document provides instructions for installing Docker and Rally on Ubuntu Trusty 14.04. It includes adding Docker repositories, installing Docker, verifying the Docker installation, installing Rally within a Docker container, and setting up a Rally directory. Proxy configuration steps are also outlined for accessing repositories through a proxy server.
This document provides an introduction to Docker and includes instructions for several exercises to help users learn Docker in 90 minutes. The document covers downloading and running Docker containers, creating Docker images, understanding Docker layers, exposing container ports, using Dockerfiles to build images, and sharing images in Docker repositories. The exercises guide users through hands-on experience with common Docker commands and concepts.
Title: Introduction to Docker
Abstract:
During the year since it’s inception, Docker have changed our perception of the OS-level Virtualization also called Containers.
At this workshop we will introduce the concept of Linux containers in general and Docker specifically. We will guide the participants through a practical exercise that will include use of various Docker commands and a setting up a functional Wordpress/MySQL system running in two containers and communication with each other using Serf
Topics:
Docker Installation (in case is missing)
Boot2Docker
Docker commands
- basic commands
- different types of containers
- Dockerfiles
Serf
Wordpress Exercise
- setting up Serf cluster
- deploying MySQL
- deploying Wordpress and connecting to MySQL
Prerequisites:
Working installation of Docker
On Mac - https://docs.docker.com/installation/mac/
On Windows - https://docs.docker.com/installation/windows/
Other Platforms - https://docs.docker.com/installation/#installation
- 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.
Puppet is a configuration automation platform that simplifies system administration tasks. It uses a client/server model where agent nodes pull configuration profiles from the Puppet master. Modules on the master describe the desired system configuration. Puppet translates modules into code and configures agent servers as needed. Puppet can manage infrastructure across multiple servers.
Docker Compose to Production with Docker SwarmMario IC
The document discusses Docker Compose and Docker Swarm. It provides an overview of Docker Compose, how to deploy Docker Compose in production including removing volume bindings and changing ports. It then discusses Docker Swarm, including key concepts like nodes, services, tasks, global and replicated modes. It demonstrates deploying a sample Compose file to a Swarm cluster and managing nodes, stacks, services.
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.
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05dotCloud
This document provides an overview of Dockerfile basics including common instructions like FROM, RUN, ENTRYPOINT, EXPOSE and USER. It explains that Dockerfiles define how to build images in a simple syntax. Key points covered include using FROM to set the base image, RUN to execute commands, and ENTRYPOINT to trigger commands when a container starts. The document concludes with an exercise to build a Memcached Dockerfile and test it.
This document discusses adopting Docker at FieldAware. It begins by providing a brief overview of Docker, including how it was created and how it differs from virtual machines. It then demonstrates how to build Docker images using Dockerfiles, pull images from Docker Hub, and run containers. Finally, it proposes a roadmap for adopting Docker at FieldAware, including using it for performance testing, developing and testing projects, provisioning with configuration tools, and integrating it into the CI/CD pipeline.
This document discusses Docker and provides an overview of key Docker concepts. It defines Docker as a software container management platform. It describes images as templates for containers, and containers as running processes that are created from images. It also discusses the Docker workflow which involves building images, running containers, committing changes, and pushing images to a registry. The document uses examples of developing and deploying PHP web applications to illustrate how Docker can help manage environments and software versions.
Introduction to Microservices by Jim Tran, Principal Solutions Architect, AWSAmazon Web Services
This document discusses architecting microservices on AWS. It begins by outlining challenges with monolithic software architectures like long build/test/release cycles and difficulty scaling. It then introduces microservices as a way to decompose applications into independently deployable services. Key principles for microservices include having services communicate over APIs, using the right data store for each service's needs, securing services through defense-in-depth, and collaborating as good ecosystem citizens. The document provides examples of implementing a sample restaurant microservice on AWS using Lambda, API Gateway, DynamoDB, and other services. It emphasizes that microservices require not just technical changes but organizational transformation as well.
Este documento presenta una introducción a Docker. Explica conceptos clave como contenedores, imágenes y registros. Detalla los comandos básicos de Docker como docker run, docker build y docker pull. También cubre temas como la creación de imágenes, el uso de volúmenes, la vinculación de contenedores y la orquestación con Kubernetes. Finalmente, explora cómo Docker puede usarse para implementar microservicios y facilitar la integración continua.
This document summarizes a Docker workshop that covers:
1. Running Docker containers, including starting containers interactively or detached, checking statuses, port forwarding, linking containers, and mounting volumes.
2. Building Docker images, including committing existing containers or building from a Dockerfile, and using Docker build context.
3. The official Docker Hub for finding and using common Docker images like Redis, MySQL, and Jenkins. It also covers tagging and pushing images to private Docker registries.
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.
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.
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 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.
Ship your Scala code often and easy with DockerMarcus Lönnberg
This document discusses how to build and ship Scala code using Docker containers. It introduces Docker and shows how to define Dockerfiles and build Docker images from sbt projects using the sbt-docker and sbt-assembly plugins. It also demonstrates how to manage Docker containers from Scala code and how Docker can be used to automate build and deployment pipelines.
The document provides an overview of getting started with Docker. It discusses what Docker is, how containerization differs from virtualization, and how to install Docker. It covers building Docker images using Dockerfiles, the difference between images and containers, and common Docker commands. The document also compares traditional deployment workflows to those using Docker, demonstrating how Docker can help ensure consistency across environments.
The document discusses deploying OpenStack using Kolla, Kolla-Ansible, Kayobe and Tenks. It introduces these tools and provides steps to deploy a containerized OpenStack cluster on bare metal hosts, including defining the control plane instances with Tenks, inspecting and provisioning them with Kayobe, deploying and configuring OpenStack services with Kolla-Ansible, and booting a VM instance. It also demonstrates reconfiguring the cluster to add centralized logging and describes accessing the Kibana UI.
Puppet is automation software that helps system administrators manage infrastructure by automating provisioning, configuration, and other repetitive tasks. It ensures consistency and stability. Puppet consists of a Puppet Master and Puppet Agents. Vagrant provides a way to easily create and configure virtual development environments using configuration files and automation (e.g. Puppet). It uses Oracle VirtualBox and allows specifying and provisioning resources. Benefits include consistent environments for development, testing, and teams.
The document provides instructions for installing Docker and Rally on Ubuntu Trusty 14.04. It includes adding Docker repositories, installing Docker, verifying the Docker installation, installing Rally within a Docker container, and setting up a Rally directory. Proxy configuration steps are also outlined for accessing repositories through a proxy server.
This document provides an introduction to Docker and includes instructions for several exercises to help users learn Docker in 90 minutes. The document covers downloading and running Docker containers, creating Docker images, understanding Docker layers, exposing container ports, using Dockerfiles to build images, and sharing images in Docker repositories. The exercises guide users through hands-on experience with common Docker commands and concepts.
Title: Introduction to Docker
Abstract:
During the year since it’s inception, Docker have changed our perception of the OS-level Virtualization also called Containers.
At this workshop we will introduce the concept of Linux containers in general and Docker specifically. We will guide the participants through a practical exercise that will include use of various Docker commands and a setting up a functional Wordpress/MySQL system running in two containers and communication with each other using Serf
Topics:
Docker Installation (in case is missing)
Boot2Docker
Docker commands
- basic commands
- different types of containers
- Dockerfiles
Serf
Wordpress Exercise
- setting up Serf cluster
- deploying MySQL
- deploying Wordpress and connecting to MySQL
Prerequisites:
Working installation of Docker
On Mac - https://docs.docker.com/installation/mac/
On Windows - https://docs.docker.com/installation/windows/
Other Platforms - https://docs.docker.com/installation/#installation
- 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.
Puppet is a configuration automation platform that simplifies system administration tasks. It uses a client/server model where agent nodes pull configuration profiles from the Puppet master. Modules on the master describe the desired system configuration. Puppet translates modules into code and configures agent servers as needed. Puppet can manage infrastructure across multiple servers.
Docker Compose to Production with Docker SwarmMario IC
The document discusses Docker Compose and Docker Swarm. It provides an overview of Docker Compose, how to deploy Docker Compose in production including removing volume bindings and changing ports. It then discusses Docker Swarm, including key concepts like nodes, services, tasks, global and replicated modes. It demonstrates deploying a sample Compose file to a Swarm cluster and managing nodes, stacks, services.
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.
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05dotCloud
This document provides an overview of Dockerfile basics including common instructions like FROM, RUN, ENTRYPOINT, EXPOSE and USER. It explains that Dockerfiles define how to build images in a simple syntax. Key points covered include using FROM to set the base image, RUN to execute commands, and ENTRYPOINT to trigger commands when a container starts. The document concludes with an exercise to build a Memcached Dockerfile and test it.
This document discusses adopting Docker at FieldAware. It begins by providing a brief overview of Docker, including how it was created and how it differs from virtual machines. It then demonstrates how to build Docker images using Dockerfiles, pull images from Docker Hub, and run containers. Finally, it proposes a roadmap for adopting Docker at FieldAware, including using it for performance testing, developing and testing projects, provisioning with configuration tools, and integrating it into the CI/CD pipeline.
This document discusses Docker and provides an overview of key Docker concepts. It defines Docker as a software container management platform. It describes images as templates for containers, and containers as running processes that are created from images. It also discusses the Docker workflow which involves building images, running containers, committing changes, and pushing images to a registry. The document uses examples of developing and deploying PHP web applications to illustrate how Docker can help manage environments and software versions.
Introduction to Microservices by Jim Tran, Principal Solutions Architect, AWSAmazon Web Services
This document discusses architecting microservices on AWS. It begins by outlining challenges with monolithic software architectures like long build/test/release cycles and difficulty scaling. It then introduces microservices as a way to decompose applications into independently deployable services. Key principles for microservices include having services communicate over APIs, using the right data store for each service's needs, securing services through defense-in-depth, and collaborating as good ecosystem citizens. The document provides examples of implementing a sample restaurant microservice on AWS using Lambda, API Gateway, DynamoDB, and other services. It emphasizes that microservices require not just technical changes but organizational transformation as well.
Este documento presenta una introducción a Docker. Explica conceptos clave como contenedores, imágenes y registros. Detalla los comandos básicos de Docker como docker run, docker build y docker pull. También cubre temas como la creación de imágenes, el uso de volúmenes, la vinculación de contenedores y la orquestación con Kubernetes. Finalmente, explora cómo Docker puede usarse para implementar microservicios y facilitar la integración continua.
Microservices architecture is a method of developing software applications as a suite of independently deployable, small, modular services. Learn how to leverage the security and automation of the Amazon Web Services platform, to build, maintain and operate a microservices environment.
Speaker: Adam Lynch, Sr. Technical Account Manager, Amazon Web Services
Fred George describes his personal journey discovering microservice architecture over 15 years working on large software projects. He details how his projects evolved from monolithic 1 million line applications to small, independent services. This allowed for improved agility, with services being short-lived and able to deploy several times a day. George also discusses challenges faced and lessons learned around loosely coupling services, managing data across services, and establishing practices for a "living software" system with continuous deployment of services.
Just about all of my current technical content in one 364 slide mega-deck. Source files at https://github.com/adrianco/slides
Sections on:
Scene Setting
State of the Cloud
What Changes?
Product Processes
Microservices
State of the Art
Segmentation
What’s Missing?
Monitoring
Challenges
Migration
Response Times
Serverless
Lock-In
Teraservices
Wrap-Up
DevOps and Continuous Delivery reference architectures for DockerSonatype
This document provides links to blogs and presentations about DevOps and Continuous Delivery practices using Docker from various sources. It includes over 25 references to external resources on topics like Docker Universal Control Plane, Continuous Delivery, clustering Jenkins, Docker introductions, monitoring deployments, Docker in build pipelines, and deploying containers to IBM Bluemix. The document promotes a one-day DevOps conference and offers a free private Docker registry and to share additional Docker reference architectures.
A Gentle Introduction To Docker And All Things ContainersJérôme Petazzoni
Docker is a runtime for Linux Containers. It enables "separation of concern" between devs and ops, and solves the "matrix from hell" of software deployment. This presentation explains it all! It also explains the role of the storage backend and compares the various backends available. It gives multiple recipes to build Docker images, including integration with configuration management software like Chef, Puppet, Salt, Ansible. If you already watched other Docker presentations, this is an actualized version (as of mid-November 2013) of the thing!
The document outlines 10 best practices for managing identity and access management (IAM) on AWS: 1) Create individual users, 2) Configure a strong password policy, 3) Rotate security credentials regularly, 4) Enable multi-factor authentication for privileged users, 5) Manage permissions with groups, 6) Grant least privilege, 7) Use IAM roles to share access, 8) Use IAM roles for Amazon EC2 instances, 9) Enable AWS CloudTrail for auditing API calls, and 10) Reduce or remove use of the root account. The document provides explanations and examples for implementing each best practice.
Configuration management tools like Chef, Puppet, and Ansible aim to reduce inconsistencies by imposing and managing consistent configurations across environments. However, they do not fully address issues related to dependencies, isolation, and portability. Docker containers build on these tools by adding standard interfaces and a lightweight virtualization layer that encapsulates code and dependencies, allowing applications and their environments to be packaged together and run consistently on any infrastructure while also providing isolation.
Keynote at Dockercon Europe Amsterdam Dec 4th, 2014.
Speeding up development with Docker.
Summary of some interesting web scale microservice architectures.
Please send me updates and corrections to the architecture summaries @adrianco
Thanks Adrian
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.
面對日新月異的大數據工具,有時候很難跟上這節奏。有鑑於此,Amazon Web Services提供了廣泛而完善的雲端運算服務組合,幫助您構建、維護和部署大數據應用程式。
這場線上研討會,將為各位深入淺出介紹AWS 雲端平台提供的各種大數據選項,包括現正流行的大數據框架,如Hadoop、Spark、NoSQL數據庫等,同時透過使用案例來瞭解最佳實踐方式。最後,您將了解如何應用這些工具服務,將大數據導入您的現實應用程式中。
This document provides an introduction to microservices. It begins by outlining the challenges of monolithic architecture such as long build/release cycles and difficulty scaling. It then introduces microservices as a way to decompose monolithic applications into independently deployable services. Key benefits of microservices include improved agility, scalability, and innovation. The document discusses microservice design principles like communicating over APIs, using the right tools for each service, securing services, and being a good citizen in the ecosystem. It provides examples of how to implement a restaurant microservice using AWS services like API Gateway, Lambda, DynamoDB and containers.
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.
This document provides an introduction to Docker. It discusses why Docker is useful for isolation, being lightweight, simplicity, workflow, and community. It describes the Docker engine, daemon, and CLI. It explains how Docker Hub provides image storage and automated builds. It outlines the Docker installation process and common workflows like finding images, pulling, running, stopping, and removing containers and images. It promotes Docker for building local images and using host volumes.
Mukta Aphale presented at ChefConf 2015. She discussed her background transitioning from developer to DevOps architect. She contributed to Chef development and created several Chef knife plugins. Aphale also discussed using Docker and Chef together to automate container management and deployment. She showed how to build a Docker image using Chef recipes and push it to a registry for deployment using Chef push jobs.
Docker has changed the way Configuration Management is done. And Chef can be Docker's best friend to bake your favorite Config!
This session will cover -
- Using chef containers
- Managing docker images using Chef
- Using Chef push jobs to run docker containers on nodes
- And most importantly - why Chef is needed to manage dockers and why it all cannot be done with "simple" docker files!
https://youtu.be/5NiJ03r8h9E
This document provides instructions for various Docker commands:
- It shows how to pull images from Docker Hub, run containers, view images and containers, manage images and containers, copy files between host and containers, set environment variables, and more. Examples are given for each command along with explanations of switches and options.
Docker provides a new, powerful way of prototyping, testing and deploying applications on cloud-based infrastructures. In this seminar we delve into the concept of Docker containers without requiring any previous knowledge from the audience.
Использование Docker в CI / Александр Акбашев (HERE Technologies)Ontico
РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 6 июня, 17:00
Тезисы:
http://rootconf.ru/2017/abstracts/2504.html
В своём докладе я расскажу о том, почему мы решили использовать Docker в рамках Continuous Integration: ускорить тесты, повысить стабильность, улучшить контроль над окружением и используемыми библиотеками.
Доклад так же содержит подробности о многих сложностях, с которыми пришлось столкнуться в ходе миграции на Docker: борьба с растущим числом и размером образов, бесконтрольные обновления образов, нестабильное поведение, и другие.
В конце доклада я покажу, как именно мы следим за стабильностью Docker в нашей инфраструктуре. И насколько Docker стабилен на больших объемах (больше 100k билдов в сутки).
Docker and Puppet for Continuous IntegrationGiacomo Vacca
Today developers want to change the code, build and deploy often, even several times per day.
New versions of software may need to be tested on different distributions, and with different configurations.
Achieving this with Virtual Machines it’s possible, but it’s very resource and time consuming. Docker provides an incredibly good solution for this, in particular if combined with Continuous Integration tools like Jenkins and Configuration Management tools like Puppet.
This presentation focuses on the opportunities to configure automatically Docker images, use Docker containers as disposable workers during your tests, and even running your Continuous Integration system inside Docker.
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 summarizes Dockerizing a Django application. It describes the speakers' experiences moving from a non-Dockerized setup with many issues, like outdated images and long recovery times, to a Dockerized setup with improved scalability, documentation, and development workflows. Key aspects of the new setup include using Docker Compose to run multiple services, Docker Machine to provision environments, and Docker Swarm for production deployments across multiple instances.
This document provides instructions for installing Docker and Docker Compose on Linux Mint 19 and introduces some basic Docker commands. It then demonstrates using Docker Compose to set up a simple PHP project with an Nginx web server and MySQL database container. The document concludes by explaining how to work with Docker Hub, including logging in, checking image tags, and pushing your own images.
This document provides an agenda for a one-day Docker introduction workshop. It includes an introduction to Docker tools and concepts like containers vs VMs, the Docker ecosystem and tools, Linux and Docker command line usage, Docker Engine, Docker Hub, Docker images, networking and volumes. It also covers deploying Docker images to Azure PaaS, Docker Compose, building ARM images on x86 machines, and a TensorFlow demo. The workshop aims to provide attendees with foundational Docker knowledge and hands-on experience through examples and exercises.
Running Docker in Development & Production (DevSum 2015)Ben Hall
This document provides an overview of Docker containers and how to use Docker for development and production environments. It discusses Docker concepts like images, containers, and Dockerfiles. It also demonstrates how to build images, run containers, link containers, manage ports, and use Docker Compose. The document shows how Docker can be used to develop applications using technologies like ASP.NET, Node.js, and Go. It also covers testing, deploying to production, and optimizing containers for production.
The document discusses setting up Docker Toolbox and creating a Docker machine to run Docker containers. It provides steps to install Docker Toolbox, create a Docker machine, set environment variables, create a Docker network, start Docker Compose, and generate SSL certificates. It also discusses using Jenkins Job DSL plugins to generate Jenkins jobs for building, deploying, and managing a sample project with Docker containers.
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.
This document provides an introduction to Docker and containerization. It covers:
1. The differences between virtual machines and containers, and the container lifecycle.
2. An overview of the Docker ecosystem tools.
3. Instructions for installing and using the Docker Engine and Docker CLI to build, run, and manage containers.
4. A demonstration of using Docker Hub to build and store container images.
5. An introduction to Docker networking and volumes.
6. A demonstration of using Docker Compose to define and run multi-container applications.
7. Suggestions for further learning resources about Docker.
This document discusses Docker integration with OpenStack. It summarizes that the Docker driver for Nova was accepted in Havana, the Docker plugin for Heat was accepted for Icehouse, and Docker support was added to Devstack. It also discusses running the Tempest test suite in a Docker container to test an OpenStack install provisioned by Devstack. The document provides examples of building a Docker image containing Devstack and running it, as well as applying Heat orchestration to launch a compute instance and Docker container.
This document summarizes a Docker workshop discussing how to set up and use a private Docker registry. It outlines the differences between an index and a registry, and provides instructions for installing a local private registry using Docker or by manually installing dependencies. It then demonstrates how to tag and push images to the private registry, and shows a zero downtime deployment process using the local registry to seamlessly update a running application.
The document discusses setting up Docker and DevOps tools. It describes installing Docker Toolbox, creating a docker machine, setting environment variables, creating a network, starting docker-compose, generating SSL certificates, and accessing the Docker host URL. It also discusses creating a Jenkins job to generate other jobs for building, deploying, and monitoring a project from a Git repository using a Groovy script and the Job DSL plugin. References for the Job DSL plugin and scripting are provided.
Today Docker is like our lifeline, its the de-facto. In the world full of docker, you would most likely be running your Jenkins in Docker and then you would want to build your app which is also dockerized. And thats when you realise - life is not simple :) This talk will cover what is Docker in docker? Why is it a challenge? The talk will talk about how docker-in-docker is helpful in running your CI and how to address the challenges in doing so.
Demo of how to dockerise and deploy your microservices application to the test environment, how to run selenium tests inside docker and how to put this all together to integrate your tests in your CI/CD pipeline using Jenkins.
Presented at ATA GTR 2016 in Pune.
This document discusses using Chef to manage Docker containers. It begins with introducing the speaker and their background in DevOps. It then provides an overview of Docker and how it compares to virtual machines. The rest of the document discusses how Chef can be used to build Docker images, manage Docker containers running on nodes, and provide a simple continuous delivery pipeline for Docker applications using Chef and tools like Jenkins. It also discusses challenges like managing configuration and credentials in containers and provides an example of using the docker Chef cookbook to build, push, and run Docker containers in different environments.
WhiteHedge Technologies is a global company with over 100 employees that provides agile product development and DevOps services. It discusses how traditional IT models are not designed for today's business needs and how DevOps can help through improved communication, collaboration, and integration between development and operations. DevOps allows for more frequent releases, improved quality, and better cooperation compared to traditional models. The document provides an overview of DevOps benefits and describes how DevOps is not just about automation or increased deployments but enabling continuous improvement and efficient delivery of production-ready code.
Application monitoring is being talked about a lot these days and it helps provide key information that is helpful in developing better software and also in taking some key business decision. Datadog offers monitoring as a service.
Continuous Testing using Shippable and DockerMukta Aphale
While setting up continuous delivery for your product, one of the biggest challenge is to implement continuous testing. We are gradually moving away from manual testing to automation. But how do we integrate the automated tests into your system? How to run integration tests everyday considering that the test environment can get polluted with failed tests? Docker is a type of a virtualisation platform, a container. Shippable is a hosted cloud platform that provides hosted continuous integration, deployment, and testing to GitHub and Bitbucket repositories.
The document discusses how concepts from manufacturing such as car assembly lines and testing can be applied to software development using DevOps. It provides an overview of fundamental DevOps concepts like version control, continuous integration, continuous delivery, configuration management, artifact management, monitoring and how automating these can help build software more efficiently similar to how manufacturing uses automation. It also outlines an assignment to set up a basic CI/CD pipeline from source code to deployment to get hands-on experience with DevOps tools and processes.
Being a mother in the technology world is not an easy game. :) The speaker, a DevOps Architect, wants to talk about how you can manage a wonderful motherhood with an awesome career. She is a mother of two and is but an ordinary woman who has been able to manage being both: MomOps and DevOps! She wants to encourage more women to pursue their passion for technology even after having kids.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
7. CHALLENGES
• Docker based CI server (Travis-CI)
• Tight coupling with build tool
• Base Image
• Monitoring
• Debugging
• Handling configuration for various environments
• Secure Credential Management
@muktaa
8. LESSONS LEARNT
• Running apps in containers is easy
• Debugging apps in containers is difficult
• You can very well run multiple services inside a docker
container
• Ah the woes of Docker networking!
• Sequential Progression
@muktaa
9. CONFIGURATION MANAGEMENT VS DOCKER
• Control the environment Vs System Image / Runtime
image
• Tradeoff between flexibility and convenience
• CM is the vein of DevOps
• Shell scripts -> Chef
• Immutable Infrastructure
@muktaa
20. DOCKER_IMAGE
# Build a docker image using docker_image
resource
docker_image node['docker']['image'] do
tag node['docker']['image']['tag']
source '/var/docker'
action :build
end
# Push the image to docker registery
docker_image node['docker']['image'] do
action :push
end
# Delete the image from the machine
docker_image node['docker']['image'] do
action :remove
end
22. GENERATE DOCKERFILE
# Generate a docker file using template.
template "#{node['docker']['directory']}/Dockerfile" do
source 'dockerfile.erb'
variables image: node['docker']['base']['image']['name'],
maintainer: @docker_cred['maintainer'],
email: docker_cred['email'],
build_cmd: node['docker']['build']['commands'],
entry_point: node['docker']['build']['entry_point']
action :create
end
23. WORKFLOW
Build
Application
• Save the Artifact to a Repository
Manager
Build Docker
Image
• Docker cookbook would build and save the
docker image
Deploy
• Docker cookbook runs the
container on the nodes
26. WHY CHEF CONTAINERS?
• Bootstrap chef-client without SSH connection
• Manage multiple services inside your
container
• Manage running state of your container
• Consistency across Architectures
• Mixed Architecture Applications
27. BEST SUITED FOR
• Transitioning traditional architecture to containers
• Handling last mile configuration when container boots
• Getting the best of two worlds without complexity
28. KNIFE CONTAINER DOCKER INIT
• Gem install knife-container
• knife container docker init NAMESPACE/IMAGE_NAME
[options]
• -f base docker image (default is ubuntu 12.04) - chef container
should be already installed on it
• -r runlist
• -z chef client local mode
• -b use berkshelf
29. EXAMPLE
$ sudo knife container docker init muktaa/hello-scala-cc
Compiling Cookbooks...
Recipe: knife_container::docker_init
* directory[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc] action create
* template[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/Dockerfile] action
create
- update content in file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/Dockerfile from none to 943017
- * template[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/.dockerignore]
action create
- create new file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/.dockerignore
- update content in file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/.dockerignore from none to e3b0c4
* directory[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef] action create
- create new directory /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef
* template[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef/client.rb] action
create
- create new file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef/client.rb
- update content in file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/client.rb from none to 7de61f
* file[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef/first-boot.json] action
create
- create new file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef/first-
boot.json
- update content in file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/first-boot.json from none to 5269ef
* template[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef/.node_name]
action create
- create new file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/.node_name
- update content in file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/.node_name from none to 4764d2
* template[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/Berksfile] action
create (skipped due to only_if)
* directory[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc/chef/secure] action
create
- create new directory /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/secure
* file[/home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/secure/validation.pem] action create
- create new file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/secure/validation.pem
- update content in file /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-
cc/chef/secure/validation.pem from none to ec1f3e
- change mode from '' to '0600'
Downloading base image: chef/ubuntu-12.04:latest. This process may take awhile...
Tagging base image chef/ubuntu-12.04 as muktaa/hello-scala-cc
Context Created: /home/ubuntu/chef-repo/dockerfiles/muktaa/hello-scala-cc
Here are the steps in detail, of how this can be done.
A sample demo project, HelloScala triggers a Travis-CI build. SBT is “scala build tool”.
Sbt docker command creates a docker image.
Muktaa/hello-scala is a repo on the docker registry where we would save the docker images.
Other build toolsl ike maven offer docker integration too.
Run the command mvn docker:build to create docker image
That’s it!
Did I hear using Chef is complex? Esp in this particular case?
That’s how the command execution looks…
We talked about docker registry which woud save docker images. Docker hub provides a hosted docker registry. The links above show 2 different repos on the docker registry. We can setup automated builds in that registry. With git push, this build can be triggered, or the build can be triggered from your CI server using the API call. However this feature is in a crude phase with very less flexibility, it takes a long time for the docker image to build.
You can setup the docker registry in your data centre too. It works very similar to the docker hub.
The docker cookbook is available in chef supermarket
Using it, you can install docker, build docker images, commit & push to docker registry, pull image and run container.
For the docker image management and deploy, the 3 LWRPs are useful.
Using lwrp docker_image to build and push the image to docker registry
Elegant and working solution
Package that provides config managemet for your containers
chef-client
Latest chef-client that runs within the container.
runit - RUNit - lightweight cross-platform init scheme to ensure all child processes are properly managed
chef-init - root process which can launch and manage multiple processes inside a container. It is custom built by chef.
Each OS has an init.
docker replaces the init of the OS. chef-init runs as PID1 and delegates managing child processes to runit.
Bootstrap the chef-client without an SSH connection
Manage multiple services inside your container
Use the knife container plugin to work with Linux containers; use the docker build and docker init arguments to manage Docker image contexts
Use chef-client resources the same way in a container as on any UNIX- or Linux-based platform
Consistency across architecgures – you don’t need different CM tools for Physical, virtual, or machines on cloud. If you have invested in Chef already which runs for you on a physical machine you leverage the same config on chef container
Mixed architecture. You might be using docker for development or test environments. But not in production. If you use chef containers for your dev & test env but physical machines on production, then it is lot easier to manage the config on each, as the config is idempotent if you use Chef for CM.
transitioning trad architecture to containers - all you need is the chef run list, it can run on bare metal, VMs or containers.
handling last mile config when container boots - registering an agent you need for monitoring maybe, or some env specific changes. e.g.: in our DEV env we read some reference data which is a truncated version of the real data while in the test env its a full blown test data. and in prod it is the real data & not the synthetic test data.
Using chef containers is not complex. You can define container configuration using chef recipies instead of long bash scripts
Chef container can be used to manage docker images. You can set certain services to launch when the container launches using the enable action of the chef resource. When chef-init starts, it can launch chef-client and you can configure which service you want to start using start action of the chef resource.
1. install knife-container gem
knife container is the only command needed to manage the docker lifecycle
2
Knife container docker init creates the docker context which comprises of docker components and chef components
To initialize the Docker context, use the init command. The knife container uses a folder called dockerfiles to organize all the Docker contexts that you manage. By default, the dockerfiles folder is created in your chef repo.
To initialize the Docker context, type the following command:
Pass in your image name (in this example,demo/apache2), a run list, a –zand a –b. The –z is for local mode and the –b says to generate a Berksfile.
Note step 2: chef-init —bootstrap (this runs the chef-client)
step 1: adds the chef dir to /etc/chef
step 0: & last tag: only 1 copy of the image, see docker images
so we created an image from ubuntu 14.04 and created image, the new image will have same tag but diff image id.