Presentato al sesto WebMeetup del Machine Learning / Data Science Meetup Roma: https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/273089965/
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
In less than two years Docker went from first line of code to major Open Source project with contributions from all the big names in IT. Everyone is excited, but what's in for me - as a Dev or Ops? In short, Docker makes creating Development, Test and even Production environments an order of magnitude simpler, faster and completely portable across both local and cloud infrastructure. We will start from Docker main concepts: how to create a Linux Container from base images, run your application in it, and version your runtimes as you would with source code, and finish with a concrete example.
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
In less than two years Docker went from first line of code to major Open Source project with contributions from all the big names in IT. Everyone is excited, but what's in for me - as a Dev or Ops? In short, Docker makes creating Development, Test and even Production environments an order of magnitude simpler, faster and completely portable across both local and cloud infrastructure. We will start from Docker main concepts: how to create a Linux Container from base images, run your application in it, and version your runtimes as you would with source code, and finish with a concrete example.
Docker and Containers are proven solutions, but are they ready to replace your current deployment? And more importantly, are you aware of the changes you'll have to make to accommodate them? Are there any risks involved? This talk will answer these questions and talk about how to plan, automate, build, deploy, and orchestrate the whole process.
Il s’agit dans un premier temps de présenter Docker, ses cas d’usage et quelques bonnes pratiques d’utilisation.
Le but est de présenter Docker, son mode de fonctionnement et son écosystème.
Ce qu’il peut apporter et les pièges à éviter
https://github.com/kanedafromparis/prez-fabric8-dmp
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
Как быстро и легко настраивать/обновлять окружения для кросскомпиляции проектов под различные платформы(на основе docker), как быстро переключаться между ними, как используя эти кирпичики организовать CI и тестирование(на основе GitLab и Docker).
In normal project work everybody will have heard the sentence: „On my local machine it worked“! The circumstances which lead to this statement are that there are usually minor inconsistencies within the setup of the different environments. Different operating systems, Java versions or installed hot fixes influent the behavior of the developed application and cause issues. This is where Docker comes in place. Docker automates the deployment of applications and isolates them inside software containers, by providing an additional layer of abstraction and automation but with out the overhead caused by a virtual machine. Ones set up, it limits the installation process to 5 minutes independent which environment. Furthermore, the same application can be reused to run on local machines, data centers or in the cloud. We will show you how we incorporated Docker in our continuous deployment process and how we facilitate it for our development and deployment chain.
Continuous Delivery di una WebApp - by exampleFabio Mora
Codemotion Rome - 27 Marzo 2015
Una feature non è completa finché non è nelle mani di chi la deve usare. Solo da lì inizia a produrre valore, sia economico o feedback. Che si tratti di master, preview o prod, con l’automazione delle build si possono evitare operazioni ripetitive, complesse, risparmiare tempo ed ottenere interessanti metriche. Tutto al fine di arrivare a poter rilasciare ogni poche ore (ogni volta che la build è verde!). Una overview di una delle 12 pratiche di Extreme Programming: continuous integration (e delivery) con gli strumenti al momento più interessanti. Esempio con una webapp in PHP.
This presentation gives a brief understanding of docker architecture, explains what docker is not, followed by a description of basic commands and explains CD/CI as an application of docker.
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.
The challenge of application distribution - Introduction to Docker (2014 dec ...Sébastien Portebois
Live recording with the demos: https://www.youtube.com/watch?v=0XRcmJEiZOM
Contents
- The application distribution challenge
- The current solutions
- Introduction to Docker, Containers, and the Matrix from Hell
- Why people care: Separation of Concerns
- Technical Discussion
- Ecosystem, momentum
- How to build Docker images
- How to make containers talk to each other, how to handle data persistence
- Demo 1: isolation
- Demo 2: real case - installing Go Math! Academy, tail –f containers, unit tests
Real-World Docker: 10 Things We've Learned RightScale
Docker has taken the world of software by storm, offering the promise of a portable way to build and ship software - including software running in the cloud. The RightScale development team has been diving into Docker for several projects, and we'll share our lessons learned on using Docker for our cloud-based applications.
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.
Présentation du système Docker animée par Sebastien Binet (CNRS/IN2P3/LPC) en Décembre 2015 au Proto204
http://reseau-loops.github.io/journee_2015_12.html
An on-going presentation for the Docker workshop on how to integrate docker into Vagrant as a provider. In order to remove the requirement of having a VM, and speedup development environments. It also features Puppet as the configuration management system.
The code can be found in: https://github.com/npoggi/vagrant-docker
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 and Containers are proven solutions, but are they ready to replace your current deployment? And more importantly, are you aware of the changes you'll have to make to accommodate them? Are there any risks involved? This talk will answer these questions and talk about how to plan, automate, build, deploy, and orchestrate the whole process.
Il s’agit dans un premier temps de présenter Docker, ses cas d’usage et quelques bonnes pratiques d’utilisation.
Le but est de présenter Docker, son mode de fonctionnement et son écosystème.
Ce qu’il peut apporter et les pièges à éviter
https://github.com/kanedafromparis/prez-fabric8-dmp
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
Как быстро и легко настраивать/обновлять окружения для кросскомпиляции проектов под различные платформы(на основе docker), как быстро переключаться между ними, как используя эти кирпичики организовать CI и тестирование(на основе GitLab и Docker).
In normal project work everybody will have heard the sentence: „On my local machine it worked“! The circumstances which lead to this statement are that there are usually minor inconsistencies within the setup of the different environments. Different operating systems, Java versions or installed hot fixes influent the behavior of the developed application and cause issues. This is where Docker comes in place. Docker automates the deployment of applications and isolates them inside software containers, by providing an additional layer of abstraction and automation but with out the overhead caused by a virtual machine. Ones set up, it limits the installation process to 5 minutes independent which environment. Furthermore, the same application can be reused to run on local machines, data centers or in the cloud. We will show you how we incorporated Docker in our continuous deployment process and how we facilitate it for our development and deployment chain.
Continuous Delivery di una WebApp - by exampleFabio Mora
Codemotion Rome - 27 Marzo 2015
Una feature non è completa finché non è nelle mani di chi la deve usare. Solo da lì inizia a produrre valore, sia economico o feedback. Che si tratti di master, preview o prod, con l’automazione delle build si possono evitare operazioni ripetitive, complesse, risparmiare tempo ed ottenere interessanti metriche. Tutto al fine di arrivare a poter rilasciare ogni poche ore (ogni volta che la build è verde!). Una overview di una delle 12 pratiche di Extreme Programming: continuous integration (e delivery) con gli strumenti al momento più interessanti. Esempio con una webapp in PHP.
This presentation gives a brief understanding of docker architecture, explains what docker is not, followed by a description of basic commands and explains CD/CI as an application of docker.
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.
The challenge of application distribution - Introduction to Docker (2014 dec ...Sébastien Portebois
Live recording with the demos: https://www.youtube.com/watch?v=0XRcmJEiZOM
Contents
- The application distribution challenge
- The current solutions
- Introduction to Docker, Containers, and the Matrix from Hell
- Why people care: Separation of Concerns
- Technical Discussion
- Ecosystem, momentum
- How to build Docker images
- How to make containers talk to each other, how to handle data persistence
- Demo 1: isolation
- Demo 2: real case - installing Go Math! Academy, tail –f containers, unit tests
Real-World Docker: 10 Things We've Learned RightScale
Docker has taken the world of software by storm, offering the promise of a portable way to build and ship software - including software running in the cloud. The RightScale development team has been diving into Docker for several projects, and we'll share our lessons learned on using Docker for our cloud-based applications.
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.
Présentation du système Docker animée par Sebastien Binet (CNRS/IN2P3/LPC) en Décembre 2015 au Proto204
http://reseau-loops.github.io/journee_2015_12.html
An on-going presentation for the Docker workshop on how to integrate docker into Vagrant as a provider. In order to remove the requirement of having a VM, and speedup development environments. It also features Puppet as the configuration management system.
The code can be found in: https://github.com/npoggi/vagrant-docker
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.
An introduction to using Docker Engine. We'll containerize a very simple web application and then talk about some easy ways to try out Docker Engine in your own way.
Running the Oracle SOA Suite Environment in a Docker ContainerGuido Schmutz
Docker is all about making it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. Docker helps creating, moving and duplicating environments.
This presentation will give an introduction to Docker, the ideas behind containerization and explain why there is so much hype around Docker and why you should be taking notice. I will show how Docker containers can be used to setup different environments, such as SOA Suite, Service Bus, Business Activity Monitoring and Event Processing and Stream Explorer. The talk will also include various short live demos.
Docker introduction.
References : The Docker Book : Containerization is the new virtualization
http://www.amazon.in/Docker-Book-Containerization-new-virtualization-ebook/dp/B00LRROTI4/ref=sr_1_1?ie=UTF8&qid=1422003961&sr=8-1&keywords=docker+book
Using Docker to build and test in your laptop and JenkinsMicael Gallego
Docker is changing the way we create and deploy software. This presentation is a hands-on introduction to how to use docker to build and test software, in your laptop and in your Jenkins CI server
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)?
Tech Talk on Docker - Docker is a computer program that performs OS virtualization, also known as containerization.
Written in: Go
Supported OS: Linux, Windows, macOS
This technology is widely used within Atlogys as a best practice during development.
Hear out senior engineer Mr. Ram Awadh deliver this information session which also includes a demo.
Recent changes in one desktop product generated many doubts in developer communities regarding containers. Can we still use or create them? Do we have alternatives to docker? We have some answers! Join us in this session to learn more about some popular docker alternatives. You can create containers without docker, and you can also run and publish them. There's life after docker, and containers are here to stay.
Presentazione per il sesto WebMeetup del Machine Learning / Data Science Meetup Roma: https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/273089965/
Paolo Galeone - Dissecting tf.function to discover auto graph strengths and s...MeetupDataScienceRoma
Original presentation available on GitHub: https://pgaleone.eu/tf-function-talk/
Meetup: https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/264338606/
Multimodal AI Approach to Provide Assistive Services (Francesco Puja)MeetupDataScienceRoma
Presentazione dal Meetup del Machine Learning / Data Science Meetup di Roma - Giugno 2019:
https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/262120815/
Presentazione dal Meetup del Machine Learning / Data Science Meetup di Roma - Giugno 2019:
https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/262120815/
Zero, One, Many - Machine Learning in Produzione (Luca Palmieri)MeetupDataScienceRoma
Talk dal Meetup del Machine Learning / Data Science Meetup di Roma - Giugno 2019:
https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/262120815/
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 4
Docker for Deep Learning (Andrea Panizza)
1. Docker for DL
September 23, 2020
Andrea Panizza
https://github.com/AndreaPi/docker-for-deep-learning
2. Contents
September 23, 2020 2
$ docker why
$ docker what
$ docker how
$ portainer
$ docker --deep-learning
$ docker resources
$ (depend --on-docker)
3. September 23, 2020 3
docker why
- Choose an OS
- Install CUDA and CuDNN
- Install python (3.2? 3.5? 3.8?) &
libraries
- Install tensorflow & keras (or PyTorch)
- TF & CUDA versions not compatible
- TF & Keras versions not compatible
- Expose ports: possible conflicts
- Breaking updates
- Different OS/libraries in Dev/Prod
- Ok, but now it doesn’t scale
- HEEEEELLLLPP!!!!!!
- Install Docker
- Write a Dockerfile
- docker build
- docker run
-
4. September 23, 2020 4
docker what
virtual machines solve the dependency
issue…
…but they’re very resource-intensive
(scalability). We need a lighter framework
5. September 23, 2020 5
docker what
Docker containers are:
• Cheaper (less memory & CPU
overhead)
• Trendy
• Reproducible & portable
• Made to crash and be restarted
• Scaling and orchestrating is easy
• Develop code in your preferred
environment, run anywhere
6. September 23, 2020 6
docker what
Docker containers are not virtual machines:
• “VMs are like houses, each is a single unit w/ standalone plumbing and
wiring. Containers are like apartments; each one is a unit (process) in a host
(building), sharing the plumbing and wiring w/ one another as well as the rest
of the building” (Mike Coleman - Technology Evangelist, Docker)
7. September 23, 2020 7
docker vocabulary
image package defining a working environment (binary file)
container a running instance of an image (process)
Dockerfile text file containing commands to build an image
Docker Hub A web server/repository for sharing Docker images
Docker client sends CLI commands to Docker daemon through
Docker REST API
Docker daemon executes calls from Docker client
Docker native client/server architecture
makes it easy to design web services
9. September 23, 2020 9
docker how
• Define an image by writing a Dockerfile
• FROM: initialize a new build stage & set base
image. A valid Dockerfile must start with FROM.
• LABEL: add metadata to an image (key/value
pair). A typical key is maintainer
• COPY: copy files/folders from <src> and add to
container filesystem at path <dest>
• RUN: execute commands in a new layer on top
of the current image and commit results
• WORKDIR: set working directory for any
command which follows
• CMD: defaults for the container execution
10. September 23, 2020 10
docker how
To build the image, from the Dockerfile directory run
docker build [BUILD_OPTS] -t IMAGE:[TAG] (tip: always name & tag your images)
Docker pulls the base image from the Web (if it didn’t do it before) and starts building. After building, to run the
container, in any directory run
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
(can be complicated…but see later!)
Each container is an instance of an image: you can run multiple (containers) instances based on the same image, as
long as each has a unique name.
Containers are stateless and immutable: once a container completes execution, all its content is lost, and any
other container started from the same image doesn’t inherit any state from the first one (reproducibility).
11. September 23, 2020 11
Mapping local folders
All content from a Docker container is lost, once it terminates execution. In order to export content from it,
we map a folder on the host filesystem, to a folder in the Docker container filesystem. Example:
docker run -v /home/andrea/docker_test:/test -it ubuntu /bin/bash
maps the folder docker_test on the host system to the folder /test in the Docker container1, starts
a container based on the ubuntu image in interactive mode and drops you in the bash shell.
1Warning: this kind of mapping is called a bind mount and it’s discouraged in modern Docker versions, in favor of volume mount. As a
Docker curmudgeon & a developer, I find bind mounting to be more useful for people like me who develop inside of a container, but
you’ve been warned.
12. September 23, 2020 12
portainer
Portainer is a web app (running inside
a…you guessed it, a container) which
allows you to manage your containers
(especially local ones), remove unused
containers, volumes, images, start and
stop containers, etc.
13. September 23, 2020 13
portainer
Being based on Docker, installing Portainer
requires just 2 shell commands:
docker volume create
portainer_data
docker run -d -p 9000:9000 --
name=portainer --
restart=always -v
/var/run/docker.sock:/var/run/
docker.sock -v
portainer_data:/data
portainer/portainer-ce
Then, point your browser to
localhost:9000 et voilà! You’re done.
14. September 23, 2020 14
portainer Restart/remove stopped containers
Delete unused images
Connect to containers
…and more!
15. September 23, 2020 15
portainer
• Portainer 2.0 CE (08/31/2020) supports Kubernetes, allowing users to manage
app deployments on Kubernetes clusters using the Portainer UX (“no more CLI,
no more YAML, no more Kubernetes manifests”)
• Faces the competition of Rancher and OpenShift!
16. September 23, 2020 16
docker --deep-learning
• Let’s build a simple image and make some practice with Docker
• We will create an image to run two models in Jupyter:
• a pre-trained ResNet-50 model (uses default Keras implementation)
• a pre-trained RetinaNet model (uses https://github.com/fizyr/keras-
retinanet/)
git clone https://github.com/AndreaPi/docker-for-deep-learning.git
17. September 23, 2020 17
docker resources
• How to Get Started with Docker (official intro atm)
• What is Docker in 5 minutes
• Learn Docker in 12 minutes
• Portainer - Lightweight Management UI for Docker
• the official Docker cheatsheet
• Some Docker notes
• https://docs.docker.com/develop/develop-images/dockerfile_best-
practices
• https://blog.docker.com/2019/07/intro-guide-to-dockerfile-best-
practices/
20. September 23, 2020 20
docker why
Q: isn’t this solved by
venv/pipenv/conda/
etc.?
A: Nope!
• venv & pipenv only deal with Python packages
dependencies. For anything else (e.g., Python version,
CUDA, libglib2.0-0, etc.) you’re pretty much f*ck*d.
Also, a virtual environment is not really self-contained:
some Python packages install stuff outside the virtual
env dir.
• conda can manage environments for other languages
other than Python, but it still doesn’t manage the other
dependencies
• None of these approaches guarantees seamless
transferability across different environments. You will
all have experiences of conda/venv crashing after
some admin change on your machines!
21. September 23, 2020 21
depend --on-docker
Depend On Docker is a framework
developed at former BHGE Digital
which helps building, shipping &
running applications with Docker.
22. September 23, 2020 22
Manage images/containers
docker images -aq List all images
docker ps -a List all containers: you need to remove
containers before you can remove images
docker rm <container-ID> remove container
docker rm $(docker ps -aq) remove all containers
docker rmi <image-ID> remove image
docker rmi $(docker images -aq) Remove all images
docker run --rm --it --name cntr myimage run container with name cntr, from image
myimage, in interactive (it) mode and
remove (rm) container after you exit:
great to avoid having many hanging
containers
23. September 23, 2020 23
A few extra tips on writing Dockerfiles
from https://blog.docker.com/2019/07/intro-guide-to-dockerfile-best-practices/
24. September 23, 2020 24
A few extra tips on writing Dockerfiles
from https://blog.docker.com/2019/07/intro-guide-to-dockerfile-best-practices/
• The Docker blog post lists even more best
practices which you may want to learn and
use!