Skip to main content
Notes by Peter Galonza(Пётр Галонза)
GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Docker

Create container from rootfs

tar --verbose --create --file <file name>.tar --directory <path to rootfs> .
cat <file name>.tar | sudo docker import - <image name>
tar -C <path to rootfs> -c . | docker import - <image name>
FROM scratch
ADD <path to rootfs> /

Systemd in container

docker <> --volume /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host --priveleged --command (/usr)/sbin/init

Remove all images

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q -f dangling=true)

Commands

docker build --tag <image name> <path to rootfs>
docker run --rm  --name container_name  -p 80:80 -v path_in_host:path_in_container tag/name:tag

docker build -t tag/name:tag -f DockerFile .

docker exec -it container_name bash

Security

--security-opt=no-new-privileges
--read-only

Tools

  • Crane - tool for Docker containers orchestration written in Go.
  • Kaniko - build Container Images.

Cache

Optimize cache usage in builds

Start scripts

Execute commands and start more one process in container

#!/usr/bin/env bash

_term() {
  echo "Caught SIGTERM signal!"
  <commands>
}

trap _term SIGTERM

<commands>

sleep infinity &

wait $!

Security

gosu

gosu