Używam docker inspect
, aby uzyskać informacje o obrazie. Na wyjściu znajduje się Config
i ContainerConfig
, a większość wartości jest taka sama, z wyjątkiem CMD
.Czym różni się Config i ContainerConfig w oknie dokowanym?
W praktyce efekt Config
. Bo muszę dodać cmd w poleceniu run. $ docker run -it debian bash
Zastanawiam się, jaka jest różnica między tymi dwoma przedmiotami?
$ docker inspect debian
[
{
"Id": "7abab0fd74f97b6b398a1aca68735c5be153d49922952f67e8696a2225e1d8e1",
......
"ContainerConfig": {
"Hostname": "e5c68db50333",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": null,
"Cmd": [
"/bin/sh",
"-c",
"#(nop) CMD [\"/bin/bash\"]"
],
"Image": "d8bd0657b25f17eef81a3d52b53da5bda4de0cf5cca3dcafec277634ae4b38fb",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {}
},
"Config": {
"Hostname": "e5c68db50333",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": null,
"Cmd": [
"/bin/bash"
],
"Image": "d8bd0657b25f17eef81a3d52b53da5bda4de0cf5cca3dcafec277634ae4b38fb",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {}
},
......
}
]
Jeśli utworzę obraz z 'Dockerfile'. "ContainerConfig" pochodzi z 'FROM: image'? – firelyu
@firelyu pochodzi z ostatniej warstwy wykonanej przez budowanie dockera z ostatniej linii pliku Dockerfile. – VonC
@firelyu dotyczące "warstw", patrz http://stackoverflow.com/a/36079044/6309 – VonC