我一直在尝试创建自己的busyBox基本映像.
# ./mkimage.sh -t pensu/busyBox busyBox-static
+ mkdir -p /var/tmp/docker-mkimage.US3tHy0uBQ/rootfs
+ tar --numeric-owner -caf /var/tmp/docker-mkimage.US3tHy0uBQ/rootfs.tar.xz -C /var/tmp/docker-mkimage.US3tHy0uBQ/rootfs '--transform=s,^./,' .
+ cat > '/var/tmp/docker-mkimage.US3tHy0uBQ/Dockerfile'
+ rm -rf /var/tmp/docker-mkimage.US3tHy0uBQ/rootfs
+ docker build -t pensu/busyBox /var/tmp/docker-mkimage.US3tHy0uBQ
Sending build context to Docker daemon 863.2 kB
Sending build context to Docker daemon
Step 0 : FROM scratch
--->
Step 1 : ADD rootfs.tar.xz /
---> 8eac78bfc9d6
Removing intermediate container ad9bbb8f7536
Successfully built 8eac78bfc9d6
+ rm -rf /var/tmp/docker-mkimage.US3tHy0uBQ
我可以看到我的docker repo可以使用该图像.
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
pensu/busyBox latest 8eac78bfc9d6 7 seconds ago 2.476 MB
但是当我尝试使用docker run时,我总是得到错误:
# docker run -it pensu/busyBox /bin/sh
exec: "/bin/sh": stat /bin/sh: no such file or directorytime="2015-04-09T16:03:45+05:30" level="fatal" msg="Error response from daemon: Cannot start container 8fe73b7832193c847d7975175a4be86d1f0b550b6a00b812bd4cdd18fe752468: exec: \"/bin/sh\": stat /bin/sh: no such file or directory"
我无法理解为什么会出现这个错误?难道我做错了什么?我怎样才能验证我正在创建一个处于工作状态的正确图像?
最佳答案
创建图像后,请检查:
$docker inspect $image_name
并检查CMD选项中的内容,对于繁忙的框,它应该是:
“Cmd”:[
“/ bin / sh的”
]
也许你在./mkimage.sh中覆盖了CMD选项