ubuntu的docker运⾏c...
背景
今天在Ubuntu 运⾏docker-cAdvisor时候遇到问题
用rand函数产生0到100
命令:
docker run --name=cadvisor --volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--privileged \
-
-volume=/var/lib/docker/:/var/lib/docker:ro \
google/cadvisor
处罚报错,导致cadvisor容器启动失败。
docker: Error response from daemon: error while creating mount source path '/var/lib/docker': mkdir
/var/lib/docker: read-only file system.
问题分析:
⽹上查资料, 在github的issue上⾯,也有⼀个Ubuntu 18 的技术员遇到类似问题:Error running cadvisor docker package on Ubuntu 18.04.4 LTS
问题要从--volume=/var/lib/docker/:/var/lib/docker:ro这个参数说起,cadvisor 容器之所以要挂载操作系统的/var/lib/docker
/var/lib/docker⽬
/var/lib/docker这个⽬录作为“data-root
data-root”。cadvisor容器就是
录, 是因为很多系统(例如CentOS)安装docker, 就会使⽤/var/lib/docker
/var/lib/docker⽂件夹中获取docker信息。
从/var/lib/docker
oracleparameter用法/var/lib/docker这个⽬录作coordinate用法
但是为什么CentOS可以, Ubuntu却不⾏呢?那是因为Ubuntu常⽤的dpk包安装的Docker并不是使⽤/var/lib/docker data-root”的,所以就导致了问题。Ubuntu的Docker的“data-root”可以⽤下⾯命令查:
为“data-root
docker info | grep "Docker Root Dir:"centos和ubuntu
结果是:
c语言代码在线编辑器
Docker Root Dir: /var/snap/docker/common/var-lib-docker
data-root”并重启docker实现。
/etc/docker/daemon.json 中修改 “data-root免费自学平台app下载
“Docker Root Dir”这个值,也可以在/etc/docker/daemon.json
故障处理:
/var/lib/docker 即可:
Docker Root Dir” 代替 /var/lib/docker
修改⼀下命令, ⽤ docker info 的“Docker Root Dir
DOCKER_ROOT_DIR=$( sudo docker info | grep "Docker Root Dir:" | sed 's/.*:\s*//' )
sudo  docker run  --name=cadvisor --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro  --
volume=/sys:/sys:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --privileged --volume=${DOCKER_ROOT_DIR}:/var/lib/docker:ro google/cadvisor
参考:
Error running cadvisor docker package on Ubuntu 18.04.4 LTS

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。