-
Notifications
You must be signed in to change notification settings - Fork 3
Containerization
Both the host and container share the same kernel.
Engine responsible for providing the execution environment for application is called virtualization container.
Originally LXC-based, widespread.
term | meaning |
---|---|
image | Product of docker build command. Snapshot of a container. Analogous to the concept from Object Oriented Programming: class
|
container | Running instance of image. Analogous to the concept from Object Oriented Programming: class instance |
dockerd
uses following configuration files:
/etc/docker/daemon.json
/etc/default/docker
(for Debian based OSes)
> cat /etc/docker/daemon.json
{
"storage-driver": "btrfs"
}
For full list of supported drivers refer to storage drivers
> cat /etc/docker/daemon.json
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"]
}
It is possible that run init/upstart/service script specifies -H
flag for startup command.
This must be removed from script itself, otherwise dockerd
will fail to start
Build image from Dockerfile
(issue in directory containing Dockerfile
):
docker build .
Start container (simplest form):
docker run --name <some_name> <image tag or name>
Stop container:
docker stop <container name or id>
Remove container:
docker rm <container name or id>
Remove image:
docker rmi <image name or id>
Push image to registry:
- Tag image first with repository URL
docker tag <image> <repourl>/<tag>
- Login to desired repository,
docker.io
is the default
docker login <repourl>
docker push <repourl>/<tag>
Container's filesystem root location: /var/lib/lxc/<container name>
Container creation scripts/templates for given distro: /usr/share/lxc/templates
To verify if LXC is supported on current OS/kernel run: lxc-checkconfig
Debian may have some issues with memory control via cgroups.
Check kernel support: cat /boot/config-$(uname -r) | grep CONFIG_MEMCG
If output contains both CONFIG_MEMCG=y
and CONFIG_MEMCG_DISABLED=y
means that memory cgroups must be explicitly enabled by kernel parameter (cgroup_enable=memory
)
Bridge network on host OS.
- Modern Linux Administration - Sam R. Alapati
- https://wiki.debian.org/LXC
- https://www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series/
- https://www.flockport.com/guides/
- General
- OS
- Networks
- Configuration
- Protocols
- Link layer
- Sockets
- Routing
- Tunneling
- Debugging
- LoRa
- Virtualization
- Infrastructure as a code
- Desktop environments
- Monitoring
- Benchmarking