AppArmor включен в системе, но профиль docker-default не может быть загружен [Ubuntu Core 16]

Я столкнулся с проблемой запуска docker snap на шлюзе Dell 5100 IoT Edge Gateway. У меня есть другой шлюз Dell - 3001 - который НЕ сталкивается с этой проблемой.

Вот шаги, которые я выполнил на шлюзе Dell 5100:

Установил Docker Snap, вот вывод 'snap list':

admin@localhost:~$ snap list
Name             Version          Rev  Developer   Notes
bluez            5.44-2           84   canonical   -
core             16.04.1          394  canonical   -
docker           17.03.1-ce-1     124  docker-inc  -
modem-manager    1.6.2-5          82   canonical   -
network-manager  1.2.2-10.2       166  canonical   -
snapweb          0.26.1           207  canonical   -
stlouis          16.04-1.13       11   canonical   -
stlouis-kernel   4.4.0-77-1       19   canonical   -
tpm2             1.0-4            18   canonical   -
uefi-fw-tools    1.4.1-0.7.2+git  7    canonical   -

После установки я выполнил команду, указанную в docker.help, чтобы включить нужные интерфейсы snap:

sudo snap connect docker:home :home

Вывод команды 'snap interfaces' после выполнения команды из #2 выше.

$ snap interfaces | grep docker
:docker-support           docker:privileged,docker:support
:firewall-control         docker
:home                     docker
:network                  docker,snapweb,tpm2,uefi-fw-tools
:network-bind             docker,snapweb,tpm2
docker:docker-daemon      docker:docker-cli
admin@localhost:~$

Затем я проверил состояние apparmor для docker с помощью следующей команды:

В отличие от того, что я вижу в выводе 3001 для той же команды, docker-default отсутствует:

$ sudo aa-status | grep docker
   snap.docker.compose
   snap.docker.docker
   snap.docker.dockerd
   snap.docker.help
   snap.docker.dockerd (1582)
   snap.docker.dockerd (1627)

Вот ВЫХОДНЫЕ данные шлюза Dell 3001 для статуса apparmor и списка привязок:

Большая разница между 3001 и 5100 заключается в версии ОС - я новичок в Ubuntu Core и не могу понять, почему docker-default отсутствует в статусе apparmor. Я перезагружался, восстанавливал заводские установки и пробовал многое другое. Проблема проявляется следующим образом:

Я могу извлечь образ, и это работает, я использовал следующую команду:

sudo docker pull eclipse-mosquitto:1.4.10

Образ извлекается, но когда я пытаюсь запустить его:

$ sudo docker run -d -p 1883:1883 -p 9001:9001 --name mqtt -t eclipse-mosquitto:1.4.10
d11e29c04064ea3c546c6c9141abae73508dd2cc98492860accb4461af40b661
docker: Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded...

Я также попытался запустить его с политикой no confinement, тогда я получаю oci runtime error:

$ sudo docker run -d --security-opt apparmor=noconfinement -p 1883:1883 -p 9001:9001 --name mqtt -t
eclipse-mosquitto:1.4.10
fe501196f9ac0d27e82b43069aafee4c806d80c1ae9ce363040b96996d74f963
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused
"process_linux.go:258: applying cgroup configuration for process caused \"mkdir /var/lib/snapd/hostfs/sys/fs/cgroup/cpuset/docker: permission denied\"".

Обратите внимание, что те же шаги на шлюзе Dell 3001 не имеют этих двух проблем, описанных выше.

1
задан 6 October 2017 в 07:52

3 ответа

Во-первых, извинения за то, что не был получен ответ на Вашу очень важную проблему. Как примечание другим, которые могут столкнуться с этой той же проблемой, основным затруднением проблемы, было то, что базовый снимок на 3001, куда докер будет работать успешно, был в более новой базовой поспешной версии, тогда как на этих 5100, базовый снимок застрял в той же устаревшей версии, которая поставила с фабрикой изображение Ядра Ubuntu. Устаревшая версия имела проблему, которая сделала получающие более новые версии базового снимка не функцией правильно. Вопрос был решен о стороне Хранилища Ubuntu так, чтобы этот более старый базовый снимок мог быть обновлен к последней проверенной версии, таким образом, эта конкретная проблема не должна влиять ни на кого больше.

Кроме того, для дальнейшего использования я хотел бы указать на Вас на snapcraft.io форумы, где все привязывается, и Ядро Ubuntu обсуждены.

2
ответ дан 7 December 2019 в 12:32

Вы на самом деле отсутствуете --security-opt seccomp:unconfined опция и -v /sys/fs/cgroup:/sys/fs/cgroup:ro свяжите монтируются (они оба не имеют никакого смысла при использовании снимка докера, так как он уже работает полностью заключенный), настолько использующий:

--security-opt apparmor:unconfined --security-opt seccomp:unconfined -v /sys/fs/cgroup:/sys/fs/cgroup:ro

правильный поступок здесь... поспешное заключение повторилось, исполняемый файл докера будет заботиться о безопасности.

1
ответ дан 7 December 2019 в 12:32

Это не выглядит хорошим, поскольку это - очень старая версия базового снимка. В основном эта проблема произошла однажды и была сообщена представителем Dell 5 месяцев назад.

Зафиксировать его.

  1. Выполните следующую команду, чтобы усовершенствовать все снимки

    sudo snap refresh
    
  2. Если Вы поражаете проблему следующим образом при обновлении базового снимка от хранилища бренда

    Error cannot refresh "core" :cannot refresh "core" to  revision xxxx: no validation by "xxxxxx"
    

    Это означает, что базовый снимок еще не проверен, хотя он был квалифицирован. Однако можно было все еще обновить его с --ignore-validation опция путем выполнения:

    sudo snap refresh core --ignore-validation
    

Поскольку Jim рекомендовал, все поспешные и связанные с ядром человечности обсуждения в наше время, перемещенные в snapcraft.io форум. Это - предпочтительное место для мгновенного обсуждения, где Вы всегда получаете своевременную обратную связь.

0
ответ дан 7 December 2019 в 12:32

Другие вопросы по тегам:

Похожие вопросы: