Docker容器不斷重啟問(wèn)題解決
1. compose配置文件
docker-compose.yml
services: node_app: image: dockerproxy.cn/node:lts-bullseye-slim container_name: node_app networks: macvlan_net: ipv4_address: 192.168.2.3 # 掛載的卷標(biāo) volumes: - app:/app # 工作目錄 working_dir: /app # 自動(dòng)重啟 restart: always # 卷標(biāo) volumes: app: # 網(wǎng)絡(luò) networks: macvlan_net: external: true
2. 查看卷標(biāo)
查看docker已經(jīng)存在的卷標(biāo),發(fā)現(xiàn)存在卷標(biāo)node_app
docker volume ls
DRIVER VOLUME NAME local node_app
3. 問(wèn)題初步探討
在compose配置文件中,卷標(biāo)app會(huì)被自動(dòng)重命名為node_app,而恰好上次使用的卷標(biāo)沒(méi)有清理,沖突了
# 卷標(biāo) volumes: app:
4. 初步嘗試
- 刪除舊的卷標(biāo)node_app
- 使用舊的卷標(biāo),compose的卷標(biāo)配置應(yīng)當(dāng)改為如下
# 卷標(biāo) volumes: node_app: external: true
5. 依然無(wú)法啟動(dòng)
以最簡(jiǎn)單的配置文件運(yùn)行容器, 依然無(wú)法啟動(dòng)
services: node_app: image: dockerproxy.cn/node:lts-bullseye-slim container_name: node_app working_dir: /app restart: no
然后我換了一個(gè)容器名稱(test),用docker ps -a,名稱沒(méi)問(wèn)題是test
但是奇怪的是用docker compose exec test bash,卻發(fā)現(xiàn)找不到test,但在exec后用tab鍵自動(dòng)補(bǔ)全的竟然是node_app
匪夷所思,我查看了所有容器并沒(méi)有這個(gè)容器啊,整個(gè)dokcer除了我要用到的卷標(biāo)名稱為node_app意外,沒(méi)有其他相關(guān)的名稱了,但是我也沒(méi)掛載它呀
用portainer查看以下該容器的信息
發(fā)現(xiàn)兩個(gè)奇怪的點(diǎn)
com.docker.compose.project的值是node
com.docker.compose.service的值是node_app,
這不是我最最最開(kāi)始使用的鏡像名和容器名稱嗎?也是容器默認(rèn)的名稱
6. 解決方案
最后從【Docker】解決docker-compose啟動(dòng)的容器一直處于restarting狀態(tài)的問(wèn)題文章中獲得該方法
tty:true
該參數(shù)作用簡(jiǎn)介:
交互式操作: 如果您運(yùn)行一個(gè)需要用戶輸入的交互式應(yīng)用程序(例如,使用 bash 或某些 CLI 工具),設(shè)置 tty: true 將允許您與該應(yīng)用程序進(jìn)行交互。沒(méi)有這個(gè)設(shè)置,您可能無(wú)法獲得正確的輸入輸出體驗(yàn)。
增強(qiáng)輸出格式: 某些程序(例如日志查看工具或某些編程語(yǔ)言的 REPL)可以利用 TTY 來(lái)生成更友好的輸出格式。例如,帶顏色的輸出通常依賴 TTY 的存在。
保持會(huì)話活躍: 有些應(yīng)用程序(如一些長(zhǎng)期運(yùn)行的進(jìn)程)可能需要一個(gè) TTY 來(lái)保持活躍。如果沒(méi)有 TTY,應(yīng)用可能會(huì)提早結(jié)束或進(jìn)入休眠狀態(tài)。
7. 結(jié)論
那么這下似乎就明白了,似乎全是鏡像的問(wèn)題,compose會(huì)讀取鏡像的默認(rèn)項(xiàng)目名和服務(wù)名作為堆棧和容器名稱,加了contianer_name也沒(méi)用,然后就是鏡像是精簡(jiǎn)版的,所以默認(rèn)是一次性運(yùn)行,必須加上tty:true來(lái)維持運(yùn)行
8. 參考文章
[1]【Docker】解決docker-compose啟動(dòng)的容器一直處于restarting狀態(tài)的問(wèn)題
到此這篇關(guān)于Docker容器不斷重啟問(wèn)題解決的文章就介紹到這了,更多相關(guān)Docker容器不斷重啟內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 一條命令重啟所有已停止的docker容器操作
- 解決docker容器重啟之后/etc下某些配置文件被重置的問(wèn)題
- 解決docker搭建gitlab時(shí)容器不停重啟的問(wèn)題
- 如何設(shè)置docker開(kāi)機(jī)自啟動(dòng),并設(shè)置容器自動(dòng)重啟
- Docker 查詢、停止、刪除和重啟容器的詳細(xì)過(guò)程
- docker容器因報(bào)錯(cuò)無(wú)法啟動(dòng)問(wèn)題的檢查及修復(fù)容器錯(cuò)誤并重啟
- docker容器自動(dòng)退出重啟報(bào)錯(cuò)問(wèn)題及解決
- 如何一次重啟所有已停止的docker容器
- docker容器重啟錯(cuò)誤的解決方案
相關(guān)文章
Docker搭建Zookeeper&Kafka集群的實(shí)現(xiàn)
這篇文章主要介紹了Docker搭建Zookeeper&Kafka集群的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Docker安裝Nacos服務(wù)的實(shí)現(xiàn)
本文主要介紹了Docker安裝Nacos服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Docker如何修改正在運(yùn)行的容器的時(shí)區(qū)和時(shí)間
在Docker容器中修改時(shí)區(qū)和時(shí)間的步驟:1. 進(jìn)入容器,使用dockerexec命令以root用戶身份進(jìn)入,2. 安裝時(shí)區(qū)文件,根據(jù)基礎(chǔ)鏡像選擇合適的包管理器(如apt-get或apk),3. 設(shè)置時(shí)區(qū),通過(guò)創(chuàng)建軟鏈接或設(shè)置環(huán)境變量TZ,并更新系統(tǒng)時(shí)區(qū)2025-01-01關(guān)于dockerfile build過(guò)程中報(bào)/bin/sh: pip: command not found的解決方法
這篇文章主要介紹了關(guān)于dockerfile build過(guò)程中報(bào)/bin/sh: pip: command not found的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Docker下安裝部署Clickhouse及其遠(yuǎn)程訪問(wèn)方式
文章介紹了如何遠(yuǎn)程拉取和安裝ClickHouse Docker鏡像,配置和部署ClickHouse容器,并通過(guò)DataGrip遠(yuǎn)程訪問(wèn)ClickHouse2024-11-11更改Docker默認(rèn)數(shù)據(jù)目錄解決部署空間不足問(wèn)題
隨著使用 Docker 的時(shí)間增加,存儲(chǔ)在默認(rèn)數(shù)據(jù)目錄(通常是 /var/lib/docker)中的數(shù)據(jù)量也會(huì)不斷增大,最終可能導(dǎo)致服務(wù)器上的存儲(chǔ)空間不足,這篇文章將詳細(xì)介紹如何更改 Docker 的默認(rèn)數(shù)據(jù)目錄,以便在服務(wù)器上釋放存儲(chǔ)空間并優(yōu)化資源利用,需要的朋友可以參考下2024-06-06Dockerfile如何使用alpine系統(tǒng)制作haproxy鏡像
這篇文章主要介紹了Dockerfile如何使用alpine系統(tǒng)制作haproxy鏡像問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Docker容器化spring boot應(yīng)用詳解
本篇文章主要介紹了Docker容器化spring boot應(yīng)用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04