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