docker in docker

docker run --rm可以从一个镜像启动容器,并在容器执行完成后自动删除,这在计算任务中非常有用。

例如,我们通过以下步骤完成计算任务容器的启动:

1 将输入数据通过卷挂载方式连接到计算任务容器;

2 容器启动,执行命令启动工具;

3 工具加载数据进行计算,并将结果写入到数据卷;

4 计算完成,容器销毁。

当我们的任务都是基于容器环境时,启动上述步骤的docker命令是在容器内部执行的,我们可以通过挂在宿主机的docker命令来实现该操作:

1 挂在docker命令工具:

  {caltool}:
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /root/.docker/config.json:/root/.docker/config.json

其中,caltool是我们的计算任务工具服务的名称,挂在宿主机的docker.sock/docker和config.json,假定docker在宿主机和容器中都是root用户。

2 在容器构建时,安装docker运行依赖库libltdl-dev:

in container‘s Dockerfile
    RUN apt-get update && apt install -y libltdl-dev

3 在容器中调用容器执行任务:

docker run --rm  -v [调度容器数据目录/data]:[计算工具容器数据目录/mnt/work] [镜像]
时间: 2024-07-31 22:26:32

docker in docker的相关文章

【Docker】Docker是什么?怎么安装?怎么用?

 从今天开始学习Docker,通过对网上资料的搜集与学习,记录一下. 是什么 ? Docker是一个基于LXC实现的类似于VMs的超轻量级虚拟机. 它与VMs的区别在于,VMs提供的是一个完整的操作系统虚拟环境,从硬件层次上,包含了大量类似硬件驱动.虚拟处理器.网络接口等等并不需要的信息,并且虚拟机也需要比较长时间的启动,同时也会消耗大量的内存.CPU 资源. 而Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了

Docker EE/Docker CE简介与版本规划

近日,Docker发布了Docker 17.03.进入Docker 17时代后,Docker分成了两个版本:Docker EE和Docker CE,即:企业版(EE)和社区版(CE).那么这两个版本有什么区别呢?不仅如此,Docker进入17.03后,版本命名方式跟之前完全不同,以后Docker又会有怎样的版本迭代计划呢?本文将为您一一解答. 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器

[docker] 管理docker容器中的数据

之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两种管理Docker中数据的主要方法. 数据卷 数据卷容器 数据卷 一个数据卷就是经过特殊设计的,在一个或多个容器中通过UFS文件系统提供的一些特性 实现数据持久化或共享. 数据卷可以在容器之间共享和重复利用 可以对数据卷里的内容直接进行修改 对镜像的更新不会改变数据卷的内容 卷会一直持续到没有容器使

(转) Docker EE/Docker CE简介与版本规划

随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise Edition).我们来看看他们之前的区别于联系. 原文链接:http://itmuch.com/docker/docker-1/ 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器和插件. D

【Linux】【Services】【Docker】Docker File

Docker Images: docker commit Dockerfile:文本文件,镜像文件构建脚本: Dockerfile:由一系列用于根据基础镜像构建新的镜像文件的专用指令序列组成: 指令:选定基础镜像.安装必要的程序.复制配置文件和数据文件.自动运行的服务以及要暴露的端口等: 命令:docker build: 语法:指令行.注释行和空白行: 指令行:由指令及指令参数构成: 指令:其字符不区分大小写:约定俗成,要使用全大写字符: 注释行:#开头的行,必须单独位于一行当中: 空白行:会被

理解Docker :Docker 网络

本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 1. Docker 网络概况 用一张图来说明 Docker 网络的基本概况: 2. 四种单节点网络模式 2.1 bridge 模式 Docker 容器默认使用 bridge 模式的网络.其特点

[转帖]Docker里运行Docker docker in docker(dind)

Docker里运行Docker docker in docker(dind) http://www.wantchalk.com/c/devops/docker/2017/05/24/docker-in-docer.html mark一下 学习原作者的内容. Posted on 2017-05-24 目的 制作一个可以build docker镜像的docker镜像,jenkins CI服务节点,部署到阿里云的容器服务集群里. 阿里云官方有完整的镜像,master和slave的都有,时间稍微久远了一

Docker inside Docker 基于 Alpine Linux

Study From https://hub.docker.com/_/docker/ 感慨一句 这些人真牛B .. 简单测试 拉取镜像 docker pull docker:dind 运行镜像 docker run -it --privileged --name dind -d docker:dind 查看镜像 [[email protected] ~]# docker exec -it some-docker sh / # docker version Client: Version: 18

Docker(二)-Docker安装

官方文档:https://docs.docker.com/ Docker 支持多平台的安装(Linux/Windows/OS X). 因为Docker原生支持Linux,所以,可以直接在Linux上运行,而且在Windows和 OS X 平台则需要借助轻量级的 Linux VM 运行. Ubuntu在线安装docker 在Ubuntu上安装Docker的说明取决于您使用的是Docker企业版(Docker EE)还是Docker社区版(Docker CE). 参考文档:https://docs.