Подтвердить что ты не робот

Запустите докер в живом диске ubuntu

Мне было интересно, можно ли установить и запустить Docker в Ubuntu 14.04 USB Live-Disk.

Я пытаюсь с помощью 8 ГБ USB, 4 ГБ для установки и 4 ГБ для сохраняемого хранилища, но я продолжаю получать ошибки при запуске контейнеров (нет проблем при их вытягивании).

Вот моя версия Docker:

$ sudo docker version
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 7c8fca2
OS/Arch (server): linux/amd64

И текущая ошибка, которую я получаю при запуске контейнера докеров:

[8] System error: mountpoint for cpu not found 

OBS: Иногда ошибка заключается в том, что cpuset или что устройства не найдены.

Ядро live-диска, которое я использую:

$ uname -r
3.13.0-32-generic

Если живой диск Ubuntu не лучший live-диск для запуска Docker, существуют ли любые другие альтернативы, у которых есть какой-то графический интерфейс с ним, а не просто простой терминал для запуска docker?

Я говорю об этом, потому что я пытаюсь представить Docker своим родителям, но они не хотят устанавливать Linux на своих ПК, поэтому мне нужен простой графический интерфейс для записи файла Docker, браузер и т.д.


UPDATE

Я видел, что во время установки возникла ошибка при настройке зависимости cgroup-lite initctl: Unknown job: cgroup-lite. Также я прочитал, что некоторым ubuntu нужно установить apparmor, чтобы установка докера работала правильно.

Итак, я установил его и переустановил docker (теперь cgroup-lite установлен без проблем), и теперь я получаю это при запуске sudo docker -d

INFO[0000] +job serveapi(unix:///var/run/docker.sock)   
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 
INFO[0000] +job init_networkdriver()                    
INFO[0000] -job init_networkdriver() = OK (0)           
WARN[0004] Your kernel does not support cgroup swap limit. 
INFO[0004] Loading containers: start.                   
......
INFO[0004] Loading containers: done.                    
INFO[0004] docker daemon: 1.6.2 7c8fca2; execdriver: native-0.2; graphdriver: aufs 
INFO[0004] +job acceptconnections()                     
INFO[0004] -job acceptconnections() = OK (0)            
INFO[0004] Daemon has completed initialization 

И при попытке запустить контейнер я получаю >

ERRO[0125] HTTP Error: statusCode=500 Cannot start container 90875e79dec37cec41a67aac235b81f0fc17c4e011cd6e5368a4b29336587f5b: 
[8] System error: permission denied

Не уверен, что ядро ​​не поддерживает cgroup, но если да, то можно ли обновить ядро ​​в liveisk (сохраняя его?)?

4b9b3361

Ответ 1

Мне удалось выполнить эту работу, изменив хранилище Docker на devicemapper вместо AUFS.

В основном просто нужно было изменить /etc/default/docker, чтобы иметь это в нем:

DOCKER_OPTS="--storage-driver=devicemapper"

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

Я понял, что раздел по умолчанию не использует aufs, но что-то вроде caw или cow (теперь не помню).

Я также попытался заставить его работать с использованием AUFS, используя флаг union=aufs в grub, но при запуске демона докеров я получаю a FATA[0000] Shutting down daemon due to errors: error intializing graphdriver: backing file system is unsupported for this graph driver, который выглядит как https://github.com/docker/docker/issues/7321

Я остану свой ответ здесь, так как это обходной путь для этой проблемы, но если кому-то удастся сделать эту работу с помощью AUFS, это, на мой взгляд, лучший ответ.

Ответ 2

Вы хотите, чтобы демон Docker сохранял данные, относящиеся к вашим контейнерам, в постоянном хранилище.

По умолчанию демон docker помещает эти данные в /var/lib/docker. Вы можете изменить это местоположение с помощью --graph демона докера --graph

Ответ 3

У меня была похожая проблема в системе Debian Live. Для последней версии docker изменение /etc/default/docker не вносит никаких изменений.

--storage-driver=vfs к /lib/systemd/system/docker.service только что помогло мне:

...
ExecStart=/usr/bin/dockerd --storage-driver=vfs -H fd://
...

(vfs могут иметь низкую производительность, но aufs, overlay2 и devicemapper не работали должным образом.)

Ответ 4

У меня были похожие проблемы, но с Ubuntu 16.04. Что я на самом деле сделал, чтобы заставить его работать

1) Я установил докер на Ubuntu Live

    sudo apt-get update

    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
      software-properties-common

    sudo apt-key fingerprint 0EBFCD88

    sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"

    sudo apt-get update

    sudo apt-get install docker-ce docker-ce-cli containerd.io

2) После установки Docker на Ubuntu Live. Вам нужно остановить докер с помощью

    sudo service docker stop

3) Затем отредактируйте файл в /lib/systemd/system/docker.service, используя

    sudo gedit /lib/systemd/system/docker.service

заменив эту строку

    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd  /containerd.sock

с этой линией

    ExecStart=/usr/bin/dockerd -g /media/ubuntu/something -H fd:// --containerd=/run/containerd  /containerd.sock

Поэтому в основном мы добавили -g/media/ubuntu/что-то, что является драйвером, который заменит ROOT DIR docker. Обратите внимание, что если драйвер NTFS, это не будет работать. Вам нужно иметь драйвер как ext4 или FAT.

4) После завершения перезагрузите демон

    sudo systemctl daemon-reload

5) перезапустите сервис докера

    sudo service docker restart

6) проверьте, что ROOT DIR изменился, запустив

    sudo docker info

Вы должны увидеть новый каталог там. В конце концов, это очень круто, так как вы можете иметь переносимые образы и контейнеры и запускать их на любом компьютере с Ubuntu, просто выполнив вышеупомянутые действия. Я не проверял это на Windows, но в любом случае мне всегда было больно работать с докером и окнами.