从docker容器中删除文件

时间:2016-04-26 09:13:17

标签: docker

这很简单,但我没有解释为什么这不起作用:

在我的Dockerfile中:

highlightElement = function(locator){
                    console.log("highlight--");

                    console.log("locator---:"+locator);
                    var ele = browser.driver.findElement(locator);

                    return browser.driver.executeScript("arguments[0].setAttribute('style', arguments[1]);",ele, "color: Red; border: 2px solid red;").
                        then(function(resp){
                        browser.sleep(2000);
                        return ele;
                    },function(err){
                        console.log("error is :"+err);
                    });


                };

构建并运行后,容器内的文件仍然存在:

RUN rm -rf /etc/nginx/sites-*/*

我可以在构建中看到操作已完成:

ls -lrth /etc/nginx/sites-*/*
-rw-r--r-- 1 root root 2.1K Jan 26 23:34 /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root   34 Apr 21 15:58 /etc/nginx/sites-enabled/default -> /etc/nginx/sites-available/default
-rw-r--r-- 1 root root  691 Apr 21 16:12 /etc/nginx/sites-available/default.conf
lrwxrwxrwx 1 root root   39 Apr 21 16:17 /etc/nginx/sites-enabled/default.conf -> /etc/nginx/sites-available/default.conf

这是我的Dockerfile:

Step 13 : RUN rm -rf /etc/nginx/sites-*/*
 ---> Running in 0fa2deabe45c
 ---> 33e7b85a6c05

1 个答案:

答案 0 :(得分:0)

这似乎对我有用。

我首先在本地设置Dockerfile:

$ mkdir dockertest
$ cd dockertest
$ cat > Dockerfile
<paste dockerfile here>

然后构建图像:

$ docker build -t dockertest .

您可以看到完整的构建过程here

构建映像后,我可以验证这些目录是否为空:

bash-4.3$ docker run --rm dockertest ls -l /etc/nginx/sites-{available,enabled}/
/etc/nginx/sites-available/:
total 0

/etc/nginx/sites-enabled/:
total 0
bash-4.3$ 

您注意到我在上一个命令中没有使用通配符。如果我改为运行...

$ docker run --rm dockertest ls -l /etc/nginx/sites-*/*

...会在我的主机文件系统上列出文件,因为在命令运行之前发生了 shell通配符扩展。您可以通过运行安全地执行此操作:

$ docker run --rm dockertest sh -c 'ls -l /etc/nginx/sites-*/*'