Docker image没有';编辑内部文件后,不会更改

Docker image没有';编辑内部文件后,不会更改,docker,docker-compose,Docker,Docker Compose,我从以下位置克隆docker映像: 我执行“docker compose up”并按预期创建容器。 但是,如果我编辑/api文件夹中的文件并再次执行“docker compose up”,则包含的内容与以前相同 我已经尝试了以下命令,但没有成功 docker-compose rm --all docker-compose pull docker-compose build --no-cache docker-compose up -d --force-recreate 运行docke

我从以下位置克隆docker映像:

我执行“docker compose up”并按预期创建容器。 但是,如果我编辑/api文件夹中的文件并再次执行“docker compose up”,则包含的内容与以前相同

我已经尝试了以下命令,但没有成功

docker-compose rm --all 
docker-compose pull 
docker-compose build --no-cache 
docker-compose up -d --force-recreate 

运行
docker compose
时,如果您在
docker compose.yml
中定义的
已经存在,
docker
重新使用它,而不是重新创建

这意味着可以在第一次运行时创建
api\u数据
。此后,docker重新使用相同的
,其中
/api
数据不变

删除
api\u数据
卷后重试,以便
docker
可以重新创建更改
/api
的卷

首先,用命令检查
名称

$ docker volume ls 
$ docker volume rm $(volume-name)  

# $(volume-name) should be the volume name from docker volume ls
$ docker volume inspect $(volume-name)
该命令列出在
docker
主机中创建的所有
卷。卷的名称将是一个包含
api_数据
的字符串,例如,
docker django nginx uwsgi postgres教程api数据
或其他内容

然后用命令删除它

$ docker volume ls 
$ docker volume rm $(volume-name)  

# $(volume-name) should be the volume name from docker volume ls
$ docker volume inspect $(volume-name)
另一种方法是,您可以直接更改
卷中的
/api

使用命令检查
装载路径

$ docker volume ls 
$ docker volume rm $(volume-name)  

# $(volume-name) should be the volume name from docker volume ls
$ docker volume inspect $(volume-name)
从输出中,您可以看到
装入点
,即装入
的位置

$ su                  # You need root permission to access mount-directory
$ cd $(Mountpoint)
$ ls  

# Change file you want

Up用于从图像创建容器。您尝试停止/启动了吗?它显示“错误:没有这样的卷:api_数据”@Gary Ng即使您删除
容器
图像
,该卷仍将处于活动状态。通过
docker volume ls
检查卷名,然后通过
docker volume rm$(volume\u name)
删除该卷名。它的名称可能类似于“DockerJangonginXuwsgiPostgrestural\u api\u数据”。尝试运行
docker volume ls
以找到您环境的确切名称,然后对该卷进行rm。哎呀,对不起,刚才看到@SangminKim在上面说了同样的话:)