Never install locally

preview_player
Показать описание
💜 Support the channel and get some nice perks:

🗣️ Discord is now available, come chat!

---

Containers are a game-changing tool for app development and deployment, offering isolated, portable environments that include code, libraries, and OS. Unlike virtual machines (VMs), containers are lightweight and share the host system's kernel, making them faster and more resource-efficient.

Developers benefit from containers as they allow working in multiple environments simultaneously without compromising the local machine. This ensures compatibility across different machines and platforms, eliminating the "it works on my machine" issue.

Docker is a popular container platform that uses overlapping layers to form container images. These images can be extended from any previous image or layer, with numerous pre-made base images available for various requirements.

Using a Dockerfile, developers can add commands to generate new file system layers or metadata layers. Multiple containers can run from a single image, with each container having its dedicated file system layer that persists until the container is deleted.

Containers can communicate easily, and when an app is ready for deployment, it can be tagged with a unique version and published to a container registry. Modern cloud platforms offer built-in support for deploying containers, or you can install a compatible container runtime on your machine for more control.

Container orchestration platforms like Kubernetes enable the creation of container-based clouds, providing even greater flexibility and control in app development and deployment.

---

In the video, I cover:
- Understand containers and their benefits for developers
- Compare VMs and containers, and their resource usage
- Maintain multiple environments with containers to avoid conflicts
- Solve the "it works on my machine" problem with container consistency
- Explore container images, Dockerfiles, and overlapping layers
- Use pre-made and officially supported base images for projects
- Create and run containers using Docker as a container platform
- Communicate between containers through virtualized network layers
- Tag and publish container images to registries for storage
- Deploy containers using cloud platforms or compatible runtimes
- Utilize container orchestration with Kubernetes for advanced deployments

---

Additions:

Despite me presenting it as so, containers don't contain a true OS in the full meaning of the word. That's an oversimplification. It's more of an "OS-like" environment. It definitely can act in ways that you'd expect an OS to act, but there are some differences.

If you use VSCode, check out "Dev Containers" - they are an awesome way to integrate your IDE into dedicated containerized development environments with just a single click.

Sharing a Kernel with the host does come with some potential drawbacks. Most importantly is that containers would be more vulnerable to attack than VMs should the host machine be compromised. However, containers are heavily used in many large-scale production environments and security can be hardened against such attacks, so it's definitely not a bigger concern than keeping software secure in general.

---

00:00 - Introduction to Containers
00:24 - Coderized
00:27 - Containers vs. VMs
01:09 - The Role of the Kernel
01:32 - Benefits for Developers
01:58 - Works on My Machine...
02:19 - Creating a Container of Your Own
02:34 - Container Images and Filesystem Layers
02:47 - Banana
02:53 - Layers in Container Images
03:28 - Dockerfile example
03:42 - Container Runtime Changes and Persistence
04:09 - Accessing Running Containers
04:22 - Communication Between Containers
04:30 - Tagging and Publishing Container Images
04:51 - Deployment Options and Cloud Platforms
05:14 - Container Orchestration with Kubernetes
05:29 - Ending and Support

#devops #containerization #docker #dockercontainer #dockertutorial #dockertutorials #dockerimage #cloudcomputing #cleancode #programming #code #coder #coding #programmingtips #vscode #container #containerregistry #containerruntime
Рекомендации по теме
Комментарии
Автор

dev: "It works on my machine"
docker: "Then we'll ship your machine"

UrSoMeanBoss
Автор

He said "badly demonstrated banana", pulled the hardest banana animation to date and thought we wouldn't notice.

zen
Автор

A brief and up to the point with no bs documented video for anyone who wants to understand the core concepts without/before getting into the development aspect of it.

shoebilyas
Автор

This video is not only beautifully animated and narrated, it's also incredibly informative and easy to follow despite the content being complicated, a real work of art. I loved it so much I had to log in to leave this comment, something I seldom do. Thank you very much.

amirhoseinniknezhad
Автор

This channel is like 3blue1brown and Fireship had a baby

Eurotool
Автор

Containers are generally great but there are some pitfalls to be aware of.
1. They don't abstract over CPU architecture. If your application or some library use use is x64 only, I'd won't easily run on an Apple Silicon Mac.
2. Host systems handle network a bit different. Some allow you to access containers via IP from the host system, some only allow you to access containers on localhost via port forwarding
3. Different software on the host system, can have a big impact on performance even if hardware is the same or comparable.
4. Containers are by design not mutable. Having to shutdown and rebuild with every change you make can slow you down significantly when you are iterating.
5. Containers make it easy to utilize a bunch of dirty hacks to get your code running. This means you are hurt even more when things do break because you need to update some dependency e.g..

ymi_yugy
Автор

Didn't really explain WHY to never install locally.

plica
Автор

This video is a triumph of minimalism and simplicity. Amazing job!

moonlambo
Автор

I wanted to incude this in the video originally but didn't want to get too far off scope -- if you use VSCode, check out "Dev Containers" - they are an easy way to start the IDE inside your perfect container environment, automatically, whenever you open your project.

Also, despite me presenting it as so, containers don't actually contain a OS in the true meaning of the word. That's an oversimplification. It's more of an "OS-like" environment. It definitely can act in ways that you'd expect an OS to act, for most purposes, but there are some differences.

coderized
Автор

I still can't understand containers but I like this video

FelipeCampelo
Автор

I m mesmerized by the production, the sound, the animations, the content, the everything. Keep up the good work

manavkhandurie
Автор

Dude, the quality of these animations and explanations are amazing! And all the small sprinkles of humour makes this into a very engaging video. Well done! Subscribed!

Ermude
Автор

Great explanation.

I'm still convinced that for most applications, Docker creates more problems than it solves. A friend of mine, qualified as an AWS consultant, for purposes of private advice adopts a principle of ec2 maximalism.

sosaysthecaptain
Автор

Containers do not contain an "OS". They always use the hosting kernel. The best way to think of containers is that they contain your userland executable(s), and the host kernel keeps the running process and filesystem, network isolated (jailed) from everything else (including other containers) running on the host.

beepbop
Автор

if there's one thing web developers excel at is finding ways to spend exponentially large amounts of resources to make it so they have to spend a little less effort remaining organized

rnbpl
Автор

The quality of the content is beyond. Subbed. As a front end guy trying to know how this docker world works, this is a good start.

sodiqayilara
Автор

This video is amazing.
I really appreciate the amount of effort that you put into this, and it shows.
In particular, I love that there are no visible cuts in the entire video. Just beautifuly animated transitions.

sufilevy
Автор

i mentioned this once in a response to a comment already but just wanted to reiterate here....videos with no over-editing are so desperately needed here. no rage-inducing constant cuts or interjections of meme pictures and little annoying voices and sounds, no grating distracting background music, no terrible over-hyped voice, just a wonderfully soft spoken lad sharing knowledge. i know its a bit played out but i have to say it, your voice is ASMR worthy for sure. thanks again.

pigsweat
Автор

From the script to graphics and everything in between, its just perfect!

henishshah
Автор

FINALLY! A video that gives a quick concise easy to understand explanation of what containers are and how they work.

I can’t tell you how many times I’ve watched a video on this subject and the creator is throwing Docker commands around but not explaining a single thing about the hows and whys.

Bravo!

ragtop