zoukankan      html  css  js  c++  java
  • 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] [镜像]
  • 相关阅读:
    Angular2与Angular1的区别
    JS的浅拷贝与深拷贝
    浅谈js的事件冒泡和事件捕获
    JS中的call、apply、bind方法
    WEB前端性能优化常见方法
    开放定址法——线性探测(Linear Probing)
    分离链接法(Separate Chaining)
    概观散列函数
    散列——动机引入
    AVL重平衡细节——插入
  • 原文地址:https://www.cnblogs.com/dadream/p/8058922.html
Copyright © 2011-2022 走看看