두 대의 Linux 시스템에서 이 명령을 실행합니다.
docker run -d --name registry --restart=always -p 4000:5000 -v registry:/var/lib/registry registry:2
예상대로 포트가 하나씩 해제됩니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0cae195defe8 registry:2 "/entrypoint.sh /etc…" 3 seconds ago Up 2 seconds 0.0.0.0:4000->5000/tcp registry
$ ss -nltp|grep 4000
LISTEN 0 4096 0.0.0.0:4000 0.0.0.0:*
반면에 다음은 그렇지 않습니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d3726252a61 registry:2 "/entrypoint.sh /etc…" 4 seconds ago Up 3 seconds registry
$ ss -nltp|grep 4000
$
Docker가 두 번째 시스템에 해당 포트를 게시하지 못하게 만드는 원인은 무엇입니까?
참고: 컴퓨터를 다시 시작해도 문제가 해결되지 않습니다.
편집하다포트 게시가 작동하지 않는 머신의 Docker 버전:
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:03:17 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:01:23 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
작동하는 머신의 도커 버전은 클라이언트에 한 줄이 더 있다는 점을 제외하면 정확히 동일합니다.
Cloud integration 0.1.18