docker 錯誤整理及記錄

2021-09-25 17:46:46 字數 3019 閱讀 2859

參考:重啟docker之後,有時候可能啟動容器時,提示port is already allocated

檢視程序,發現相關的容器並沒有在執行,而docker-proxy 卻依然繫結著埠:

docker ps

ps -aux |

grep -v grep

|grep docker-proxy

如何解決呢?停止docker程序,刪除所有容器,然後刪除local-kv.db這個檔案,再啟動docker就可以了。

$ sudo

service docker stop

$ docker rm

$(docker ps -aq)

$ sudo

rm /var/lib/docker/network/files/local-kv.db

$ sudo

service docker start

公司有個爬蟲專案是python2, 裡面js渲染的部分採用的是scrapy-splash. 這個東西比較笨重,加上docker配置的問題,可能會出現docker容器啟動後無法被殺死的情況。只能通過重啟伺服器解決。這裡我啟動引數有用到–maxrss 和–memory來限制記憶體

splash作者說可能是docker的問題,

提供了另乙個issue

沒看到不重啟伺服器的解決辦法,基本上都是靠重啟伺服器才解決的

詳細解釋啟動命令

docker run -d -p 8052:8050 --memory=2g --restart=on-failure:3 --log-driver json-file --log-opt max-size=10m scrapinghub/splash --maxrss 1500
說一下命令的含義,方便大家維護。

–restart=on-failure:3 這個的意思是容器非正常退出,重啟容器,最多重啟3次。docker重啟失敗後會自己增加延遲,避免無謂的重啟空佔資源。

docker run -d 啟動乙個容器後台執行。

-p 是port的意思。 8052:8050是繫結容器的8050埠到主機的8052埠。expose是暴露容器給link到當前容器的容器,或者暴露給同乙個networks的容器。和ports的區別是,expose不會將埠暴露給主機,主機無法訪問expose的埠。

–memory 容器最多使用記憶體最大為2g

–log-driver 日誌不能平白無故丟了吧, 這裡的log-driver就是用於從容器中提取日誌。預設是json-file.

max-size 是滾動之前的日誌最大大小,正整數+(k,m,g)表示檔案的大小。

scrapinghub/splash 就是我們要啟動的映象了。

–maxrss splash最大記憶體使用

為了避免出現容器跑死docker的情況,我這裡寫了乙個指令碼用於自動檢測。啟動docker的時候restart也不設為always, 只設為on-failure:3 三次之後就容器退出。看看這樣會不會就不會跑死docker.

dead=

`docker ps -a |

grep -e "exited|created"

|wc -l`if[

$dead

!= 0 ]

;then

echo

$dead

"will be remove"

docker rm

`docker ps -a |

grep -e "exited|created"

|awk''`

number=

`docker ps -a |

grep

"up"

|wc -l`

echo

$number alive process!if[

$number -lt 2 ]

then

echo

"start 8050 port"

docker run -d -p 8050:8050 --memory=2g --restart=on-failure:3 --log-driver json-file --log-opt max-size=10m scrapinghub/splash --maxrss 1500

echo

"start 8052 port"

docker run -d -p 8052:8050 --memory=2g --restart=on-failure:3 --log-driver json-file --log-opt max-size=10m scrapinghub/splash --maxrss 1500

fielse

up=`docker ps -a |

grep up |

wc -l`

if[$up -lt 2 ]

then

echo

"start 8050 port"

docker run -d -p 8050:8050 --memory=2g --restart=on-failure:3 --log-driver json-file --log-opt max-size=10m scrapinghub/splash --maxrss 1500

echo

"start 8052 port"

docker run -d -p 8052:8050 --memory=2g --restart=on-failure:3 --log-driver json-file --log-opt max-size=10m scrapinghub/splash --maxrss 1500

fifi

docker問題整理記錄

1 docker容器時區不是北京時間 1.1 直接修改容器系統時間 docker cp etc localtime 容器id etc localtime1.1.1 tomcat時間不是北京時間 jre是通過配置檔案讀取本地時間的 etc timezone 覆蓋容器配置資訊 docker cp etc...

docker操作錯誤記錄

1.執行docker ps命令,出現 cannot connect to the docker daemon at unix var run docker.sock.is the docker daemon running?這個錯誤表示是沒啟動docker 再次之前先用 docker info do...

電腦整理準備及記錄

如何解除安裝 如何登陸google賬號 因為電腦太雜了,重灌系統也費勁,所以打算花幾天時間整理一下電腦,解除安裝軟體重新安裝並且清理檔案,所以打算記錄一下這個過程 重新安裝後需要記錄安裝位置,盡量都安裝至d盤 短暫使用過的軟體現在不需要了,但很好用 軟體型別 保留型別 軟體 編輯軟體 專案檔案須存檔...