gpt4 book ai didi

bash - 如何在 docker 容器中安装/启动 docker 引擎服务

转载 作者:行者123 更新时间:2023-11-29 09:25:20 25 4
gpt4 key购买 nike

我正在从 jenkins 的官方 docker 容器中运行 jenkins。我按照 https://docs.docker.com/engine/installation/linux/debian/ 处的说明获得了以下 dockerfile

FROM jenkins:2.32.1

# install docker inside this container
USER root
# Install Docker inside Jenkins
RUN apt-get update
RUN apt-get purge "docker.io*"
RUN apt-get update
RUN apt-get install -y apt-transport-https ca-certificates gnupg2
RUN apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
RUN echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list
RUN apt-get update
RUN apt-cache policy docker-engine
RUN apt-get update
RUN apt-get install -y docker-engine
RUN gpasswd -a jenkins docker
USER jenkins

然后我执行以下操作:

  • 从这个 dockerfile 构建一个镜像
  • 从镜像运行一个容器
  • root 用户
  • 在容器中执行 bash
  • 在容器内的 bash 中运行 sudo docker service start

这是我得到的:

root@1e0f4b325d58:/# sudo service docker start
mount: permission denied
rmdir: failed to remove ‘cpu’: Read-only file system
mount: permission denied
rmdir: failed to remove ‘cpuacct’: Read-only file system
mount: permission denied
rmdir: failed to remove ‘net_cls’: Read-only file system
mount: permission denied
rmdir: failed to remove ‘net_prio’: Read-only file system
/etc/init.d/docker: 96: ulimit: error setting limit (Operation not permitted)

最佳答案

如果你想在 docker 中运行 docker,你需要将容器作为特权容器运行。

所以 something like this ( 1 ) 是必需的:

docker run --privileged your_image:tag

您还需要小心使用 iptables 和 App Armour,但这在经过一些修补后才有效。


另一种方法是允许访问容器内的 docker 守护进程,like so ( 2 ):

docker run -v /var/run/docker.sock:/var/run/docker.sock your_image:tag

引用:

1 https://blog.docker.com/2013/09/docker-can-now-run-within-docker/

2 https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

关于bash - 如何在 docker 容器中安装/启动 docker 引擎服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41742330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com