Snappy UbuntuはDockerコンテナをホストできることを知っています。私の質問は、Dockerゲストとしてコンテナー内でも実行できるかどうかです。
私が尋ねている理由は、パブリックDockerリポジトリにSnappy VMゲストコンテナーが見つからないためです。
はい、できます:SnappyはUbuntuの単純なバージョンであり、UbuntuはDocker内で動作します。 SnappyがパブリックDockerリポジトリ内に表示されないという事実は、手動で操作する必要があることを意味します。
まず、最新の画像を取得します。
wget http://cdimage.ubuntu.com/ubuntu-core/preview/ubuntu-core-alpha-02_AMD64-virt.img
このファイルはQEMU/KVM向けのQCOW2イメージですが、Dockerのコンテンツも抽出できます。
QCOW2イメージ内のファイルにアクセスするには、qemu-nbd
が必要なので、インストールして実行します:
qemu-nbd -c /dev/nbd0 ubuntu-core-alpha-02_AMD64-virt.img
このコマンドは、/dev/ndb0
という名前の「仮想パーティション」を持つ/dev/ndb0pX
という名前の「仮想ディスク」を作成します。 fdisk -l /dev/nbd0
を使用して、QCOW2イメージ内のパーティションを把握します。
興味のあるパーティションは/dev/ndb0p3
なので、マウントします:
mount /dev/ndb0p3 /somewhere
ほぼ完了です! カスタムベースイメージに関するDockerのガイド に従うだけです。
tar -C /somewhere -c . | docker import - snappy
これで、ベース画像の上にSnappy画像を作成する準備ができました。たとえば、snappy_testイメージをxkcd-webserverアプリで作成しましたインストール済み。使用したDockerfile
は次のとおりです。
FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80