docker修改未啟動(dòng)容器的配置信息操作
之前一開(kāi)始用docker并沒(méi)有使用dockerfile或者docker-compose編排服務(wù),直接使用docker run啟動(dòng)的容器,結(jié)果一不小心配置文件出錯(cuò)或者給停掉了那就導(dǎo)致服務(wù)再也啟動(dòng)不了了,這時(shí)候不要著急,使用以下辦法既可以修改配置文件還可以修改啟動(dòng)容器的端口信息和其他配置信息,這樣容器中的文件和數(shù)據(jù)還是存在的。
1、修改容器內(nèi)的配置信息
這里以nginx啟動(dòng)為例子,比如用docke run創(chuàng)建了一個(gè)nginx的容器,結(jié)果因?yàn)槭褂胐ocker exec ** bash 修改了內(nèi)部nginx的配置文件,導(dǎo)致nginx容器再也無(wú)法啟動(dòng)了,那這種情況該怎么辦呢
#首先進(jìn)入以下目錄 cd /var/lib/docker/overlay2 #查找配置文件 find ./ -name nginx.conf ./a45cd97113877fb480f66e0d982a594c7b18f2035c16e1f7eb687eef15552272/diff/etc/nginx/nginx.conf ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx/nginx.conf ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/merged/etc/nginx/nginx.conf #然后cd到nginx.conf的所在目錄 cd ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx #比如我的nginx的配置文件是在conf.d文件夾下 cd conf.d default.conf #觀察里面的配置信息是不是自己nginx的配置信息,如果是的話那就修改它就行了,不是的話就看find查找出來(lái)的其他目錄中用同樣的方式去找就可以了 vim *.conf #修改好配置文件后,直接啟動(dòng)比如我的nginx容器名是apg_nginx docker start apg_nginx
2、修改docker run時(shí)的配置信息
這種情況比如我的容器被停掉了,然后有其他的服務(wù)想用我這個(gè)容器映射出來(lái)的端口號(hào)或者我的容器想重新修改當(dāng)時(shí)run配置的信息那怎么辦呢?
#進(jìn)入以下目錄 cd /var/lib/docker/containers 096ed809576e948ada99be65faa181b7f926dd0e655c4c373169305a1954c115 d570bc34c3bb5955ec4c336ad3eeb6105ed49e33e87b8dfd35da3c907d074fdc 662d928aada58645e84fba34f1a1c54696061b767e3e262ccf6562db0498e733 e7237690488f15e40a6462df9cdcfeda83a6f7a74517662935c0a149dd36e057 92bb44f63186c3d80ab8557f84cb1ce907aedab714bb0109827dbfed5641daa8 f2849f199fd78b1636aaedf0bd890c12e7c6d8c6ad5849fff2670920e5e37c7d d27bdc6286dd3314a1116115cab3a33233b9f4fba45ae4c88a6756d5c04a9aa9 #查看自己容器的hash值,hash值開(kāi)頭的文件夾就是容器的配置目錄 docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 096ed809576e nginx "nginx -g 'daemon of…" 3 months ago Up 33 minutes 0.0.0.0:8081->80/tcp apg_nginx #進(jìn)入096開(kāi)頭的目錄 cd 096ed809576e* drwx------ 4 root root 4096 Jun 22 21:41 ./ drwx------ 9 root root 4096 Mar 8 18:07 ../ -rw-r----- 1 root root 2559664 Jun 22 21:47 096ed809576e948ada99be65faa181b7f926dd0e655c4c373169305a1954c115-json.log drwx------ 2 root root 4096 Mar 8 18:07 checkpoints/ -rw------- 1 root root 3408 Jun 22 21:41 config.v2.json -rw-r--r-- 1 root root 1519 Jun 22 21:41 hostconfig.json -rw-r--r-- 1 root root 13 Jun 22 21:41 hostname -rw-r--r-- 1 root root 174 Jun 22 21:41 hosts drwx------ 3 root root 4096 Mar 8 18:07 mounts/ -rw-r--r-- 1 root root 259 Jun 22 21:41 resolv.conf -rw-r--r-- 1 root root 71 Jun 22 21:41 resolv.conf.hash #hostconfig.json就是存放run啟動(dòng)時(shí)的配置信息的文件 vim hostconfig.json #在里面找到HostPort值就是映射到宿主機(jī)的端口號(hào),可以自己修改,修改完成后要重啟docker服務(wù),不重啟的話不會(huì)生效的 systemctl docker restart
通過(guò)以上兩種情況的下的配置修改,對(duì)于docker run啟動(dòng)的容器出現(xiàn)問(wèn)題都可以在此修改并正常啟動(dòng),一般最好使用docker-compose的方式啟動(dòng)容器最佳。
補(bǔ)充知識(shí):docker怎么查看容器啟動(dòng)日志
sudo docker logs -f -t --tail 行數(shù) 容器名
命令格式:
$ docker logs [OPTIONS] CONTAINER Options: --details 顯示更多的信息 -f, --follow 跟蹤實(shí)時(shí)日志 --since string 顯示自某個(gè)timestamp之后的日志,或相對(duì)時(shí)間,如40m(即40分鐘) --tail string 從日志末尾顯示多少行日志, 默認(rèn)是all -t, --timestamps 顯示時(shí)間戳 --until string 顯示自某個(gè)timestamp之前的日志,或相對(duì)時(shí)間,如40m(即40分鐘)
查看最近30分鐘的日志:
$ docker logs --since 30m CONTAINER_ID
查看某時(shí)間之后的日志:
$ docker logs -t --since="2019-08-02T13:23:37" CONTAINER_ID
查看某時(shí)間段日志:
$ docker logs -t --since="2019-08-02T13:23:37" --until "2019-08-03T12:23:37" CONTAINER_ID
以上這篇docker修改未啟動(dòng)容器的配置信息操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
從Docker容器中備份整個(gè)PostgreSQL的操作步驟
現(xiàn)在需要從Docker容器中備份整個(gè)PostgreSQL后,然后,使用備份文件在另外一個(gè)pg的docker容器中恢復(fù)過(guò)來(lái),所以本文給大家介紹了從Docker容器中備份整個(gè)PostgreSQL的操作步驟,通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-10-10
如何通過(guò)vs2017的Dockerfile來(lái)生成鏡像
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)vs2017的Dockerfile來(lái)生成鏡像,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
docker-compose啟動(dòng)mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn)
本文主要介紹了docker-compose啟動(dòng)mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
使用Docker快速搭建Oracle開(kāi)發(fā)環(huán)境的方法教程
這篇文章主要給大家介紹了使用Docker快速搭建Oracle開(kāi)發(fā)環(huán)境的方法教程,文中給出了詳細(xì)的解決方法,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06
docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問(wèn)題
容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機(jī)上,從而實(shí)現(xiàn)打通宿主機(jī)和容器之間的文件共享功能,這篇文章主要介紹了docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載問(wèn)題,需要的朋友可以參考下2021-11-11

