在运行容器之前运行bash命令

时间:2017-05-24 18:34:08

标签: bash docker dockerfile

我想运行一个预先存在的Docker镜像:

docker run -d --name cdt-selenium selenium/standalone-firefox:3.4.0-chromium

因此我没有为此图像控制Dockerfile。但是,我想将一些文件复制到此容器中。

如果我控制了Dockerfile,我想运行这些命令:

RUN mkdir -p /root/cdt-tests/csv-data
COPY ./csv-data/* /root/cdt-tests/csv-data

有没有办法在与上面的Docker run命令相同的行中运行这些命令?

我试过了:

docker run -d --name cdt-selenium selenium/standalone-firefox:3.4.0-chromium
docker exec cdt-selenium mkdir -p /root/cdt-tests/csv-data
docker cp cdt-selenium:/root/cdt-tests/csv-data ./csv-data

但是我在docker exec行上出现了权限错误

1 个答案:

答案 0 :(得分:3)

所有图片都有List<Map.Entry<Key,Value>> firstN = EntryStream.of(map).limit(n).toList(); 行,可以是任何其他图片。所以你可以用:

创建一个Dockerfile
FROM

将运行您的命令构建您自己的图像。

您可以构建它并创建自己的标记:

FROM selenium/standalone-firefox:3.4.0-chromium
USER root
RUN mkdir -p /root/cdt-tests/csv-data
COPY ./csv-data/* /root/cdt-tests/csv-data
USER seluser

然后运行它:

docker build -t alexander/selenium:3.4.0-chromium .

编辑:您运行的exec命令失败,因为docker以不同的用户身份运行此容器。你可以在Dockerfile中看到它。要解决此问题,请使用root用户选项(docker run -d --name cdt-selenium alexander/selenium:3.4.0-chromium )运行exec:

-u root