The question I get most often about containerization is: "What is a container?".
Let's make it simple, with my 2 favorite definitions:
1. From a logical point of view, it's a single and packaged unit of software.
2. From a technical point of view, it's an isolated process.
↓
From a logical point of view, more understandable for a human, a container can be considered as a single unit of working software, with all its configurations and dependencies, packaged.
In this way, it can run quickly and reliably from one computer to another.
A container has its own dedicated filesystem, provided by an image.
The image contains:
-dependencies
-configuration
-binaries
-environment variables
-other important data related to the container to be instantiated.
Many containers can be run from a single image
To run a container, we need an image
Technically, a container is first created, then, started.
What often happens, is that when we create a container, we also want to start it.
To do this with a single command, we can use the 'docker run' command.
If we use the 'docker run' command, specifying the image at the end of the command, Docker will look for this image on the current machine.
If the image is not on our filesystem, Docker looks for it in the public registry (Docker Hub), and if it finds it, it downloads the image.
From a technical point of view, the container is just a process, that runs on the machine, isolated from the other processes.
To do this, Docker uses Linux features.
- Namespaces
- Cgroups
- Union FS (Filesystem)
NAMESPACES
The Docker Engine uses Namespaces, to provide a layer of isolation, such as on Linux.
Each aspect of a container runs on a separate namespace.
Its access is isolated and limited.
When you run a container, Docker creates Namespaces for that container.
The namespaces used by Docker for containers are:
PID: for the process ID
NET: to Manage Network interfaces
IPC: to manage access to interprocess
MNT: to manage filesystem mount points
UTS: to isolate kernel/version identifiers
CGROUPS
It's a Linux feature to limit the resources for a set of processes.
Docker relies on Cgroups to limit the usage of resources for containers.
It's used to limit and monitor system resources:
- CPU
- memory
- network bandwidth
- disk
UNION FS
It's a filesystem service.
It implements a Union Mount for different file systems, It allows files/dirs of separate file systems, to be transparently overlaid, forming a single coherent one.
Docker engine uses Union FS to provide the building blocks for containers
If this thread has been useful, consider following @FrancescoCiull4 and sharing this. Thank you.
A thread to know more about Ethereum accounts:
· definition
· account types
· account differences
· account fields
· private and public keys
· account creation
· keep your private key secret!
· contract account
· accounts and wallets
Source: Ethereum docs
↓
DEFINITION of Ethereum Account
It's an entity with an ether (ETH) balance.
Accounts can send transactions on the Ethereum network.
Accounts can be:
- user-controlled.
- deployed as smart contracts.
ACCOUNT TYPES
Two account types:
- Externally-owned: controlled by anyone with the private keys.
- Contract: a smart contract deployed to the network, controlled by code.
Both account types can:
- receive/hold/send ETH and tokens.
- Interact with deployed smart contracts.
My goal is to help with Docker, content creation, and share my Web3 journey
My goal for 2022 is to IMPROVE📈
- the content's quality
- the quality of the connections with people
Follow me, you will not regret that
Have a great year! (sometimes I am funny)
I am very active on YouTube, here is the link.
The main activity here is to interview people, but occasionally I create some big events and make some experiments youtube.com/channel/UCBRxD…
I am also active on Twitch.
Here I am very focused on the coding part so if you like the tech part you should follow me there twitch.tv/francesco_ciul…
Thank you to all the @portainerio team and for the collaborations during 2021
Special Thanks to @hrittikhere, we made amazing live streams together!
You can see a recap of all videos with the team below.
Oh and thank you for the nice SWAG!👕🖊🧦📘
How to install Portainer with Docker.
This has been the very first video, and in 4 minutes, I explain how you can install Portainer using Docker (yes you got it right). Very straightforward video.
Portainer Tech Show
First show with the Portainer Team, I really enjoyed this as it's a relaxed yet interesting chat with the Portainer team.
Csaba is super talented and tweets about web development, color associations for websites. He is also a master of side projects, you should really check them!
One of the kindest people on Twitter. She is PM at Hashnode and Developer Advocate at Dasha. Introverted like me, but when she will start for real she will become unstoppable, I am sure about that.