docker-compose在哪里保留其图像?

时间:2018-05-23 10:06:03

标签: docker-compose

我知道如果我更改了Dockerfile或构建目录,我应该运行docker-compose build。这肯定意味着docker-compose在其已经构建的图像的某处有一些缓存。

它在哪里?我该如何清除它?

我想回到docker-compose up被迫执行初始构建步骤的状态,而我无需记住运行docker-compose build

我已经运行docker stop $(docker ps -aq)docker X prune(对于容器,图像,卷,网络中的X),但docker-compose up仍然拒绝在{{1}中运行构建步骤1}}。

或者我完全误解了docker-compose是如何工作的?

2 个答案:

答案 0 :(得分:1)

您可以传递额外的参数(--no-cache)以在构建过程中跳过使用缓存。

    docker@default:~$ docker-compose build --help
    Build or rebuild services.

    Services are built once and then tagged as `project_service`,
    e.g. `composetest_db`. If you change a service's `Dockerfile` or the
    contents of its build directory, you can run `docker-compose build` to rebuild it.

    Usage: build [options] [--build-arg key=val...] [SERVICE...]

    Options:
        --compress              Compress the build context using gzip.
        --force-rm              Always remove intermediate containers.
        --no-cache              Do not use cache when building the image.
        --pull                  Always attempt to pull a newer version of the image.
        -m, --memory MEM        Sets memory limit for the build container.
        --build-arg key=val     Set build-time variables for services.
    docker@default:~$

答案 1 :(得分:0)

docker-compose使用图片,您可以使用docker images

查看
$ docker images 
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
docker_ubuntu                 latest              a7dc4f9bbdfb        19 hours ago        158MB
ubuntu                        16.04               0b1edfbffd27        3 weeks ago         113MB
hello-world                   latest              f2a91732366c        6 months ago        264MB

docker-compose图像的前缀(通常)是您正在运行docker-compose的目录的名称。对我来说,docker_ubuntu图像。

docker image prune认为图片正在使用中,所以它不会修剪它们。

要摆脱docker-compose图像,您需要明确删除它:

docker image rm docker_ubuntu