Présentation de Docker Engine à Linux From Scratch

introduction

Introduisez le moteur Docker dans un système d'exploitation Linux fait à la main construit sur la base de Linux From Scratch. Étant donné que Linux From Scratch est un système construit à partir de zéro à l'aide du code source, il n'y a pas d'autre choix que de créer Docker à partir de zéro. Le but est de comprendre Docker avant tout. Il ne vise pas l'utilisation pratique de Docker.

Comme le texte utilise un système d'exploitation Linux basé sur Linux From Scratch, il implique une tâche majeure de reconstruction de la source du noyau. Si vous n'avez pas l'intention d'utiliser Linux From Scratch, cela peut sembler sans rapport. Cependant, après la construction de la source du noyau, la procédure d'installation du binaire Docker et de configuration de l'environnement s'affiche. Je pense que Docker est emballé dans les principales distributions Linux, mais si vous utilisez une distribution qui ne le fait pas, je pense que la procédure décrite dans le texte peut être utile car vous utiliserez le binaire Docker. Je suis.

supposition

Pour créer Docker Engine à partir du code source, vous avez besoin de Docker lui-même. Par conséquent, nous allons commencer par installer le binaire Docker Engine officiellement fourni.

Si vous suivez la méthode Linux From Scratch pour vous en tenir à la construction à partir du code source, vous construirez à l'aide du code source Docker. Cependant, la création d'un environnement d'exploitation pour les binaires Docker Engine peut être une tâche ardue. De plus, une fois cet environnement créé, Docker fonctionnera, de sorte que l'on puisse voir que l'objectif a été atteint pour le moment. Dans cet article, nous expliquerons comment créer un environnement à l'aide de binaires Docker.

De plus, bien que cela ne soit pas essentiel, pour des raisons personnelles, toutes les étapes doivent être effectuées sur un système Linux From Scratch basé sur VMware Workstation. La raison en est simplement qu'il n'y avait pas de machine Linux libre. Il ne contient aucune information spécifique sur l'image virtuelle VMware, vous pouvez donc la considérer comme une opération du SE Linux pur.

Le PC et chaque logiciel utilisent:

article Contenu
Ordinateur portable Windows 7, 64 bits, amd, mémoire 4 Go (relativement pauvre)
VMware Workstation VMware Workstaion 10.0.7 build-2844087 (assez vieux)
Linux From Scratch DernièreversiondeSVNsystemdSVN-20200528(linux-5.6.15、gcc-10.1.0、systemd-245), construit comme une image virtuelle sur VMware. 64 bits, mémoire 1.5GB
Beyond Linux From Scratch SVNci-dessus-Installationdediversoutilssur20200528(lesprincipauxoutilsserontexpliquésdanslaprocéduresuivante)
Docker Dernier binaire Docker Engine: docker-19.03.10

procédure

1. Reconstruisez le noyau Linux

1.1. Aperçu de la reconstruction du noyau

Si vous avez construit Linux From Scratch sans aucune réflexion, vous n'avez probablement pas assez de paramètres de noyau Linux pour votre environnement Docker. Cela est dû au fait que certains des paramètres par défaut de la source du noyau ne sont pas des paramètres intégrés ou de construction de module, et beaucoup sont requis pour l'environnement Docker.

Pour reconstruire le noyau Linux, vous devrez utiliser le "système hôte" à partir duquel vous avez à nouveau construit Linux From Scratch. Cela signifie se reconnecter depuis le "système hôte" et utiliser la commande chroot pour reconstruire le noyau Linux dans l'environnement Linux From Scratch.

La manière de reconstruire le noyau Linux est certainement d'utiliser le "système hôte" d'origine, mais je ne pense pas qu'il soit nécessaire de voir à nouveau si le "système hôte" peut être préparé facilement. Vous l'avez peut-être déjà jeté.

Ce thème est plutôt réaliste, mais assez ennuyeux. Peut-être que recréer Linux From Scratch à partir de zéro peut être le moyen le plus rapide. Étant donné que l'accent est mis sur la création d'un environnement Docker, des informations détaillées sur la reconstruction du noyau ne sont pas affichées ici. Ce qui suit se concentrera sur le menu des paramètres des options du noyau pendant la reconstruction.

1.2. Vérifier les options de noyau requises

Le github Docker officiel a un script qui vérifie les paramètres requis du noyau. Il s'appelle check-config.sh. Téléchargez et exécutez ceci.

# wget https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh
# sh ./check-config.sh

La sortie ressemble à ceci:

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

(Ce qui suit est omis)

Les options du noyau indiquées sous «Généralement nécessaires» présentées ici sont requises dans l'environnement Docker. S'il est «activé», cela signifie qu'il est actuellement activé, et s'il est «manquant», cela signifie que le module du noyau correspondant n'existe pas. Au fait, si vous compilez le noyau Linux dans Linux From Scratch avec les paramètres par défaut, vous devriez voir de nombreux «manquants». La présence de «manquant» ne permet pas à Docker de fonctionner, à quelques exceptions près.

Les options du noyau listées sous ʻOptional Features` sont littéralement optionnelles et construisent les paramètres selon les besoins. Construisons-le selon les besoins à l'avenir.

Notez que sur la ligne suivante de «Généralement Nécessaire», «-cgroup hierarchy: inexistant ??» est indiqué ci-dessus. Cela signifie que le montage cgroup n'existe pas ou n'est pas correctement monté. Si vous définissez les paramètres de montage de groupe de contrôle après cela, cet affichage changera comme suit. Nous allons procéder afin d'obtenir un tel résultat de sortie.

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
1.3. Réinitialiser les options du noyau

Effectue le processus de reconstruction du noyau Linux. Cela signifie exécuter à nouveau le livre Linux From Scratch Build Linux Kernel (http://www.linuxfromscratch.org/lfs/view/systemd/chapter08/kernel.html). Ensuite, au cours de la procédure, à partir du menu de paramétrage des options lorsque make menuconfig est exécuté, activez les options nécessaires ci-dessous et effectuez l'installation du noyau Linux.

Voici les paramètres du noyau que j'ai définis. Si vous ne les définissez pas au moins, l'environnement Docker ne fonctionnera pas. Il peut y avoir des erreurs ou des lacunes en raison de l'historique du processus par essais et erreurs. Dès que je le remarquerai, je ferai des corrections.

 <Éléments de paramétrage du noyau>                                                       <Nom de l'option>
     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

(Menu de paramétrage du noyau Linux-5.6.15)

Je ne me soucie pas vraiment du paramètre intégré "* "et du paramètre de construction du module" M ". Si possible, sélectionnez "*" pour ceux qui peuvent être intégrés, et sélectionnez " M "pour ceux qui ne le peuvent pas.

1.4. Reconfirmation des options du noyau

Une fois que vous avez terminé la construction du noyau Linux, redémarrez le système en fonction de ce nouveau noyau Linux. Ensuite, essayez à nouveau d'exécuter le check-config.sh ci-dessus. La plupart de la sortie doit être «activée» au lieu de «manquante».

2. Présentation des outils

La configuration système requise pour déployer les binaires Docker en premier lieu est décrite dans la section Prérequis de la documentation officielle Installer Docker Engine à partir de binaires. Ce qui suit en est une simple traduction.

Même le système qui vient d'être construit par Linux From Scratch a déjà procps et xz installés. Pour 64 bits et le noyau 3.10 et supérieur, vous n'avez pas d'autre choix que de le choisir. Tout ce dont vous avez besoin ici est git et iptables. La hiérarchie des groupes de contrôle est un grand thème, je vais donc l'expliquer plus tard.

2.1. Make-ca etc.

Avant de commencer à installer git et ʻiptables, nous installerons make-ca`, ce qui est probablement un must. La configuration système requise indiquée ci-dessus peut être trop évidente et non spécifiée. Pour Linux From Scratch, qui crée tout à partir de zéro, aucun logiciel ne peut être obtenu sans le construire et l'installer vous-même.

«P11-kit» doit inclure «make-ca», et «wget» est requis pendant l'installation de «make-ca». Puisque wget est utilisé pour quelque chose, nous allons le présenter ici. make-ca, p11-kit et wget sont tous affichés dans la section Au-delà de Linux From Scratch. Installez selon la procédure d'installation fournie.

2.2. git Git de Beyond Linux From Scratch Suivez la page git.html) pour installer. Les packages dépendants doivent être cURL. La version est la dernière git-2.27.0 au moment de la rédaction du texte.

2.3. iptables Iptables de Beyond Linux From Scratch Installer selon la page de iptables.html). Les packages dépendants ne sont pas inclus (car cela pose problème). La version est la dernière ʻiptables-1.8.4` au moment de la rédaction du texte.

Le fichier de configuration iptables / etc / systemd / scripts / iptables utilise les paramètres indiqués dans la section Pare-feu personnel sur la page ci-dessus. Ajoutez les paramètres selon vos besoins.

3. Obtenez et installez les binaires Docker

3.1. Obtention et installation des binaires Docker

Sur la page Installer les binaires statiques (https://docs.docker.com/engine/install/binaries/) de la documentation Docker, il existe une URL de téléchargement binaire https://download.docker.com/linux/static/stable/ Il est montré. Puisque les sous-répertoires pour chaque architecture sont préparés, ici [docker-19.03.10.tgz] sous x86_64 (https://download.docker.com/linux/static/stable/x86_64/docker-19.03. Téléchargez 10.tgz). Toutes les opérations suivantes seront effectuées en tant qu'utilisateur root. (Référence: document officiel Installer les binaires statiques)

# wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.10.tgz

Cette archive tar est archivée avec des modules binaires dans un répertoire appelé docker.

# 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

Par conséquent, après avoir décompressé (décompressé) l'archive tar, nous l'installerons dans / usr / bin comme suit. (Référence: document officiel Installer les binaires statiques)

# tar xf docker-19.03.10.tgz
# cp -p docker/* /usr/bin
3.2. Obtention et installation du service Docker pour systemd

L'archive tar binaire ci-dessus n'inclut pas les fichiers de configuration du service docker.service, docker.socket pour systemd. Alors récupérez-les depuis le github officiel et déplacez-les vers le répertoire / lib / systemd / system qui contient les services systemd. (Référence: document officiel Control Docker with systemd> Créer manuellement les fichiers d'unité systemd)

# 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

4. Divers paramètres

4.1. Génération du groupe docker

Créez un groupe docker. (Référence: document officiel Étapes de post-installation pour Linux)

# groupadd docker

4.2. Paramètres liés à systemd

systemd 243 ou version ultérieure? De plus, il semble que la v2 soit adoptée par défaut pour cgroup, et il semble que diverses fonctions de Docker ne fonctionnent pas si elle est laissée en tant que v2. (J'ai oublié la source des informations que j'ai obtenues, donc je l'ajouterai plus tard)

Pour résoudre ce problème, ajoutez systemd.unified_cgroup_hierarchy = 0 comme option de démarrage pour / boot / grub / grub.cfg.

systemd.unified_cgroup_hierarchy=0

D'autres sites ont montré une solution partout pour ajouter cette description à GRUB_CMDLINE_LINUX_DEFAULT et exécuter ʻupdated-grub, mais la même chose est vraie. Puisque Linux From Scratch n'utilise pas GRUB_CMDLINE_LINUX_DEFAULT, spécifiez-le directement dans grub.cfg`.

À titre d'exemple concret, le fichier / boot / grub / grub.cfg de l'auteur est le suivant.

# 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
}

J'ai ajouté systemd.unified_cgroup_hierarchy = 0 à la fin de la ligne linux. Au fait, puisque j'utilise / boot monté sur une partition dédiée, la ligne linux ci-dessus devrait être décrite comme linux / vmlinux ... au lieu de linux / boot / vmlinux .... Je suis.

Après la correction, redémarrez le système.

4.3. Montage de cgroup

Définissez le montage pour c group (groupe de contrôle). Ajoutez la description suivante au fichier / etc / fstab et montez-le. (Référence: numéro 2683 de Docker Github)

# echo "cgroup /sys/fs/cgroup cgroup defaults 0 0" >> /etc/fstab
# mount -a

Pour confirmer, essayez ce qui suit: C'est la première vérification pour voir si le module du noyau a été généré.

# 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

La sortie devrait ressembler à celle ci-dessus. L'important ici est qu'il existe des lignes pour «mémoire» et «périphériques». Si vous ne voyez pas cela, cela signifie que les options du noyau Linux mentionnées ci-dessus n'ont pas été construites correctement.

Ensuite, procédez comme suit: Ceci est une vérification pour voir si le groupe de contrôle est correctement monté.

# 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)

Vous pouvez voir que chaque groupe (tel que cpu et devices) existe et est monté sous / sys / fs / cgroup.

5. Contrôle de fonctionnement

5.1. Confirmation du démarrage du démon docker

Tout d'abord, vérifiez le démarrage du démon Docker.

Il est normal d'exécuter le service systemd docker.service, mais il est plus pratique d'exécuter dockerd directement car il vous donnera directement un message d'erreur. Exécutez la commande dockerd comme suit. (Référence: document officiel Installer les binaires statiques)

# dockerd &

Si une erreur se produit, vous verrez un message similaire au suivant sur la dernière ligne de la sortie:

failed to start daemon: Error XXXXXXXXXX

S'il n'y a pas de tel message d'erreur, il semble qu'il a démarré normalement pour le moment.

5.2. Confirmation par docker info

Essayez d'exécuter docker info.

# docker info

J'ai eu la sortie suivante:

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

5.3. Confirmation par docker run hello-world

Essayez d'exécuter docker run hello-world. (Référence: document officiel Installer les binaires statiques)

# docker run hello-world

J'ai eu la sortie suivante:

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"

Après cela, j'ai essayé d'exécuter la documentation officielle Tutorial part2. Cela fonctionne bien.

6. paramètres systemd

6.1.arrêter le processus dockerd

Tuez le processus dockerd que vous avez exécuté dans les étapes ci-dessus.

# kill -SIGKILL $(pidof dockerd)
6.2. Démarrez docker.service

Démarrez docker.service. (Référence: document officiel Control Docker with systemd> Démarrer le démon Docker)

# systemctl start docker.service

S'il n'y a pas d'erreurs, il ne devrait y avoir aucune erreur ni sortie.

Si nécessaire, exécutez systemctl enable docker.service pour que ce service démarre automatiquement au démarrage du système. (Référence: document officiel [Étapes de post-installation pour Linux> Configurer Docker pour démarrer au démarrage](https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on- démarrage)))

# systemctl enable docker.service
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.

Vérifiez l'état du service au cas où.

# 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 juin 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 juin 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 juin 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 juin 11:27:50 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:50.438407022+09:00" level=info msg="Loading containers: start."
08 juin 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 juin 11:27:51 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:51.957543814+09:00" level=info msg="Loading containers: done."
08 juin 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 juin 11:27:52 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:52.663437436+09:00" level=info msg="Daemon has completed initialization"
08 juin 11:27:52 DockerOnLFS systemd[1]: Started Docker Application Container Engine.
08 juin 11:27:52 DockerOnLFS dockerd[269]: time="2020-06-08T11:27:52.950638271+09:00" level=info msg="API listen on /run/docker.sock"

Au fait, DockerOnLFS est le nom d'hôte.

De plus, des messages d'avertissement tels que Votre noyau ne prend pas en charge cgroup blkio throttle.write_bps_device sont affichés car le module de noyau correspondant n'a pas été construit. Pour le moment, je ne comprends pas que Docker fonctionne et quels sont ces modules, alors je vais le comprendre à l'avenir et l'ignorer pour l'instant.

C'est tout pour le texte.

Recommended Posts

Présentation de Docker Engine à Linux From Scratch
Présentation d'Amplify à Amazon Linux 2 AMI
[Linux] Flux de la mise sous tension au démarrage du PC
Comment faire fonctionner Linux depuis la console
Présentation d'un système d'entrée japonais dans Serene Linux
[Amazon Linux] Passage de la série Python 2 à la série Python 3
Réintroduction à Docker
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
Somme de 1 à 10
Comment faire fonctionner Linux depuis l'extérieur Procédure
Comment bien gérer les commandes Linux à partir de Python
[Linux] Introduction à Linux
Impossible de se connecter à MySQL depuis l'environnement Docker (Debian)
Sauvegarde de QNAP vers Linux avec rsync
Comment "mettre en cache" l'accès à la mémoire FPGA à partir de Linux
Copie de fichiers directement d'Amazon EC2 (Amazon Linux) vers S3
Présentation d'un environnement de bureau à Arch Linux (LightDM + Xfce4)
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
Soit Code Day68 à partir de zéro "709. To Lower Case"
[Amazon Linux 2] Passage de l'authentification par clé publique à l'authentification par mot de passe
Accès ODBC à SQL Server depuis Linux avec Python
Présentation de WebPay de Flask
Apprentissage profond à partir de zéro
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Présentation de serverspec à Linux
Transition de WSL1 à WSL2
Django memo n ° 1 à partir de zéro
Commandes Linux à retenir
De l'édition à l'exécution
Une histoire sur la création d'un système d'exploitation compatible UNIX / Linux à partir de zéro
[Linux] Copie des données de Linux vers Windows avec un script shell
[Linux] Compresser les dossiers et transférer des fichiers de la télécommande vers le local
Créez un environnement pour "Deep Learning from scratch" avec Docker
Présentation de l'image Docker de Kaggle sur Windows pour créer un environnement
Script Linux pour convertir les fichiers Markdown du format JupyterLab au format Qiita
De la construction de l'environnement au déploiement pour flask + Heroku avec Docker
Déployez Django + React à partir de zéro vers GKE (1) Développement backend - Nginx + Django
Déployer Django + React de zéro sur GKE: Table des matières
Connectez-vous à KUINS-III (VPN de l'Université de Kyoto) depuis Linux en utilisant PPTP
Après tout, l'histoire du retour de Linux à Windows
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
Connectez-vous à KUINS-III (VPN de l'Université de Kyoto) à partir de Linux en utilisant IKEv2