背景
最近在开发一个功能,需要支持TensorFlow训练Docker镜像的构建。最初构建服务是部署在物理机上的,虽然可以使用,但更新时都比较麻烦,并且偶尔会受到机器宕机、磁盘空间不足的困扰。而K8s集群有比较完善的监控和磁盘清理机制,所以就打算迁移到K8s集群。
其中遇到一个问题是:如何在容器中执行Docker命令?
我最初的解决方案是直接在Docker镜像中安装Docker环境,从而可以运行docker命令,但尝试了几次都不可行,并且也会造成Docker镜像偏大,构建缓慢。
后来转念一想,既然宿主机上一定有Docker环境,为何不直接使用宿主机的Docker环境呢?
实现思路
通过磁盘映射,将宿主机的Docker目录映射到容器中,从而可以直接如何在容器中执行Docker命令。
实现方案
容器目录 | 宿主机目录 |
---|---|
/var/run/docker.sock | /var/run/docker.sock |
/etc/sysconfig/docker | /etc/sysconfig/docker |
/etc/docker/certs.d | /etc/docker/certs.d |
/usr/bin/ | /usr/bin/ |
网友评论