Führen Sie die Docker Engine in ein handgemachtes Linux-Betriebssystem ein, das auf der Basis von Linux From Scratch erstellt wurde. Da Linux From Scratch ein System ist, das unter Verwendung von Quellcode von Grund auf neu erstellt wurde, bleibt keine andere Wahl, als Docker von Grund auf neu zu erstellen. Ziel ist es, Docker vor allem zu verstehen. Es ist nicht auf den praktischen Einsatz von Docker ausgerichtet.
Da der Text ein Linux-Betriebssystem verwendet, das auf Linux From Scratch basiert, ist die Wiederherstellung der Kernelquelle eine wichtige Aufgabe. Wenn Sie nicht beabsichtigen, Linux From Scratch zu verwenden, scheint dies nicht in Zusammenhang zu stehen. Nach dem Erstellen der Kernelquelle wird jedoch die Vorgehensweise zum Installieren der Docker-Binärdatei und zum Festlegen der Umgebung angezeigt. Ich denke, dass Docker in großen Linux-Distributionen gepackt ist, aber wenn Sie eine Distribution verwenden, die dies nicht tut, denke ich, dass das im Text beschriebene Verfahren hilfreich sein kann, da Sie die Docker-Binärdatei verwenden werden. Ich bin.
Um Docker Engine aus dem Quellcode zu erstellen, benötigen Sie Docker selbst. Daher installieren wir zunächst die offiziell bereitgestellte Docker Engine-Binärdatei.
Wenn Sie der Linux From Scratch-Methode folgen, um beim Erstellen aus dem Quellcode zu bleiben, erstellen Sie mit Docker-Quellcode. Das Erstellen einer Betriebsumgebung für Docker Engine-Binärdateien kann jedoch eine schwierige Aufgabe sein. Sobald diese Umgebung erstellt ist, funktioniert Docker außerdem, sodass ersichtlich ist, dass der Zweck vorerst erreicht wurde. In diesem Artikel wird erläutert, wie Sie eine Umgebung mithilfe von Docker-Binärdateien erstellen.
Obwohl dies aus persönlichen Gründen nicht unbedingt erforderlich ist, müssen alle Schritte auf einem Linux From Scratch-System ausgeführt werden, das auf VMware Workstation basiert. Der Grund dafür ist einfach, dass es keinen freien Linux-Computer gab. Es enthält keine spezifischen Informationen zum virtuellen VMware-Image, sodass Sie es als reine Linux-Betriebssystemoperation betrachten können.
Der PC und jede Software verwenden:
Artikel | Inhalt |
---|---|
Notebook | Windows 7, 64bit, amd, Speicher 4GB (relativ schlecht) |
VMware Workstation | VMware Workstaion 10.0.7 build-2844087 (ziemlich alt) |
Linux From Scratch | NeuesteSVN-SystemversionSVN-20200528(linux-5.6.15、gcc-10.1.0、systemd-245), erstellt als virtuelles Image auf VMware. 64bit, Speicher 1.5GB |
Beyond Linux From Scratch | SVNoben-InstallierteverschiedeneWerkzeugeauf20200528(HauptwerkzeugewerdenimfolgendenVerfahrenerklärt) |
Docker | Neueste Docker Engine-Binärdatei: docker-19.03.10 |
Wenn Sie Linux From Scratch ohne nachzudenken erstellt haben, verfügen Sie wahrscheinlich nicht über genügend Linux-Kerneleinstellungen für Ihre Docker-Umgebung. Dies liegt daran, dass einige der Standardeinstellungen in der Kernelquelle keine integrierten Einstellungen oder Moduleinstellungen sind und viele für die Docker-Umgebung erforderlich sind.
Um den Linux-Kernel neu zu erstellen, müssen Sie das "Host-System" verwenden, auf dem Sie Linux From Scratch erneut erstellt haben. Dies bedeutet, dass Sie sich erneut vom "Host-System" aus anmelden und den Befehl "chroot" verwenden, um den Linux-Kernel in der Linux From Scratch-Umgebung neu zu erstellen.
Der Weg, um den Linux-Kernel neu zu erstellen, besteht sicherlich darin, das ursprüngliche "Host-System" zu verwenden, aber ich denke nicht, dass es erneut notwendig sein wird, zu prüfen, ob das "Host-System" tatsächlich einfach vorbereitet werden kann. Sie haben es vielleicht schon weggeworfen.
Dieses Thema ist ziemlich realistisch, aber ziemlich nervig. Vielleicht ist der schnellste Weg, Linux von Grund auf neu zu erstellen. Da der Schwerpunkt auf dem Erstellen einer Docker-Umgebung liegt, werden hier keine detaillierten Informationen zum Wiederherstellen des Kernels angezeigt. Im Folgenden wird das Einstellungsmenü für Kerneloptionen während der Neuerstellung erläutert.
Der offizielle Docker-Github verfügt über ein Skript, das die erforderlichen Kerneleinstellungen überprüft. Es heißt check-config.sh. Laden Sie dies herunter und führen Sie es aus.
# wget https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh
# sh ./check-config.sh
Die Ausgabe sieht folgendermaßen aus:
warning: /proc/config.gz does not exist, searching other paths for kernel config ...
info: reading kernel config from /boot/config-5.6.15 ...
Generally Necessary:
- cgroup hierarchy: nonexistent??
(see https://github.com/tianon/cgroupfs-mount)
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: missing
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: missing
- CONFIG_KEYS: enabled
- CONFIG_VETH: missing
- CONFIG_BRIDGE: missing
- CONFIG_BRIDGE_NETFILTER: missing
- CONFIG_NF_NAT_IPV4: missing
- CONFIG_IP_NF_FILTER: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: missing
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: missing
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NETFILTER_XT_MATCH_IPVS: missing
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: enabled
- CONFIG_NF_NAT_NEEDED: missing
- CONFIG_POSIX_MQUEUE: enabled
Optional Features:
- CONFIG_USER_NS: missing
- CONFIG_SECCOMP: enabled
(Folgendes wird weggelassen)
Die hier gezeigten Kerneloptionen unter "Allgemein erforderlich" sind in der Docker-Umgebung erforderlich. Wenn es "aktiviert" ist, ist es derzeit aktiviert, und wenn es "fehlt", bedeutet dies, dass das entsprechende Kernelmodul nicht vorhanden ist. Übrigens, wenn Sie den Linux-Kernel in Linux From Scratch Build mit den Standardeinstellungen erstellen, sollten Sie viele "fehlende" sehen. Das Vorhandensein von "fehlt" ermöglicht Docker mit einigen Ausnahmen nicht zu arbeiten.
Die unter "Optionale Funktionen" aufgeführten Kerneloptionen sind buchstäblich optional und erstellen Einstellungen nach Bedarf. Lassen Sie es uns in Zukunft nach Bedarf bauen.
Beachten Sie, dass in der nächsten Zeile von "Allgemein erforderlich" oben die Hierarchie "-cgroup: nicht vorhanden ??" angezeigt wird. Dies bedeutet, dass die cgroup-Bereitstellung nicht vorhanden oder nicht ordnungsgemäß bereitgestellt ist. Wenn Sie danach cgroup mount-Einstellungen vornehmen, ändert sich diese Anzeige wie folgt. Wir werden fortfahren, um ein solches Ausgabeergebnis zu erhalten.
Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
Führt den Prozess der Neuerstellung des Linux-Kernels durch. Dies bedeutet, dass Sie den Linux-Kernel-Build (http://www.linuxfromscratch.org/lfs/view/systemd/chapter08/kernel.html) erneut im Linux From Scratch-Buch ausführen. Aktivieren Sie dann während des Vorgangs im Optionseinstellungsmenü, wenn make menuconfig
ausgeführt wird, die unten gezeigten erforderlichen Optionen und führen Sie die Linux-Kernelinstallation durch.
Unten sind die Kernel-Einstellungen aufgeführt, die ich vorgenommen habe. Wenn Sie diese zumindest nicht festlegen, funktioniert die Docker-Umgebung nicht. Es kann aufgrund der Historie des Prozesses durch Ausprobieren zu Fehlern oder Mängeln kommen. Sobald ich es bemerke, werde ich Korrekturen vornehmen.
<Kernel-Einstellungselemente> <Optionsname>
General setup --->
[*] Control Group support ---> CONFIG_CGROUPS
[*] Memory controller (NEW) CONFIG_MEMCG
[*] Swap controller (NEW) CONFIG_MEMCG_SWAP
[*] Swap controller enabled by default (NEW) CONFIG_MEMCG_SWAP_ENABLED
[*] CPU controller --->
[*] Group scheduling for SCHED_OTHER CONFIG_CGROUP_SCHED
[*] CPU bandwidth provisioning for FAIR_GROUP_SCHED CONFIG_CFS_BANDWIDTH
[*] IO controller (NEW) CONFIG_BLK_CGROUP
[*] PIDs controller (NEW) CONFIG_CGROUP_PIDS
[*] Device controller (NEW) CONFIG_CGROUP_DEVICE
[*] Networking support ---> CONFIG_NET
Networking options --->
[*] Network packet filtering framework (Netfilter) ---> CONFIG_NETFILTER
[*] Advanced netfilter configuration CONFIG_NETFILTER_ADVANCED
<M> Bridged IP/ARP packets filtering (NEW) CONFIG_BRIDGE_NETFILTER
Core Netfilter Configuration --->
<M> LOG target support CONFIG_NETFILTER_XT_TARGET_LOG
*** Xtables matches ***
<M> "addrtype" address type match support CONFIG_NETFILTER_XT_MATCH_ADDRTYPE
IP: Netfilter Configuration --->
<*> Packet filtering CONFIG_IP_NF_FILTER
<M> iptables NAT support CONFIG_IP_NF_NAT
<M> MASQUERADE target support (NEW) CONFIG_IP_NF_TARGET_MASQUERADE
<M> 802.1d Ethernet Bridging CONFIG_BRIDGE
Device Drivers --->
[*] Network device support --->
[*] Network core driver support CONFIG_NET_CORE
<*> Virtual ethernet pair device CONFIG_VETH
File systems --->
<*> Overlay filesystem support CONFIG_OVERLAY_FS
(Linux-5.6.15 Kernel-Einstellungsmenü)
Die integrierte Einstellung "* "und die Modul-Build-Einstellung" M
"interessieren mich nicht wirklich. Wenn möglich, wählen Sie "*
" für diejenigen, die eingebaut werden können, und wählen Sie " M
"für diejenigen, die dies nicht können.
Starten Sie das System basierend auf diesem neuen Linux-Kernel neu, nachdem Sie den Linux-Kernel erstellt haben. Versuchen Sie dann erneut, die obige check-config.sh
auszuführen. Der größte Teil der Ausgabe sollte "aktiviert" sein, anstatt "zu fehlen".
Die Systemanforderungen für die Bereitstellung von Docker-Binärdateien sind im Abschnitt Voraussetzungen der offiziellen Dokumentation Docker Engine von Binärdateien installieren beschrieben. Das Folgende ist eine einfache Übersetzung davon.
Sogar auf dem gerade von Linux From Scratch erstellten System sind bereits procps und xz installiert. Für 64-Bit und Kernel 3.10 und höher haben Sie keine andere Wahl, als es zu wählen. Alles was Sie hier brauchen ist Git und Iptables. Die cgroup-Hierarchie ist ein großes Thema, daher werde ich es später erklären.
Bevor Sie mit der Installation von "git" und "iptables" beginnen, installieren Sie das wahrscheinlich erforderliche "make-ca". Die oben gezeigten Systemanforderungen sind möglicherweise zu offensichtlich und nicht spezifiziert. Für Linux From Scratch, das alles von Grund auf neu erstellt, gibt es keine Software, die Sie erhalten können, ohne sie selbst zu erstellen und zu installieren.
"P11-Kit" muss "make-ca" enthalten, und "wget" ist während der Installation von "make-ca" erforderlich. Da wget
für etwas verwendet wird, werden wir es hier vorstellen. make-ca
, p11-kit
und wget
werden alle im Abschnitt Beyond Linux From Scratch angezeigt. Installieren Sie das Gerät gemäß dem angegebenen Installationsverfahren.
2.2. git Git von Beyond Linux From Scratch Folgen Sie zur Installation der Seite git.html). Abhängige Pakete sollten [cURL] sein (http://www.linuxfromscratch.org/blfs/view/systemd/basicnet/curl.html). Die Version ist die neueste Version von "git-2.27.0" zum Zeitpunkt des Schreibens des Textes.
2.3. iptables Iptables von Beyond Linux From Scratch Installation gemäß der Seite von iptables.html). Abhängige Pakete sind nicht enthalten (da dies problematisch ist). Die Version ist die neueste "iptables-1.8.4" zum Zeitpunkt des Schreibens des Textes.
Die iptables-Konfigurationsdatei / etc / systemd / scripts / iptables
verwendet die Einstellungen, die im Abschnitt Persönliche Firewall auf der obigen Seite angezeigt werden. Fügen Sie nach Bedarf Einstellungen hinzu.
Auf der Seite Statische Binärdateien installieren (https://docs.docker.com/engine/install/binaries/) der Docker-Dokumentation befindet sich eine binäre Download-URL https://download.docker.com/linux/static/stable/ Es ist abgebildet. Da Unterverzeichnisse für jede Architektur vorbereitet werden, finden Sie hier [docker-19.03.10.tgz] unter x86_64 (https://download.docker.com/linux/static/stable/x86_64/docker-19.03). Download 10.tgz). Alle nachfolgenden Operationen werden als Root-Benutzer ausgeführt. (Referenz: Offizielles Dokument Statische Binärdateien installieren)
# wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.10.tgz
Dieser Tarball wird mit Binärmodulen in einem Verzeichnis namens "Docker" archiviert.
# tar tf docker-19.03.10.tgz
docker/
docker/ctr
docker/docker
docker/containerd
docker/docker-proxy
docker/runc
docker/docker-init
docker/containerd-shim
docker/dockerd
Daher installieren wir den Tarball nach dem Dekomprimieren (Dekomprimieren) wie folgt in / usr / bin
. (Referenz: Offizielles Dokument Statische Binärdateien installieren)
# tar xf docker-19.03.10.tgz
# cp -p docker/* /usr/bin
Der obige binäre Tarball enthält nicht die Dienstkonfigurationsdateien "docker.service", "docker.socket" für systemd. Holen Sie sie sich also vom offiziellen Github und verschieben Sie sie in das Verzeichnis "/ lib / systemd / system", das die systemd-Dienste enthält. (Referenz: Offizielles Dokument Control Docker mit systemd> Erstellen Sie die systemd-Einheitendateien manuell)
# wget https://raw.githubusercontent.com/moby/moby/master/contrib/init/systemd/docker.service
# wget https://raw.githubusercontent.com/moby/moby/master/contrib/init/systemd/docker.socket
# cp docker.{service,socket} /lib/systemd/system
Erstellen Sie eine Gruppe "Docker". (Referenz: Offizielles Dokument Schritte nach der Installation für Linux)
# groupadd docker
systemd 243 oder höher? Darüber hinaus scheint es, dass v2 als Standard für cgroup übernommen wird, und es scheint, dass verschiedene Funktionen von Docker nicht funktionieren, wenn es als v2 belassen wird. (Ich habe die Quelle der Informationen vergessen, die ich erhalten habe, daher werde ich sie später hinzufügen.)
Um dies zu lösen, fügen Sie "systemd.unified_cgroup_hierarchy = 0" als Startoption für "/ boot / grub / grub.cfg" hinzu.
systemd.unified_cgroup_hierarchy=0
Andere Websites haben eine Lösung zum Ausführen von "Updated-Grub" gezeigt, indem diese Beschreibung überall zu "GRUB_CMDLINE_LINUX_DEFAULT" hinzugefügt wurde. Dies gilt jedoch auch. Da Linux From Scratch "GRUB_CMDLINE_LINUX_DEFAULT" nicht verwendet, geben Sie es direkt in "grub.cfg" an.
Als konkretes Beispiel lautet die / boot / grub / grub.cfg
des Autors wie folgt.
# cat /boot/grub/grub.cfg
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
insmod ext2
set root=(hd0,1)
menuentry "GNU/Linux, Linux 5.6.15-lfs-20200528-systemd" {
linux /vmlinuz-5.6.15-lfs-20200528-systemd root=/dev/sda3 ro net.ifnames=0 biosdevname=0 systemd.unified_cgroup_hierarchy=0
}
Ich habe systemd.unified_cgroup_hierarchy = 0
am Ende der linux
-Zeile hinzugefügt. Übrigens, da ich "/ boot" verwende, das auf einer dedizierten Partition gemountet ist, sollte die obige "Linux" -Zeile als "linux / vmlinux ..." anstelle von "linux / boot / vmlinux ..." beschrieben werden. Ich bin.
Starten Sie das System nach der Korrektur neu.
Cgroup
MountStellen Sie den Mount für c group
(Kontrollgruppe) ein. Fügen Sie der Datei / etc / fstab
die folgende Beschreibung hinzu und hängen Sie sie ein. (Referenz: Docker's Github-Ausgabe Nr. 2683)
# echo "cgroup /sys/fs/cgroup cgroup defaults 0 0" >> /etc/fstab
# mount -a
Versuchen Sie zur Bestätigung Folgendes: Dies ist die erste Überprüfung, um festzustellen, ob das Kernelmodul generiert wurde.
# less /proc/cgroups
#subsys_name hierarchy num_cgroups enabled
cpuset 4 1 1
cpu 3 1 1
cpuacct 3 1 1
blkio 5 1 1
memory 2 42 1
devices 6 29 1
freezer 7 1 1
Die Ausgabe sollte ungefähr so aussehen wie oben. Wichtig hierbei ist, dass es Zeilen für "Speicher" und "Geräte" gibt. Wenn Sie dies nicht sehen, bedeutet dies, dass die oben genannten Linux-Kerneloptionen nicht ordnungsgemäß erstellt wurden.
Dann machen Sie folgendes: Dies ist eine Überprüfung, um festzustellen, ob die cgroup ordnungsgemäß bereitgestellt ist.
# mount | grep ^cgroup
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
Sie können sehen, dass jede Gruppe (z. B. "CPU" und "Geräte") vorhanden ist und unter "/ sys / fs / cgroup" bereitgestellt wird.
Überprüfen Sie zunächst den Start des Docker-Dämons.
Es ist in Ordnung, den systemd-Dienst "docker.service" auszuführen, aber es ist bequemer, "dockerd" direkt auszuführen, da Sie direkt eine Fehlermeldung erhalten. Führen Sie den Befehl "dockerd" wie folgt aus. (Referenz: Offizielles Dokument Statische Binärdateien installieren)
# dockerd &
Wenn ein Fehler auftritt, wird in der letzten Zeile der Ausgabe eine Meldung ähnlich der folgenden angezeigt:
failed to start daemon: Error XXXXXXXXXX
Wenn es keine solche Fehlermeldung gibt, scheint es, dass es vorerst normal gestartet wurde.
Versuchen Sie, "Docker Info" auszuführen.
# docker info
Ich habe folgende Ausgabe erhalten:
Client:
Debug Mode: false
Server:
Containers: 5
Running: 0
Paused: 0
Stopped: 5
Images: 0
Server Version: 19.03.10
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 5.6.15
Operating System: Linux From Scratch 20200528-systemd
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.432GiB
Name: DockerOnLFS
ID: PMIG:ONBA:YGH6:XMWF:GFGH:EW66:2GBR:A2E4:4D5X:TBWT:M2BL:KRVE
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
Versuchen Sie, "Docker Run Hello-World" auszuführen. (Referenz: Offizielles Dokument Statische Binärdateien installieren)
# docker run hello-world
Ich habe folgende Ausgabe erhalten:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest
INFO[2020-06-08T10:56:23.077433898+09:00] shim containerd-shim started
address="/containerd-shim/moby/fa9173d0b26b33c1075296abd578df5c0c088a61f5683214d60bbf5d1f12fa47/shim.sock" debug=false pid=504
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
INFO[2020-06-08T10:56:24.864625786+09:00] shim reaped
id=fa9173d0b26b33c1075296abd578df5c0c088a61f5683214d60bbf5d1f12fa47
INFO[2020-06-08T10:56:24.874963601+09:00] ignoring event
module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
Danach habe ich versucht, die offizielle Dokumentation Tutorial Teil 2 auszuführen. Es funktioniert gut.
Beenden Sie den Dockerd-Prozess, den Sie in den obigen Schritten ausgeführt haben.
# kill -SIGKILL $(pidof dockerd)
Starten Sie "docker.service". (Referenz: Offizielles Dokument Docker mit System steuern> Docker-Daemon starten)
# systemctl start docker.service
Wenn es keine Fehler gibt, sollte es keine Fehler und keine Ausgabe geben.
Führen Sie bei Bedarf systemctl enable docker.service
aus, damit dieser Dienst beim Systemstart automatisch gestartet wird. (Referenz: Offizielles Dokument [Schritte nach der Installation für Linux> Docker so konfigurieren, dass es beim Booten startet](https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on- boot)))
# systemctl enable docker.service
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Überprüfen Sie den Status des Dienstes für alle Fälle.
# systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset:
enabled)
Active: active (running) since Mon 2020-06-08 11:27:52 JST; 9min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 269 (dockerd)
Tasks: 27 (limit: 1755)
Memory: 98.5M
CGroup: /system.slice/docker.service
tq269 /usr/bin/dockerd -H fd://
mq284 containerd --config /var/run/docker/containerd/containerd.toml --log-level info
08. Juni 11:27:50 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:50.415279942+09:00" level=warning msg="Your kernel does not support cgroup blkio throttle.write_bps_device"
08. Juni 11:27:50 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:50.415333378+09:00" level=warning msg="Your kernel does not support cgroup blkio throttle.read_iops_device"
08. Juni 11:27:50 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:50.415385780+09:00" level=warning msg="Your kernel does not support cgroup blkio throttle.write_iops_device"
08. Juni 11:27:50 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:50.438407022+09:00" level=info msg="Loading containers: start."
08. Juni 11:27:51 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:51.864165833+09:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
08. Juni 11:27:51 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:51.957543814+09:00" level=info msg="Loading containers: done."
08. Juni 11:27:52 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:52.591932252+09:00" level=info msg="Docker daemon" commit=9424aea graphdriver(s)=overlay2 version=19.03.10
08. Juni 11:27:52 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:52.663437436+09:00" level=info msg="Daemon has completed initialization"
08. Juni 11:27:52 DockerOnLFS systemd[1]: Started Docker Application Container Engine.
08. Juni 11:27:52 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:52.950638271+09:00" level=info msg="API listen on /run/docker.sock"
DockerOnLFS ist übrigens der Hostname.
Außerdem werden Warnmeldungen wie "Ihr Kernel unterstützt cgroup blkio throttle.write_bps_device" nicht angezeigt, da das entsprechende Kernelmodul nicht erstellt wurde. Im Moment verstehe ich nicht, dass Docker funktioniert und was diese Module sind, also werde ich es in Zukunft verstehen und es vorerst einfach ignorieren.
Das ist alles für den Text.
Recommended Posts