web-dev-qa-db-fra.com

Créer une image / un conteneur Docker à partir d'EC2 AMI

Je suis très nouveau dans Docker et j'essaie d'importer mon AWS EC2 AMI dans une image Docker. L'image est une image linux m2.

J'ai également configuré un hub docker privé (artificiel) vers lequel j'ai l'intention de pousser l'image et de la rendre disponible pour la consommation. Quelles sont les étapes pour importer AMI dans une image Docker sans partir d'une image de base et la mettre à jour.

Des pointeurs vers toute explication fonctionneraient également.

19
user1795516

Voici comment je l'ai fait.

  • Sur l'AMI source, localisez l'ID d'instantané du volume racine dans la description

/dev/sda1 = snap-eb79b0b1: 15: vrai: gp2

  • Lancer l'instance avec Ubuntu 14.04 AMI public

  • Créez un volume à partir de l'instantané snap-eb79b0b1 (dans la même région que l'instance s'exécute).

  • Attachez le volume à l'instance en tant que /dev/sdf

  • monter le volume sur /mnt

mount /dev/xvdf /mnt

(ou)

mount /dev/xvdf1 /mnt

  • installer docker

https://docs.docker.com/engine/installation/ubuntulinux/

  • importer une image Docker à partir du volume racine monté

tar -c -C /mnt/ . | docker import - appcimage-master-1454216413

  • courir

docker run -t -i 6d6614111fcb03d5ca79541b8a23955202dfda74995d968b5ffb5d45c7e68da9 /bin/bash

18
user2153517

Docker peut créer une image à partir d'un fichier tar en utilisant le docker import commande. De la documentation :

Usage: docker import URL|- [REPOSITORY[:TAG]]

Create an empty filesystem image and import the contents of the tarball 
(.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) into it, then optionally
tag it.

Vous devriez donc être en mesure de créer une archive tar à partir de votre image AMI, puis de la transmettre à docker.

2
larsks

Lors de la création du fichier tar cd dans le répertoire et tar l'arborescence à partir de là.

cd /media/my-external-drive
tar -czvf /tmp/drive-image.tgz

Et puis pour créer l'image ...

docker import /tmp/drive-image.tgz

Cela permet au conteneur dockerized de créer les chemins d'accès corrects lorsque vous l'exécutez.

1
user5632604