如何在Docker容器中安装/启动Docker引擎服务

拉基卜

我正在从jenkins的官方docker容器中运行jenkins。而且我dockerfilehttps://docs.docker.com/engine/installation/linux/debian/上具有以下指示

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
  • sudo docker service start在容器内以bash运行

这是我得到的:

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,则需要将该容器作为特权容器运行。

因此需要这样的东西1):

docker run --privileged your_image:tag

您还需要谨慎使用iptables和App Armour,但这在稍作修改后仍然可以使用。


另一种方法是授予对容器内的docker守护进程的访问,例如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/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在docker容器中启动像mysql这样的服务?

来自分类Dev

如何在 docker 容器中安装主管?

来自分类Dev

如何在Mac版Docker中自动启动Docker容器?

来自分类Dev

如何在无法启动的 Docker 容器中创建目录?

来自分类Dev

如何在我的ubuntu容器中安装Docker?

来自分类Dev

如何在Docker Ubuntu容器中安装软件包?

来自分类Dev

如何在Azure容器服务Docker中扩展VM?

来自分类Dev

如何使docker引擎再次启动?

来自分类Dev

在 docker 容器内启动服务

来自分类Dev

当Docker容器未启动时,如何在Docker中恢复Postgres数据库?

来自分类Dev

如何在更改容器后获取正确的数据并在 docker 中重新启动容器

来自分类Dev

如何从 VM 访问 docker 容器中的服务?

来自分类Dev

如何在需要“服务器重启”的Docker容器(Windows 2016 Server)上安装Windows功能?

来自分类Dev

如何在启动时在boot2docker中自动启动容器?

来自分类Dev

如何启动Docker容器作为服务器

来自分类Dev

在Docker容器中运行的Debian上自动启动ntp服务

来自分类Dev

是否可以在Docker容器中安装复杂的服务器?

来自分类Dev

如何在Docker容器中向前移植?

来自分类Dev

如何在Docker容器中运行命令

来自分类Dev

如何在Windows中播种Docker容器

来自分类Dev

在Docker容器中启动Jenkins

来自分类Dev

默认情况下,如何在Docker容器中启动php-fpm?

来自分类常见问题

如何在已停止/未启动的Docker容器中编辑文件

来自分类Dev

如何在OpenShift上从Docker容器内部启动新的Docker容器

来自分类Dev

在Docker容器中安装PostgreSQL

来自分类Dev

在Docker容器中安装Postgis

来自分类Dev

在Docker容器中安装PostgreSQL

来自分类Dev

在Docker容器内自动启动服务

来自分类Dev

如何在Docker容器内的Ubuntu上安装自制软件

Related 相关文章

  1. 1

    如何在docker容器中启动像mysql这样的服务?

  2. 2

    如何在 docker 容器中安装主管?

  3. 3

    如何在Mac版Docker中自动启动Docker容器?

  4. 4

    如何在无法启动的 Docker 容器中创建目录?

  5. 5

    如何在我的ubuntu容器中安装Docker?

  6. 6

    如何在Docker Ubuntu容器中安装软件包?

  7. 7

    如何在Azure容器服务Docker中扩展VM?

  8. 8

    如何使docker引擎再次启动?

  9. 9

    在 docker 容器内启动服务

  10. 10

    当Docker容器未启动时,如何在Docker中恢复Postgres数据库?

  11. 11

    如何在更改容器后获取正确的数据并在 docker 中重新启动容器

  12. 12

    如何从 VM 访问 docker 容器中的服务?

  13. 13

    如何在需要“服务器重启”的Docker容器(Windows 2016 Server)上安装Windows功能?

  14. 14

    如何在启动时在boot2docker中自动启动容器?

  15. 15

    如何启动Docker容器作为服务器

  16. 16

    在Docker容器中运行的Debian上自动启动ntp服务

  17. 17

    是否可以在Docker容器中安装复杂的服务器?

  18. 18

    如何在Docker容器中向前移植?

  19. 19

    如何在Docker容器中运行命令

  20. 20

    如何在Windows中播种Docker容器

  21. 21

    在Docker容器中启动Jenkins

  22. 22

    默认情况下,如何在Docker容器中启动php-fpm?

  23. 23

    如何在已停止/未启动的Docker容器中编辑文件

  24. 24

    如何在OpenShift上从Docker容器内部启动新的Docker容器

  25. 25

    在Docker容器中安装PostgreSQL

  26. 26

    在Docker容器中安装Postgis

  27. 27

    在Docker容器中安装PostgreSQL

  28. 28

    在Docker容器内自动启动服务

  29. 29

    如何在Docker容器内的Ubuntu上安装自制软件

热门标签

归档