gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:49:15 26 4
gpt4 key购买 nike

我想运行一个预先存在的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行上遇到权限错误

最佳答案

所有图像都有一个FROM行,并且可以是任何其他图像。因此,您可以使用以下命令制作一个Dockerfile:

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 .

然后运行它:
docker run -d --name cdt-selenium alexander/selenium:3.4.0-chromium

编辑:您运行的exec命令失败,因为docker以其他用户身份运行此容器。您可以在他们的 Dockerfile中看到它。要解决此问题,请使用root用户选项( -u root)运行exec:
docker exec -u root cdt-selenium mkdir -p /root/cdt-tests/csv-data

关于bash - 在运行容器之前运行bash命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44166146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com