兩種方法
一、docker commit
把一個容器的文件改動和配置信息commit到一個新的鏡像。這個在測試的時候會非常有用,把容器所有的文件改動和配置信息導入成一個新的docker鏡像,然后用這個新的鏡像重起一個容器,這對之前的容器不會有任何影響。
1、停止docker容器
-
docker stop container01
2、commit該docker容器
-
docker commit container01 new_image:tag
3、用前一步新生成的鏡像重新起一個容器
-
docker run --name container02 -p 80:80 new_image:tag
優缺點:這種方式的優點是不會影響統一宿主機上的其他容器,缺點是管理起來顯得比較亂。
二、直接修改容器配置文件
注:這里很多人會發生修改重啟后,配置文件恢復成未修改的狀態,一定要先停止docker服務再修改,而不是停止容器再修改。
1、查詢需要修改端口映射的容器ID
2、關閉docker
service docker stop
3、進入docker的container里面
cd /var/lib/docker/containers/AAA
這里 AAA 是 容器 ID
注意可能會沒有權限
chmod -R +wrx /var/lib/docker/containers/AAA
4、更改兩個文件
首先我需要的是打開docker內部的3306端口,映射到8086端口上
hostconifg.json
這里我需要添加容器內部的3306端口,外部是8086端口。
config.v2.json
修改兩個地方,一個是Port,還有一個是Config.ExposedPort

5、最后打開docker
service docker start

