Presentation on how to chat with PDF using ChatGPT code interpreter
Docker for dev
1. Docker for development
Why and how to use docker for development
Nelis Boucké
+32 486 76 12 71
@nelisboucke
in/nelis
Erik Talboom
+32 498 43 29 67
@talboomerik
in/talboomerik
7. Demo: Develop a website
Goal: use docker during development of a website
a. Html, php, javascript
b. Use volume to share website content between host and docker
8. What is docker?
“Docker - build, ship and run any app. Anywhere”
“Docker is a platform for developing, shipping and running applications using container virtualization
technology”
“Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run:
code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will
always run the same, regardless of the environment it is running in.”
9. What is docker?
“Docker - build, ship and run any app. Anywhere”
“Docker is a platform for developing, shipping and running applications using
container virtualization technology”
“Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run:
code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will
always run the same, regardless of the environment it is running in.”
10. What is docker?
“Docker - build, ship and run any app. Anywhere”
“Docker is a platform for developing, shipping and running applications using container virtualization
technology”
“Docker containers wrap up a piece of software in a complete filesystem that
contains everything it needs to run: code, runtime, system tools, system libraries –
anything you can install on a server. This guarantees that it will always run the
same, regardless of the environment it is running in.”
14. What are the different components?
Docker engine
Docker hub
Docker machine
Docker swarm
Docker compose
Kitematic
15. What does it mean for development?
● Lightweight
● Simple test environment
● One person makes it work
○ All external packages included!
● Different version in parallel
22. Imagine: scenario to onboard a customer
CRM Billing Finance
Angular app
Market appBPM ServiceMix
Identity
MySql Postgres
Reverse proxy Admin access gatewaySquid
SFTP
server
23. ● Lightweight!
● Easy test environment with multiple servers!
● Real ‘container’
Difference with Vagrant?
● External packages encapsulated (build time of Docker)
● Less resources
What does it mean for development?
30. What does it mean for development?
● Isolated environments for focused testing
● Fast end users testing and feedback!
● No need to run complex environment locally
32. Demo: AWS swarm
● Transparent app over a set of nodes
● Scale
● Update a node
33. What are the different components?
Docker engine
Docker hub
Docker machine
Docker swarm
Docker compose
Kitematic
34. What does this mean for development?
● Enables mixed technologies
● Plays really well with microservices
● Higher flexibility
○ Deployment options
○ Scaling
○ Updates
→ More fundamental shift then some people realise
36. Docker volumes
“A volume is a designated directory in a container, which is designed to persist data,
independent of the container’s lifecycle”
+ Volume changes are excluded when updating an image
+ Persist when a container is deleted
+ Can be mapped to a host folder
+ Can be shared between containers
42. Challenges introducing docker
● Learning curve for your developers and ops team.
○ You really need some Ops knowledge to set this up.
● Not everything is easy to dockerize well (e.g. Jenkins)
● Docker for dev != Docker in production
● Docker environment is fast changing, and comes with a whole new set of tools
● Docker stability in production (disk drivers, network setup, connection with
Kernel)
● Docker security?