修改Docker容器內(nèi)文件的三種實(shí)現(xiàn)方式
說明:本文介紹修改Docker容器內(nèi)文件的三種方式
方式一:直接修改
敲下面的命令,進(jìn)入Docker容器,如mysql
docker exec -it mysql /bin/bash
修改mysql的配置文件,/etc/my.cnf
vim /etc/my.cnf
如下,如果vim不行,可試下vi或其他編輯命令,總之,我試了一些編輯命令,是無法編輯的
方式二:將文件復(fù)制到容器外
敲下面的命令,將容器內(nèi)需要修改的文件拷貝到容器外面,如mysql容器,將容器內(nèi)的配置文件復(fù)制到容器外。
如下,將my.cnf復(fù)制到容器外的當(dāng)前位置
docker cp mysql:/etc/my.cnf ./
修改配置,如端口號(hào),改回3306
修改完成,敲下面的命令,將文件復(fù)制回容器里
docker cp ./my.cnf mysql:/etc/
進(jìn)入容器查看,可見修改成功。
這時(shí)重啟容器,容器內(nèi)MySQL服務(wù)的端口就是3306
方式三:使用數(shù)據(jù)卷
敲下面的命令,創(chuàng)建一個(gè)數(shù)據(jù)卷;
docker volume create mysql
敲下面的命令,查看已創(chuàng)建的數(shù)據(jù)卷;
docker volume ls
運(yùn)行容器時(shí),加上-v 數(shù)據(jù)卷名稱:容器內(nèi)路徑掛載數(shù)據(jù)卷,這樣容器內(nèi)的文件就可以在容器外修改了,是同步的。
如下,我想把mysql容器內(nèi)的/etc路徑掛載到mysql數(shù)據(jù)卷上。
docker run --name=mysql -v mysql:/etc -e MYSQL_ROOT_PASSWORD=123456 -p 4406:4406 -d mysql:8.1.0
敲下面的命令,查看數(shù)據(jù)卷掛載的、容器內(nèi)路徑在哪里,這里的mysql是數(shù)據(jù)卷的名稱。
docker volume inspect mysql
切換到這個(gè)路徑,可以看到這里的文件其實(shí)就是mysql容器內(nèi)下的/etc文件夾,在這里我們可以直接修改MySQL配置文件,my.cnf
端口號(hào)設(shè)置為4406,因?yàn)閯倓倖?dòng)容器指定的容器內(nèi)端口是4406,不改成4406是沒法使用MySQL的
修改完,重啟容器生效。
另外
另外,關(guān)于容器的數(shù)據(jù)卷。我們運(yùn)行容器時(shí),docker會(huì)自動(dòng)為我們掛載一個(gè)數(shù)據(jù)卷,保存容器內(nèi)的應(yīng)用產(chǎn)生的數(shù)據(jù),可敲下面的命令查看
docker inspect -f '{{range .Mounts}}{{.Name}} {{end}}' 容器名
如上,是我創(chuàng)建的MySQL容器自動(dòng)創(chuàng)建的數(shù)據(jù)卷。這個(gè)數(shù)據(jù)卷掛載的是容器內(nèi)/var/lib/mysql
路徑,該路徑下存儲(chǔ)了MySQL的數(shù)據(jù)。
所以,如果你不小心刪除了容器,也不要擔(dān)心數(shù)據(jù)會(huì)丟失,可以再運(yùn)行一個(gè)容器,然后掛載這個(gè)數(shù)據(jù)卷,這樣運(yùn)行的容器就是有歷史數(shù)據(jù)的(親測(cè)有效)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從)
本文主要介紹了docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07詳解docker容器硬盤動(dòng)態(tài)擴(kuò)容
本篇文章主要介紹了詳解docker容器硬盤動(dòng)態(tài)擴(kuò)容,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04Docker?Desktop無法正常啟動(dòng)解決(failed?to?start...)
有一段時(shí)間沒有使用docker了,突然要用到結(jié)果發(fā)現(xiàn)docker?desktop用不了了,這篇文章主要給大家介紹了關(guān)于Docker?Desktop無法正常啟動(dòng)解決的過程,,需要的朋友可以參考下2023-01-01使用Docker部署Dashdot服務(wù)器儀表盤的步驟
Dashdot是一款簡(jiǎn)單、實(shí)用的開源服務(wù)器儀表盤,設(shè)計(jì)時(shí)考慮到了玻璃形態(tài),它旨在用于較小的?VPS?和私人服務(wù)器,這篇文章主要介紹了使用Docker部署Dashdot服務(wù)器儀表盤,需要的朋友可以參考下2022-12-12CentOS 7.x docker使用overlay2存儲(chǔ)方式
這篇文章主要介紹了CentOS 7.x docker使用overlay2存儲(chǔ)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11