739 Stimmen

Wie kann ich mit Docker mehr als 1 Port freigeben?

Ich habe also 3 Ports, die der Schnittstelle des Geräts zugänglich gemacht werden sollen. Ist es möglich, dies mit einem Docker-Container zu tun?

1116voto

Tania Ang Punkte 10866

Um nur einen Port freizulegen, müssen Sie Folgendes tun:

docker run -p :

Um mehrere Ports freizulegen, geben Sie einfach mehrere -p Argumente an:

docker run -p : -p :

485voto

mainframer Punkte 19053

Schritt1

In Ihrem Dockerfile können Sie das Verb EXPOSE verwenden, um mehrere Ports freizugeben.
z.B.

EXPOSE 3000 80 443 22

Schritt2

Sie möchten dann ein neues Image basierend auf dem obigen Dockerfile erstellen.
z.B.

docker build -t foo:tag .

Schritt3

Dann können Sie das -p verwenden, um den Host-Port mit dem Container-Port zu verbinden, wie im obigen EXPOSE des Dockerfile definiert.
z.B.

docker run -p 3001:3000 -p 23:22

Falls Sie einen Bereich von aufeinanderfolgenden Ports freigeben möchten, können Sie docker wie folgt ausführen:

docker run -it -p 7100-7120:7100-7120/tcp

47voto

Rashidul Islam Punkte 1594

Wenn Sie die docker-compose.yml-Datei verwenden:

services:
    varnish:
        ports:
            - 80
            - 6081

Sie können auch den Host-/Netzwerkport wie folgt angeben: HOST/NETZWERK_PORT:CONTAINER_PORT

varnish:
    ports:
        - 81:80
        - 6081:6081

5voto

Aramis NSR Punkte 886

Verwenden Sie dies als Beispiel:

docker create --name new_ubuntu -it -p 8080:8080 -p 15672:15672 -p 5432:5432 ubuntu:latest bash

Schauen Sie, was Sie erstellt haben (und kopieren Sie dessen CONTAINER-ID xxxxx):

docker ps -a

Schreiben Sie jetzt das Zauberwort (start):

docker start xxxxx

Viel Glück

5voto

HMS Punkte 73

Nur ein Punkt hinzuzufügen. Sie haben die Möglichkeit, einen Bereich von Ports im Dockerfile anzugeben und beim Ausführen:

in Dockerfile:

EXPOSE 8888-8898

Image erstellen:

docker build -t : -f dockerfile .

Beim Ausführen des Images:

docker run -it -p 8888-8898:8888-8898 -v C:\x\x\x:/app :

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X