当docker容器创建后,忘记挂接做本地与容器目录挂接后,导致数据存储都是存在容器中,如果想修改容器内文件或替换,就需要通过以下命令替换。
1 |
docker cp [本地目录或文件]: [容器名][容器内目录] |
为了方便,只要在linux目录替换,可以通过容器挂载的方式,只要替换linux的目录,就能实现容器内的文件变更。
挂载目录步骤如下:
1、停止docker运行
1 |
systemctl stop docker |
2、修改容器的配制文件
容器路径:/var/lib/docker/containers/[容器ID]
修改的文件:
2.1、hostconfig.json
在"Binds"节点中增加挂载目录的关系,如:
1 |
"Binds" ["/opt/docker/test/webapps:/opt/apache-tomcat-8.5.40/webapps"] |
前面的是本地目录,后面的是容器目录,多个的话,用逗号隔开。
2.2、config.v2.json
在"MountPoints" 节点中增加挂载目录。如:
1 |
"MountPoints": {"/opt/apache-tomcat-8.5.40/webapps": {"Source": "/opt/docker/test/webapps","Destination": "/opt/apache-tomcat-8.5.40/webapps","RW": true,"Name": "","Driver": "","Type": "bind","Propagation": "rprivate","Spec": {"Type": "bind","Source": "/opt/docker/test/webapps","Target": "/opt/apache-tomcat-8.5.40/webapps"},"SkipMountpointCreation": false}} |
3、重新docker,开启容器
1 |
systemctl start dockerdocker start [容器名或容器ID] |
以上是以修改正在运行的容器的方式挂载目录。
还有简单的方式:
提交现有容器为新镜像,然后重新运行挂载。
from:https://blog.csdn.net/weixin_36431535/article/details/113067296