gpt4 book ai didi

运行容器时 Docker 容器的 networkMode 更改为默认值

转载 作者:行者123 更新时间:2023-12-02 20:31:25 25 4
gpt4 key购买 nike

Docker 版本 - v1.12
操作系统 - Ubuntu 14.04.4-LTS
集群模式 - Swarm

创建了一个覆盖网络:$ docker -H tcp://0.0.0.0:2375 network create --driver overlay --subnet=10.0.9.0/24 my-net
创建容器:
[发布] http://localhost:2375/container/create?name={id}

{
"Env": [
"env1=val1"
],
"Cmd": [
"/Run.sh",
"launch
],
"Image": "<image>",
"Volumes": {
"/tmp" : {}
},
"HostConfig": {
"NetworkMode": "my-net"
}
}
$docker inspect的回复:
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "my-net",
"PortBindings": null,
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
}

这将创建具有 networkMode 为 my-net 的容器.但是当我运行时
使用其余 API [POST] 的容器 http://localhost:2375/containers/{id}/start网络模式更改为 default .
$docker inspect的回复:
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": null,
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
}

最佳答案

问题在于 docker swarm API 更改以启动容器。此提交说明要传递的有效负载结构。我只需要更改有效负载:
[POST] http://localhost:2375/containers/{id}/start
有效载荷:

{
"NetworkMode": "my-net"
}

所有 docker 容器 hostConfig 属性都包含在有效负载中。如果留空,则所有属性都将重置为默认值。此 API 规范应记录在 swarm API 文档中以避免混淆。

关于运行容器时 Docker 容器的 networkMode 更改为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com