我尝试使用#!/usr/bin/bash
和#!/usr/bin/env/sh
和#!/usr/bin/env/ bash
docker run -t -i image-id /bin/sh
是我使用和使用的ls
,我看到文件在那里
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c970708c1a3 bd24c6bef682 "/bin/sh -c 'sh benc…" 7 minutes ago Exited (127) 7 minutes ago amazing_lovelace
我能够分别运行这两个命令,它们都可以工作
echo "Getting the Container Name"
containerName=$(docker ps -l --format '{{.Names}}' 2>&1)
echo "Transfering the text file"
docker cp $containerName:/benchmark.txt /Users/xxxx/Devlocal/xxxxx/tests/logs/benchmark.txt
放入shell脚本并运行时,我得到:错误
benchmark.sh: line 13: docker: not found
The command '/bin/sh -c sh benchmark.sh' returned a non-zero code: 127
请帮助 dockerfile
FROM gliderlabs/alpine:3.5
MAINTAINER LN
RUN apk add --update alpine-sdk openssl-dev
RUN apk add --no-cache git
RUN git clone https://github.com/giltene/wrk2.git && cd wrk2 && make
ADD ["benchmark.sh", "/benchmark.sh"]
RUN sh benchmark.sh
答案 0 :(得分:1)
您在容器内调用的脚本执行docker命令。这仅在容器中安装了docker的情况下才有效,从它的外观看,不是。
如果您唯一的目的是访问文件/benchmarks.txt
,则可以在启动容器时挂载它:
docker run -d -v /Users/xxxx/Devlocal/xxxxx/tests/logs/benchmark.txt:/benchmark.txt ...
请注意,您必须将RUN touch /benchmark.txt
添加到Dockerfile中。
原因是here