【问题标题】:How to upgrade docker container with previous network and volumes?如何使用以前的网络和卷升级 docker 容器?
【发布时间】:2017-02-27 14:50:24
【问题描述】:

我正在开发一个应用程序,我们在其中 pop containers 具有卷和自定义网络。

我需要添加管理员能够将正在运行的容器升级到最新版本的功能。所以我希望能够从中获取各种信息,然后使用旧配置弹出一个新容器。

问题

但是我不确定我真正需要在旧容器上抓取什么以及如何使用它。例如,

  • NetworkSettings.Networks 够用还是数据中其他地方有网络信息?
  • 如何使用Mounts 中的信息安装卷?

        {
            "Type": "volume",
            "Name": "841d6a1709b365763c85fb4b7400c87f264d468eb1691a660fe81761da6e374f",
            "Source": "/var/lib/docker/volumes/841d6a1709b365763c85fb4b7400c87f264d468eb1691a660fe81761da6e374f/_data",
            "Destination": "/home/mast/.ssh",
            "Driver": "local",
            "Mode": "",
            "RW": True,
            "Propagation": ""
        } 
    

【问题讨论】:

    标签: docker docker-networking docker-volume dockerpy


    【解决方案1】:

    我仍然需要检查网络部分,但使用前一个 Source 的完整路径作为新源可以挂载卷。

    更新volumes 是挂载点列表(目标不是源)。

    import docker
    containers = docker_api.containers()
    
    docker_api.create_container(
        image='docker.site.fr:5000/coaxis/coaxisopt_daemon:latest', 
        volumes=['/home/mast/.ssh', '/etc/mast'], 
        host_config=docker_api.create_host_config(
            binds={
                    "/var/lib/docker/volumes/841d6a1709b365763c85fb4b7400c87f264d468eb1691a660fe81761da6e374f/_data": {
                        'bind': "/home/mast/.ssh",
                        'mode': 'rw'
                    },
                    "/var/lib/docker/volumes/002730cbb4dd9b37ad808915a60081508885d533fe003b529b8d0ab4fa46e92e/_data": {
                        'bind': "/etc/mast",
                        'mode': 'rw'
                    }
                }
        ))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 2020-07-17
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      相关资源
      最近更新 更多