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
재부팅 후 도커 컨테이너가 다시 시작되었고 데몬에 대해 구성한 프록시 설정이 제대로 작동했습니다.
답변2
제 경우에는 도커 네트워크에 문제가 있어서 VPN을 통해 연결했습니다. o/p 명령은 journal -xe
OP가 이미 지적한 것처럼 실제로 유용하지 않은 looking을 제안합니다. 네트워크 컨트롤러를 나열할 수 없다는 /var/log/syslog
유용한 로그를 찾았습니다 . dockerd
어떤 사람들에게는 연결할 수 없는 것과 같은 다른 오류에 대해 불평할 것입니다.
VPN 연결을 끊자 docker 데몬 서비스가 정상적으로 시작되었습니다.