docker 已有容器修改容器配置


背景:目前有一個簡單的MySQL8容器,端口映射錯誤、文件掛載沒做。

需求:動態修改容器相應屬性配置

實現方案:直接修改容器配置文件,重啟容器

實現步驟:

查看容器id

docker ps -a

創建docker容器文件臨時存放目錄,創建mysql配置文件存放目錄

mkdir -p /tmp/docker/containers
mkdir -p /etc/mysql

復制原有容器所有文件至新目錄下

# 復制舊有文件到臨時目錄下
cp
-r /var/lib/docker/containers /tmp/docker/containers
# 復制舊有文件到備份目錄下
cp -r /var/lib/docker/containers /tmp/docker/containers_bak
cd /tmp/docker/containers

 由於容器實際名字很長,所以docker查看指令是截取了一截的,我們能夠確認就行。

編寫配置文件復制腳本 update_mysql_conf.sh

vim update_docker_mysql_conf.sh

 腳本內容

cp -r /tmp/docker/containers/3cb49e5500c3ed4fd8ff4e48e303668c97cbc7732f02195806c87f0e3687604d/config.v2.json /var/lib/docker/containers/3cb49e5500c3ed4fd8ff4e48e303668c97cbc7732f02195806c87f0e3687604d/config.v2.json
cp -r /tmp/docker/containers/3cb49e5500c3ed4fd8ff4e48e303668c97cbc7732f02195806c87f0e3687604d/hostconfig.json /var/lib/docker/containers/3cb49e5500c3ed4fd8ff4e48e303668c97cbc7732f02195806c87f0e3687604d/hostconfig.json
update_mysql_conf.sh

關閉容器(必須執行)此處如果是在hyper-V容器虛擬機的化,建個檢查點備份最為穩妥

# 查詢正在運行的容器
docker ps
# 一個一個關閉所有容器
docker stop [容器id]
# 驗證是否有漏網之魚沒有關閉
docker ps
# 關閉容器服務
systemctl stop docker

授予腳本執行權限、執行腳本復制配置文件

chmod +x update_mysql_conf.sh
./update_mysql_conf.sh

 修改端口映射配置

修改hostconfig.json文件的PortBindings配置,把文件類容復制出來,瀏覽器打開一個json校驗網站:bejson.comjson.cn

修改文件掛載配置(本人使用該方案沒有生效,而另外一種基於已有容器生成新的鏡像的不建議使用。)

此處修改配置文件掛載失敗。可以嘗試先找到容器內的文件在宿主的未知后,然后建立軟鏈接。

文件位置查找指令:docker inspect 容器Id

  • 修改hostconfig.json文件的Binds配置

  • 修改config.v2.json文件的MountPoints添加一個配置

 

 

 執行配置文件移動腳本,直接執行啟動mysql容器指令(該指令在docker容器關閉的情況下會自動先啟動docker容器)

/tmp/docker/containers/update_docker_mysql_conf.sh
docker stop mysql

檢驗:通過3306端口連接mysql,連接成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM