docker - docker in docker on a --create-with-container gce 导致分段错误(核心转储)
问题描述
我正在尝试在 gce 上的 docker 中运行 docker,但无济于事。我在主机上使用了类似的设置,效果很好。但是,当我尝试它时,--create-with-container
我得到:
Segmentation fault (core dumped)
Segmentation fault (core dumped)
我在镜像中安装了 docker。当映像在普通主机上运行时,它可以正常工作。这是我尝试的方法:
gcloud compute instances \
create-with-container docker-in-docker-on-cge \
--container-restart-policy=never \
--container-privileged \
--container-mount-host-path=host-path=/var/run/docker.sock,mount-path=/var/run/docker.sock \
--container-mount-host-path=host-path=/usr/bin/docker,mount-path=/usr/bin/docker \
--container-image=$MYIMAGE
你认为这是可能的吗?如果是,我该怎么办?
谢谢
解决方案
当您使用命令gcloud compute instances create-with-container
创建运行容器镜像的 GCE VM 实例时,会部署容器优化操作系统 (COS)。这是为运行 Docker 容器而优化的操作系统。但它缺少典型 Linux 发行版中的许多组件。
它有很多限制,例如 COS 内核被锁定;您无法安装第三方内核模块或驱动程序。依赖于内核模块、驱动程序和其他在 COS 中不可用的附加包的容器化应用程序可能无法运行。这是一种具有较小攻击面的锁定环境,可以尽可能安全地运行您的容器。
更多详细信息,请参阅容器优化操作系统概述
Google 不太可能支持 COS 中的 Docker-in-Docker 配置。
除此之外,还有很好的解释为什么运行嵌套的 Docker 配置很麻烦,以及解决方法可能是什么:
上面列出的两者均基于 Docker-in-Docker 功能 Jérôme Petazzoni 的作者的原始文章:Using Docker-in-Docker for your CI or testing environment?三思而后行。
推荐阅读
- r - 将 ntile() 与 group_by() 与 dplyr 一起使用
- java - java外部函数调用saxon 9.9he xslt
- html - 背景颜色和悬停不适用于可滚动 HTML 表格中的粘性列。表格设计也不是跨浏览器一致的
- php - 无法在 Docker 中安装 MongoDB PHP 扩展
- angular - 边缘浏览器不播放上传的 WAV 音频文件
- javascript - firebase:日期对象方法返回错误的值
- php - Yii2 Kartik 文件输入问题
- go - Goroutine 概念:直接调用 vs 使用函数字面量调用
- react-native - 反应本机键盘应该只推送文本输入而不是整个屏幕
- c# - 测试资源管理器 (VS) 显示 '
'