2017-11-16 2 views
0

Ich bin Docker Container von Nodejs Anwendung erstellen. Unten ist die Probe meiner Docker KonfigurationsdateiSo geben Sie die Anmeldeinformationen für private Docker-Docker in der Docker-Konfigurationsdatei an?

FROM node:6.11 
WORKDIR /usr/src/app 
COPY package.json . 
npm install 
copy . /usr/src/app 
EXPOSE 80 
CMD [ "npm", "start" ] 

Dieser den Knoten Bild von Docker Hub wird heruntergeladen und dann wird es Docker Bild gemäß der Konfiguration erstellen.

Aus Sicherheitsgründen möchte ich nicht Nodejs Bild von Docker Hub herunterladen, stattdessen möchte ich mein privates Repository verwenden, um Nodejs Bild herunterladen.

Da ich das private Repository eingerichtet habe, bin ich mir nicht sicher, wie ich Registrierungsdaten in DockerFile angeben soll.

Kann mir jemand dabei helfen?

Antwort

1

Standardmäßig zieht Docker alle Bilder von Dockerhub. Wenn Sie ein Bild aus einer anderen Registrierung abrufen möchten, müssen Sie dem Bildnamen die Registrierungs-URL voranstellen. Überprüfen Sie die official docker pull documentation.

In Ihrem Fall haben Sie 2 Möglichkeiten:

Die erste ausdrücklich die Registrierung innerhalb des Dockerfile als solche zu bestimmen ist:

FROM <registry>:<port>/node:6.11 
WORKDIR /usr/src/app 

Sobald Sie aus dem privaten bauen, wird das Bild heruntergeladen Registrierung. Stellen Sie sicher, dass Sie vor dem Erstellen mit dem Befehl docker login bei der Registrierung angemeldet sind.

Alternativ, wenn Sie die Andockdatei nicht ändern möchten. Ziehen Sie das Bild aus dem privaten Registry docker pull <registry>:<port>/node:6.11 und anschließend Docker Build zwingt dieses Bild zu verwenden, indem sie es mit nur node:6.11

docker tag <registry>:<port>/node:6.11 node:6.11 
1

Bevor Sie das Docker-Image erstellen, müssen Sie docker login zu Ihrem privaten Repo machen. Dann zieht - explizite oder implizite FROM wird diese Registrierung verwenden (und während ich keine Dokumentation finden kann, um das zu sichern, vermute ich, dass es auch Fallback zu Docker Hub, wenn es dort das Bild nicht finden kann, aber das kann abhängig sein in den Registrierungseinstellungen ????)

0

Tagging Ich denke, man bereits NodeJS Bild in Ihrer lokalen Docker Registrierung hat. Wenn Sie das NodeJS Bild von den lokalen Docker Registrierung ziehen wollen:

  • Stellen Sie sicher, dass Docker Daemon zeigt auf lokale Docker Registrierungs Verwendung --insecure-registry <registry_address>:<port> wie hier erwähnt https://docs.docker.com/engine/reference/commandline/dockerd/
  • ändern Dockerfile auf Bild in der Registry zu zeigen. FROM <registry_address>:<port>/node:6.11 (Dies ist der vollständige Name Ihres Nodejs-Abbilds in der lokalen Docker-Registrierung)
  • Die Registrierungsanmeldeinformationen können mit docker login Befehl https://docs.docker.com/engine/reference/commandline/login/ festgelegt werden, oder Sie können die Anmeldeinformationen in ~/.docker/config.json Datei manuell festlegen.
  • Jetzt können Sie das Bild erstellen, es sollte das Basisbild aus der Registrierung ziehen.
Verwandte Themen