为什么Docker不能执行'bash'?

我在MacOSX上使用Docker(带有Boot2Docker)。

我可以从Docker Hub运行映像。

但是,当我尝试像这样运行自己的映像之一时:

docker run -P mylocalimage

要么

docker run -P mylocalimage bin/a3-write-back

要么

...

我得到:

docker "env: can't execute 'bash': No such file or directory"

我猜它找不到在容器中执行的bash二进制文件,但是为什么呢?

基本图像是 errordeveloper/oracle-jdk

谢谢你的帮助。

阿什莉

[{

"Architecture": "amd64",

"Author": "ABC email@email.com",

"Checksum": "tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",

"Comment": "",

"Config": {

"AttachStderr": false,

"AttachStdin": false,

"AttachStdout": false,

"Cmd": [],

"CpuShares": 0,

"Cpuset": "",

"Domainname": "",

"Entrypoint": [

"bin/a3-write-back"

],

"Env": [

"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/jdk1.8.0_25/bin",

"JAVA_HOME=/usr/jdk1.8.0_25"

],

"ExposedPorts": null,

"Hostname": "5bf0de3d0926",

"Image": "abd65ce243a5b015bb49f3e958103a5cc0c5f14938df4e480ded25f3ecf878e7",

"MacAddress": "",

"Memory": 0,

"MemorySwap": 0,

"NetworkDisabled": false,

"OnBuild": [],

"OpenStdin": false,

"PortSpecs": null,

"StdinOnce": false,

"Tty": false,

"User": "daemon",

"Volumes": null,

"WorkingDir": "/opt/docker"

},

"Container": "987d2279b6e42195fe8e732c0637798926db6cfaeab93fcc25a3f10dac73f111",

"ContainerConfig": {

"AttachStderr": false,

"AttachStdin": false,

"AttachStdout": false,

"Cmd": [

"/bin/sh",

"-c",

"#(nop) CMD []"

],

"CpuShares": 0,

"Cpuset": "",

"Domainname": "",

"Entrypoint": [

"bin/a3-write-back"

],

"Env": [

"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/jdk1.8.0_25/bin",

"JAVA_HOME=/usr/jdk1.8.0_25"

],

"ExposedPorts": null,

"Hostname": "5bf0de3d0926",

"Image": "abd65ce243a5b015bb49f3e958103a5cc0c5f14938df4e480ded25f3ecf878e7",

"MacAddress": "",

"Memory": 0,

"MemorySwap": 0,

"NetworkDisabled": false,

"OnBuild": [],

"OpenStdin": false,

"PortSpecs": null,

"StdinOnce": false,

"Tty": false,

"User": "daemon",

"Volumes": null,

"WorkingDir": "/opt/docker"

},

"Created": "2015-01-13T05:25:38.467586784Z",

"DockerVersion": "1.4.1",

"Id": "ddbd5d3f52cc5fd41605c95e4525cd2f3e0808a3741b3f8d77f46f0661945f7b",

"Os": "linux",

"Parent": "abd65ce243a5b015bb49f3e958103a5cc0c5f14938df4e480ded25f3ecf878e7",

"Size": 0,

"VirtualSize": 390826666

}

]

回答:

您的图片基于不带bash外壳的busybox。它的确有外壳/bin/sh

所以这不起作用:

$ docker run -it busybox bash

exec: "bash": executable file not found in $PATH2015/01/15 11:09:08 Error response from daemon:

Cannot start container a5074af2f81f8cc1eb0076f4ec9ada5f87be1440006f54a9b06ab701fc60176a: exec:

"bash": executable file not found in $PATH

但这确实是:

$ docker run -it busybox /bin/sh

/ #

由于您的入口点脚本,可能还会带来更多复杂性,但是您始终可以覆盖它。

以上是 为什么Docker不能执行'bash'? 的全部内容, 来源链接: utcz.com/qa/429083.html

回到顶部