要使 Docker 容器中的更改在容器停止后依然保持,您可以通过以下几种方式之一来实现:
1. 提交更改到新的镜像
在 Docker 中,您可以在容运行后对其所做的任何更改进行提交,从而创建一个新的镜像。这样,当您重新启动容器时,它将包含所有先前提交的更改。以下是如何做到这一点的步骤:
- 查找容器 ID:首先,您需要找到正在运行的容器的 ID。可以通过命令
docker ps
来查找。 - 提交更改:使用
docker commit
命令来创建一个包含所有更改的新镜像。命令格式如下:
例如:docker commit [CONTAINER_ID] [new_image_name]:[tag]
docker commit c3f279d17e0a my_new_image:latest
- 使用新镜像:以后您可以使用这个新的镜像来启动容器,新镜像将包含之前容器的所有更改。
2. 使用数据卷(Volumes)
数据卷是 Docker 中用于数据持久化和共享的一种机制。通过使用数据卷,您可以将数据存储在容器外部,这样即使容器被删除,数据也仍然安全。操作步骤如下:
-
创建数据卷:您可以在运行容器时通过
-v
或--mount
标志来指定数据卷。例如:docker run -v /path/on/host:/path/in/container -d image_name
这条命令会将主机上的
/path/on/host
目录挂载到容器的/path/in/container
路径。 -
运行容器:容器中的应用可以读写挂载点中的数据,所有更改都会直接在主机上的目录中反映。
通过这两种方法,您可以确保容器的数据在容器停止或删除后依然得到保存。选择哪种方法取决于您的具体需求和场景。如果只是偶尔需要保存容器状态,提交更改可能更简单;如果需要频繁地持久化大量数据,使用数据卷可能更合适。