2017-07-02 4 views
0

Je suis nouveau sur docker. Je lance docker "nativement" à partir d'un Windows Server 2016 avec un conteneur Windows, il n'y a pas de VM intermédiaire (pas de docker machine) entre et pas de docker toolbox, donc le "hôte" est le Windows Server sur lequel je lance docker.Impossible d'exécuter l'exécution de docker à l'aide de la commande Invoke

Version Docker:

PS C:> Version docker Client: Version: 17.03.1-ee-3 version API: 1.27 Version Go: go1.7.5 git commit: 3fcee33 Construit: Jeu 30 mars 2017 19:31:22 OS/Arch: windows/amd64

serveur: Version: 17.03.1-ee-3 Version API: 1.27 (version minimum 1.24) Version Go: go1.7.5 Commit Git t: 3fcee33 Année de construction: Jeu Mar 30 19:31:22 2017 OS/Arch: Windows/amd64 Expérimental: faux PS C:> J'ai retiré l'image du docker hub. J'ai besoin de remplacer les fichiers à l'intérieur de l'image du docker lors de l'exécution et de valider les modifications apportées à l'image. Disons que j'ai Sample.java et datafile.properties dans l'image du docker que j'ai extrait du docker hub.

je veux remplacer par Hello.java et data.properties [i tiré ces fichiers de GitHub]

comment pourrais-je faire cela d'une manière automatisée? Tout conseil et quelques exemples à ce sujet serait-il utile. Merci d'avance.

Répondre

0

La meilleure façon de créer une image automatisée consiste à utiliser un Dockerfile. Certaines informations peuvent être trouvées dans la documentation, par exemple; https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

Si vous avez vos Hello.java et datafile.properties dans un répertoire, créez un Dockerfile dans le même répertoire, par exemple.

FROM the-base-image-on-docker-hub 
RUN rm /path/to/Sample.java 
COPY ./Hello.java /path/to/ 
COPY ./datafile.properties /path/to/ 

Vous pouvez ensuite créer votre image, et "tag" comme myimage:latest avec;

docker image build -t myimage:latest . 

(la période à la fin (.) indique, utilisez le répertoire courant que « construire contexte » - le contexte de construction est téléchargé sur le démon docker, et tout ce qui sera accessible à ajouter à votre docker image en utilisant les instructions COPY ou ADD Dockerfile)

Ceci est un exemple très naïf, juste pour illustrer le concept; Je suggère de lire la documentation, de comprendre le concept et de chercher d'autres exemples.

+0

C'est vrai. Je peux le faire sur ma machine locale. Je lance un script PowerShell qui va créer une instance Windows EC2, installer docker et tirer l'image qu'il a été automatisé de bout en bout. J'utilise New-PSSession pour entrer dans mon instance nouvellement créée et passer chaque commande via la commande Invoke. Je ne suis pas en mesure d'exécuter la console interactive (docker exécuter 474614/my_repo cmd) il arrive avec une erreur "ce n'est pas un appareil tty, essayez de préfixer winpty". Je n'ai aucune idée de comment rendre cette winpty pour travailler sur l'instance de Windows ou est-il un autre moyen de faire ce travail – syndy1989