wake-up-neo.com

Docker-Set-Set-Containername für Stapel

Ich setze einen kleinen Stack auf ein UCP

Eines der Probleme, mit denen ich konfrontiert bin, ist die Benennung des Containers für service1.

Ich muss einen statischen Namen für den Container haben, da er von mycustomimageforservice2 verwendet wird.

Die Option container_namewird bei der Bereitstellung eines Stapels im Schwarmmodus mit einer (Version 3) Compose-Datei ignoriert.

Ich muss version verwenden: 3 compose files.

version: "3"
services:

  service1:
    image: dockerhub/service1
    ports: 
      - "8080:8080"
    container_name: service1container
    networks:
      - mynet

  service2:
    image: myrepo/mycustomimageforservice2
    networks:
      - mynet
    restart: on-failure

networks:
  mynet:

Welche Möglichkeiten habe ich?

4
Igor L.

Sie können einen containerName nicht beim Compose erzwingen, da er so konzipiert ist, dass er zum Beispiel das Skalieren eines Dienstes zulässt (indem die Anzahl der Replikate aktualisiert wird), und das mit Namen nicht funktioniert. http: // serviceName: internalServicePort ) stattdessen erledigt and docker den Rest für Sie (z. B. Auflösung in eine tatsächliche Containeradresse, Lastausgleich zwischen Replikaten ...).

Dies funktioniert mit dem Standard-Netzwerktyp, der überlagert ist

2
herm

Sie können sich mit Ihrem Problem bei der Verknüpfung von Diensten in der Datei docker-compose.yml beschäftigen. Etwas wie:

version: "3"
services:

  service1:
    image: dockerhub/service1
    ports: 
      - "8080:8080"
    networks:
      - mynet

  service2:
    image: myrepo/mycustomimageforservice2
    networks:
      - mynet
    restart: on-failure
    links:
      - service1

networks:
  mynet:

Wenn Sie link-Argumente in Ihrer docker-compose.yml verwenden, erlauben Sie einem Dienst, über den Containernamen auf einen anderen zuzugreifen. In diesem Fall stellt service2 dank des Links-Parameters eine Verbindung zu service1 her. Ich bin nicht sicher, warum Sie ein Netzwerk verwenden, aber der Link-Parameter wäre nicht notwendig.

0

Wenn Sie Version 3 verwenden müssen, aber nicht mit Swarms arbeiten, können Sie den Befehlen --compatibility hinzufügen.

0
Joris Boschmans