dockerが起動すると起動せず、プロセスなしでポートが開きます。

dockerが起動すると起動せず、プロセスなしでポートが開きます。

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コンテナが再起動し、デーモン用に設定したプロキシ設定が正しく機能しました。

おすすめ記事