Docker 建立好容器后,配置并不容易修改,本文记录修改建立好的容器的文件夹映射的方法。
docker commit
命令生成镜像好处是包治百病,正规途径 缺点就是过程繁琐,不够优雅
端口映射等容器信息都是存在某个地方,通过配置文件管理的,我们仅需修改配置文件的端口信息即可完成改写
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
070465ca928b nextcloud "/entrypoint.sh apac…" 2 weeks ago Up 6 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp nextcloud
CONTAINER ID
是070465ca928b
/data -> /data
的端口映射docker stop nextcloud
systemctl stop docker
/var/lib/docker/containers/{CONTAINER ID}
和
CONTAINER ID
容器相关的配置都在其 ID 对应的子目录里
cd /var/lib/docker/containers/070465ca928b...
# ls
5190850b4fcc...-json.log config.v2.json hostname mounts resolv.conf.hash
checkpoints hostconfig.json hosts resolv.conf
我们需要修改的是
hostconfig.json
和config.v2.json
两个文件
hostconfig.json
"Binds":["/data:/data"]
config.v2.json
"MountPoints":{"/data":{"Source":"/data","Destination":"/data","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/data","Target":"/data"},"SkipMountpointCreation":false}
systemctl start docker
docker start nginx