docker容器中打开的文件已关闭

docker容器中打开的文件已关闭,docker,docker-container,Docker,Docker Container,我启动一个mysql容器并更改容器中的配置文件,在本例中是/etc/mysql/my.cnf。然后重新启动容器 可能配置文件有问题,容器无法启动。当容器已关闭时,如何编辑该配置文件?容器是不可变的,您的更改和配置已消失。您应该使用Dockerfile来构建自定义映像并包含my.cnf 它可以很容易地完成,创建一个文件夹,在其中创建my.cnf和一个只有两行的Dockerfile FROM mysql ADD my.cnf /path/to/mysql/conf/folder # replace

我启动一个mysql容器并更改容器中的配置文件,在本例中是
/etc/mysql/my.cnf
。然后重新启动容器


可能配置文件有问题,容器无法启动。当容器已关闭时,如何编辑该配置文件?

容器是不可变的,您的更改和配置已消失。您应该使用Dockerfile来构建自定义映像并包含my.cnf

它可以很容易地完成,创建一个文件夹,在其中创建my.cnf和一个只有两行的Dockerfile

FROM mysql
ADD my.cnf /path/to/mysql/conf/folder # replace with the path where you'd usually put the conf file
现在构建并运行:

docker build -t custom_mysql .
docker run custom_mysql // << add the run options you need/want (exposed port for example or container name)
docker build-t custom\u mysql。

docker run custom_mysql//容器是不可变的,您的更改和配置将消失。您应该使用docker文件来构建映像并包含my.cnf。或者提交您的更改,请参阅
docker提交
,doc但是docker文件可以帮助您轻松构建新映像噢,谢谢,但我不会更改容器,我只想获取容器中的文件已关闭且无法再次启动。谢谢,但我不打算更改容器,我只想得到一个容器中的文件已关闭,无法重新启动。@Finn就像我说的,你的文件不见了。不可变意味着当容器停止/重新启动时,它将恢复到其初始状态,所做的每一个更改(例如新文件)都将永远消失。容器不是虚拟机,它是一次性的,您没有使用自定义映像,因此无需保留、删除它、创建另一个,这一次,请注意您的更改只是暂时的。谢谢,我理解并接受您的回答:D