sop*_*ain 1 executable copy docker dockerfile
因此,我从 dockerfile 构建图像,使用 COPY 命令将本地文件从主机复制到我的容器中。构建映像后,我运行一个交互式 shell,并测试我复制的文件,但出现错误。
这是我的外壳信息。
arcolombo@arcolombo:~/Documents/bedgraph_dockerfile$ sudo docker info
Containers: 18
Images: 72
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 108
Execution Driver: native-0.2
Kernel Version: 3.16.0-33-generic
Username: arcolombo
Registry: [https://index.docker.io/v1/]
WARNING: No swap limit support
Run Code Online (Sandbox Code Playgroud)
这是我的 docker 文件
FROM ubuntu
MAINTAINER anthonycolombo60@gmail.com
COPY software /bin
Run Code Online (Sandbox Code Playgroud)
请注意,在包含 Dockerfile 的目录下,我放置了“软件”目录,该目录在 Dockerfile 的上下文中具有 bedWiggle 可执行文件,因此它确实会加载到我的映像创建的新容器中。
这说明图像成功完成
arcolombo@arcolombo:~/Documents/bed_dockerfile$ sudo docker build -t="arcolombo" .
Sending build context to Docker daemon 2.7 MB
Sending build context to Docker daemon
Step 0 : FROM ubuntu
---> d0955f21bf24
Step 1 : MAINTAINER anthonycolombo60@gmail.com
---> Using cache
---> 5el36a81f34
Step 2 : COPY software /bin
---> Using cache
---> 1llhh2e278683ea
Successfully built 1hhfjjeea
Run Code Online (Sandbox Code Playgroud)
然而,当我进入由上面的图像构建的容器并运行我的可执行文件时,我收到错误
root@hhhlf75hhhhfcb87ccfa:/bin# ./bedWigggle ./bedWiggle: 加载共享库时出错: libkrb5.so.3: 无法打开共享对象文件: 没有这样的文件或目录
该错误准确地告诉您问题所在 - 您已复制了可执行文件,但它依赖于libkrb5.so.3容器中不存在的各种库(包括 )。
你有两个选择;您可以将依赖项添加到容器中,也可以重新编译可执行文件以使其静态链接。
ldd您可以在可执行文件上运行该工具来发现它需要哪些依赖项。然后,您可以像处理可执行文件一样将库直接复制到容器中,或者(可能更好)您可以找到依赖项来自哪个包并使用apt-get.