首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ubuntu活动盘中运行docker

在ubuntu活动盘中运行docker
EN

Stack Overflow用户
提问于 2015-05-15 06:53:27
回答 5查看 6.9K关注 0票数 26

我想知道是否有可能在Ubuntu14.04 U盘中安装和运行Docker。

我尝试使用8 GB U盘,4 GB用于安装,4 GB用于持久化存储,但在运行容器时不断收到错误(在拉取时没有问题)。

以下是我的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

在运行docker容器时,我得到的当前错误是:

[8] System error: mountpoint for cpu not found 

OBS:有时错误是cpuset或未找到设备

我使用的活动磁盘的内核是:

$ uname -r
3.13.0-32-generic

如果Ubuntu live disk不是运行Docker的最好的live-disk,有没有其他的替代方案,它有一些图形用户界面,而不仅仅是一个运行docker的简单终端?

我这么说是因为我想把Docker介绍给我的父母,但他们不想在他们的PC上安装linux,所以我需要一些简单的图形界面来写下Dockerfile,打开浏览器等等。

更新

我发现在安装过程中,设置cgroup-lite依赖initctl: Unknown job: cgroup-lite时出现了一个错误。我还读到一些ubuntu需要安装设备或,这样docker安装才能正常工作。

因此,我安装了它并重新安装了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 

在尝试运行容器时,我使用receive>

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

不确定内核是否不支持cgroup,但如果是这样,那么是否可以在livedisk中更新内核(持久化?)?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-05-25 03:10:27

通过将Docker存储改为设备映射程序而不是AUFS,我成功地做到了这一点。

如果您的系统不使用Systemd

您只需更改/etc/default/docker以在其中包含以下内容:

DOCKER_OPTS="--storage-driver=devicemapper"

如果您的系统使用Systemd

请参阅docker start命令末尾的this answer和添加--storage-driver=devicemapper

:我已经设法让容器运行得很好了,但我更喜欢使用AUFS.

我意识到该分区在默认情况下并不使用aufs,而是类似于cawcow (现在记不起来了)。

我还尝试使用AUFS在grub中使用union=aufs标志,但在运行docker守护进程时,我得到了一个看起来与https://github.com/docker/docker/issues/7321相关的FATA[0000] Shutting down daemon due to errors: error intializing graphdriver: backing file system is unsupported for this graph driver

我将在这里留下我的答案,因为它是这个问题的变通方法,但在我看来,如果有人设法使用AUFS来实现这一点,那将是一个更好的答案。

票数 18
EN

Stack Overflow用户

发布于 2015-05-25 01:06:53

您希望告诉Docker守护进程将与您的容器相关的数据存储在持久存储上。

默认情况下,docker守护进程将这些数据放入/var/lib/docker。您可以使用--graph docker daemon option更改该位置

票数 6
EN

Stack Overflow用户

发布于 2019-02-05 08:56:23

我在Debian Live system上也遇到过类似的问题。对于最新的docker,更改/etc/default/docker不会做任何更改。

--storage-driver=vfs附加到/lib/systemd/system/docker.service对我很有帮助:

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

(vfs的性能可能很差,但aufsoverlay2devicemapper对我来说不能正常工作。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30248794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档