我正在努力实现一种机制来升级容器的基本映像。为此,我需要:
- 从当前容器中获取卷列表;
- 使用旧容器的配置(卷、网络等)创建一个新容器
创建新容器
我试着这样做:
docker_api.create_container(
image=creation_data.get('image'),
hostname=creation_data.get('hostname'),
volumes=creation_data.get('volumes'),
host_config=docker_api.create_host_config(
binds=creation_data.get('volume_bindings'),
port_bindings={80: 80},
restart_policy={"MaximumRetryCount": 0, "Name": "always"}
))
创建数据
从旧容器中creation_data
收集的位置如下:
{
'image': 'docker.akema.fr:5000/coaxis/coaxisopt_daemon:latest',
'hostname': "test-01",
'volumes': [
"/home/mast/.ssh",
"/etc/mast"
],
'volumes_bindings': {
"841d6a1709b365763c85fb4b7400c87f264d468eb1691a660fe81761da6e374f": {
'bind': "/home/mast/.ssh",
'mode': 'rw'
},
"002730cbb4dd9b37ad808915a60081508885d533fe003b529b8d0ab4fa46e92e": {
'bind': "/etc/mast",
'mode': 'rw'
}
},
'networking_config': {
'EndpointsConfig': {'opt_network_508be7': {'IPAMConfig': {'IPv4Address': '10.0.0.1'}}}
}
}
问题
检查新容器时,该Mounts
部分似乎没有正确的卷,Source
字段是不同的路径。
如何根据旧容器信息将卷挂载到新容器?