web-dev-qa-db-ja.com

EC2 AMIからDockerイメージ/コンテナーを作成する

私はdockerに非常に慣れていないので、AWS EC2 AMIをdockerイメージにインポートしようとしています。イメージはm2 linuxイメージです。

また、イメージをプッシュして使用できるようにするプライベートDockerハブ(artifactory)をセットアップしました。ベースイメージから開始して更新せずにAMIをdockerイメージにインポートする手順は何ですか?.

説明へのポインタも機能します。

19
user1795516

ここに私がそれをした方法があります。

  • ソースAMIの説明でルートボリュームのスナップショットIDを見つけます

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

  • パブリックUbuntu 14.04 AMIでインスタンスを起動する

  • スナップショットsnap-eb79b0b1からボリュームを作成します(インスタンスが実行されているのと同じリージョン内)。

  • ボリュームをインスタンスに/dev/sdfとしてアタッチします

  • ボリュームを/mntにマウント

mount /dev/xvdf /mnt

(または)

mount /dev/xvdf1 /mnt

  • dockerをインストールする

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

  • マウントされたルートボ​​リュームからDockerイメージをインポートする

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

  • 走る

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

18
user2153517

Dockerはdocker importコマンドを使用してtarファイルからイメージを作成できます。 ドキュメント から:

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.

したがって、AMIイメージからtarアーカイブを作成し、それをdockerにフィードできるはずです。

2
larsks

Tarファイルcdをディレクトリに作成し、tarツリーをそこから作成します。

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

そして、画像を作成するには...

docker import /tmp/drive-image.tgz

これにより、dockerizedコンテナーは実行時に正しいパスを作成できます。

1
user5632604