Ubuntu 20でdocker 20.10.2を使用します。 docker-compose を使用してスタックをデプロイします。
ホストを再起動すると、コンテナが設定されていても自動的にrestart: unless-stopped
起動しませんrestart: always
。
奇妙なことは、スタックを手動で再配布しようとすると(docker-compose up -d
)多くのbind
エラーが発生することです。
Creating influxdb ... error
starting userland proxy: listen tcp 0.0.0.0:8053: bind: address already in use
Creating portainer ... error
ERROR: for influxdb Cannot start service influxdb: driver failed programming external connectivity on endpoint influxdb (c96dbf129ad4c7c1e4ffe01a281f680a0174b277c9364ae8de41d864444319f4): Error startingCreating mariadb ... error
WARNING: Host is already in use by another container
ERROR: for portainer Cannot start service portainer: driver failed programming external connectivity on endpoint portainer (c19930b176b21051089da6b6eb14c225d74a6bed867ab42bd23b61a81be794d8): Error starting userland proxy: listen tcp 0.0.0.0:9000: bind: address already in use
WARNING: Host is already in use by another container
ERROR: for mariadb Cannot start service mariadb: driver failed programming external connectivity on endpoint mariadb (184e22f74c14126e8c5d4129e4a609b11f102ffcee9612c941e519f12e92d708): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
Creating traefik ... error
ERROR: for traefik Cannot start service traefik: driver failed programming external connectivity on endpoint traefik (ddb84136d437d378547c39bceef5b06e169f2f72936cf092bd025b84eb7fc357): Error starting us
netstat
使用中という表示はありますが、どのプロセスにも接続されていないようです。
$ netstat -tulpn | grep LISTEN
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:6443 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:9229 0.0.0.0:* LISTEN -
$ lsof -i:3306
$ ps -p 3306 -o comm=
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$
私は次のような興味深いものを見ませんでしたjournal -xab
。
Jan 21 22:20:04 hassvm systemd[1]: run-docker-runtime\x2drunc-moby-e3aa5cd3fb4175c7b46de9d5dcd412b2baffa516a29afbd83dd727791e2cfbac-runc.V7HkWR.mount: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit run-docker-runtime\x2drunc-moby-e3aa5cd3fb4175c7b46de9d5dcd412b2baffa516a29afbd83dd727791e2cfbac-runc.V7HkWR.mount has successfully entered the 'dead' state.
Jan 21 22:20:04 hassvm systemd[4337]: run-docker-runtime\x2drunc-moby-e3aa5cd3fb4175c7b46de9d5dcd412b2baffa516a29afbd83dd727791e2cfbac-runc.V7HkWR.mount: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit UNIT has successfully entered the 'dead' state.
Jan 21 22:20:10 hassvm systemd[1]: run-docker-runtime\x2drunc-moby-efb800957288657eb83568a3cf9c6669fc3c1c7782e678effa01f4c4f4d5a21a-runc.TpI8YC.mount: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit run-docker-runtime\x2drunc-moby-efb800957288657eb83568a3cf9c6669fc3c1c7782e678effa01f4c4f4d5a21a-runc.TpI8YC.mount has successfully entered the 'dead' state.
Jan 21 22:20:10 hassvm systemd[4337]: run-docker-runtime\x2drunc-moby-efb800957288657eb83568a3cf9c6669fc3c1c7782e678effa01f4c4f4d5a21a-runc.TpI8YC.mount: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit UNIT has successfully entered the 'dead' state.
それでも、どういう意味なのかはよくわかりません。
dockerサービス()を再起動してもsudo systemctl restart docker.service
何も変わりません。これはソケット(sudo systemctl restart docker.socket
)を再起動した場合にのみ機能します。
どうなりますか?永久的な解決策はありますか?
答え1
私の場合は、aptとsnapバージョンのdockerをインストールしたために発生しました。以下を実行してdockerのスナップバージョンを削除しました。sudo snap remove docker
再起動後、Dockerコンテナが再起動し、デーモン用に設定したプロキシ設定が正しく機能しました。
答え2
私の場合、ドッカーネットワークに問題があり、VPNを介して接続しました。 o / pコマンドは、journal -xe
OPがすでに指摘したように、実際には役に立たないものを提案します。ネットワークコントローラを一覧表示できないという/var/log/syslog
便利なログが見つかりました。dockerd
一部の人には接続できないなど、他のエラーについて不平を言うでしょう。
VPNの接続を解除すると、dockerデーモンサービスが正常に開始されました。