--privileged
argümanı tercih edilmediği durumlarda gereken mountlar aşağıdaki
şekildedir.
Systemd ile docker çalıştırmak için gereken mountlar aşağıdaki gibi ayarlanabilir. Ayrıca imajdan önce mount edilen noktalarda DISPLAY environment değişkeni ayarlanarak konteynır içerisinde çalıştırılan gui araçları görülebilir. Aynı zamanda ana dizinde bulunan Share dizini de konteynır içerisinden erişilebilir.
docker run \
--entrypoint=/usr/lib/systemd/systemd \
--env container=docker \
--mount type=bind,source=/sys/fs/cgroup,target=/sys/fs/cgroup \
--mount type=bind,source=/sys/fs/fuse,target=/sys/fs/fuse \
--mount type=tmpfs,destination=/tmp \
--mount type=tmpfs,destination=/run \
--mount type=tmpfs,destination=/run/lock \
--net=host --name=Arch --workdir /root -ti \
--env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" -v="$HOME/Share:/root/Share" \
archlinux:latest --log-level=info --unit=sysinit.target
Daha sonrasında terminali kapatıp istenilen komut docker exec -ti Arch bash
ile interaktif shell alınabilir. Sonrasında systemctl status
ile systemd
interaksiyonlarına girilebildiği görülecektir.
Containeri kapatmak için docker stop Arch
yapmak yerine container içerisinde
shutdown now
yapmayı unutmamalı :)