Docker (CentOS 7 с SYSTEMCTL): не удалось подключить tmpfs & cgroup
(Я начинающий Докер. Затем я следил за некоторыми учебниками для CentOS-7)
в своем CentOS 7.2
, Я попытался изучить Docker, выполнив следующие шаги.
# docker version
Client:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 15:39:25 2016
OS/Arch: linux/amd64
Server:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 15:39:25 2016
OS/Arch: linux/amd64
# docker pull centos:latest
# docker images
centos latest 778a53015523 12 days ago 196.7 MB
# mkdir ~/docker/centos7-systemd
# cd ~/docker/centos7-systemd
# vi Dockerfile
FROM centos
MAINTAINER "XXXX XXXX" <xxxx@xxxx.com>
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done);
rm -f /lib/systemd/system/multi-user.target.wants/*;
rm -f /etc/systemd/system/*.wants/*;
rm -f /lib/systemd/system/local-fs.target.wants/*;
rm -f /lib/systemd/system/sockets.target.wants/*udev*;
rm -f /lib/systemd/system/sockets.target.wants/*initctl*;
rm -f /lib/systemd/system/basic.target.wants/*;
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
# docker build --rm -t local/centos7-systemd .
..
Successfully built 1a9f1c4938b3
# docker images
centos latest 778a53015523 12 days ago 196.7 MB
local/centos7-systemd latest 1a9f1c4938b3 8 seconds ago 196.7 MB
Итак, до этого момента все (кажется) в порядке.
Теперь проблема возникает, когда я бегу:
# docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/centos7-systemd
Failed to mount tmpfs at /run: Operation not permitted
Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
[!!!!!!] Failed to mount API filesystems, freezing.
что это вообще значит, а главное,что происходит и как я могу решить это, пожалуйста?
спасибо всем :)
5 ответов
попробуйте запустить контейнер в привилегированном режиме:
docker run -ti --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/centos7-systemd
это должно решить вашу проблему.
я следовал
docker run -ti --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/centos7-systemd
и придумали
Failed to insert module 'autofs4'
Failed to mount cgroup at /sys/fs/cgroup/systemd: No such file or directory
systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
Detected virtualization docker.
Detected architecture x86-64.
Welcome to CentOS Linux 7 (Core)!
Set hostname to <c7b8edb49c60>.
Initializing machine ID from random generator.
Cannot determine cgroup we are running in: No such file or directory
Failed to allocate manager object: No such file or directory
[!!!!!!] Failed to allocate manager object, freezing.
интересно, что он не работает на MacOS ?
у меня такая же проблема с Docker для Windows (1.12.3)...
$ docker logs bareos
systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
Detected virtualization docker.
Detected architecture x86-64.
Welcome to CentOS Linux 7 (Core)!
Set hostname to <bareos>.
Failed to install release agent, ignoring: No such file or directory
Failed to create root cgroup hierarchy: No such file or directory
Failed to allocate manager object: No such file or directory
[!!!!!!] Failed to allocate manager object, freezing.
последние boot2docker
нет systemd
. Мы не можем этого допустить!--2--> в контейнере Docker, если у хоста его нет. Поскольку важной папкой для этого является /sys/fs/cgroup/systemd
.
Итак, наконец, я создаю default
vm в VitualBox на основе Alpine Linux и default
docker-machine
С generic
драйвер.
как я уже сказал здесь, вы не вынуждены использовать--privileged=true
параметр (который может быть опасным IMHO), вы просто забыли добавить -v /run
на .
таким образом, ваша последняя команда запуска, которая должна работать, будет:
docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /run -p 80:80 local/centos7-systemd
MacOS X не требует монтирования Тома групп в контейнере
$docker run -it -p 80:80 ${ImageID}
после запуска многих экземпляров контейнера мой mac застрял в
[!!!!!!] Failed to mount API filesystems, freezing.
ссылка В настоящее время режим bash работает нормально для меня
$docker run -it -p 80:80 ${ImageID} /bin/bash