Docker Engine
Timeline
2013:
Docker Daemon ← → Rest API ← → Docker CLI
Docker Daemon was managing Containers, Volumes, Images, Networks and Runtime
Docker used LXC to manage containers
LXC uses namespaces and CGroups
2014 (v0.9)
Introduction of libcontainer
libcontainer was able to directly contact kernel and no dependency on LXC
2015 (OCI)
Open Container Initiative
2016 (v1.11)
Daemon Manages: Images, Volumes and Networks
containerD: Manage containers
containerd-shim: manages runC
runC: Runs containers
Docker Objects
- Images
- Containers
- Networks
- Volumes
Check Docker Installation
Check Edition and Version
Check Docker CLI verison
Check info of docker host
Managing Docker Service on Linux System
Start docker daemon
Manually Start docker daemon
:::info dockerd will print logs of docker daemon service :::
Get debug logs
Docker Socket
By default, docker daemon listen on Unix Socket at /var/run/docker.sock
By default, listening on network interface is disabled
Enable docker daemon to listen on network socket
unencrypted connection
for encrypted connections
dockerd --host=tcp://IP-ADDRESS:2376 \
--tls=true \
--tlscert=/var/docker/server.pem \
--tlskey=/var/docker/serverkey.pem
Configuring a file to enable network socket
{
"debug": true,
"hosts": ["tcp://192.168.1.10:2376"],
"tls": true,
"tlscert": "/var/docker/server.pem",
"tlskey": "/var/docker/serverkey.pem"
}
or