web-dev-qa-db-ja.com

Docker、イメージを最初から開始

Dockerのすべての入門ガイドは、dockerの画像を他の人の画像に基づいています。ただし、baseイメージにも180MBの仮想ストレージがあります。そう、

親画像なしでdocker画像を最初から完全に開始することは可能ですか? (もしそうなら、私はネットインストールを介して独自のベースイメージを作成することを計画しています)。

PSチェック Dockerの詳細についてはこちら

ありがとう

6
xpt

それを見つける、

Dockerのベースボックスを構築する方法

私がいつもやっていたステップを要約して、

まず、デブートストラップがインストールされていることを確認します。

 Sudo apt-get install debootstrap

次に、最新のmkimage-debootstrap.shを入手します。

Sudo sh -xc 'curl https://raw.githubusercontent.com/dotcloud/docker/master/contrib/mkimage-debootstrap.sh > /usr/sbin/mkimage-debootstrap.sh' Sudo chmod 755 /usr/sbin/mkimage-debootstrap.sh

ビルド手順は非常に簡単です。

mkimage-debootstrap.sh sfxpt/debian sid

debianの場合、および

mkimage-debootstrap.sh sfxpt/ubuntu saucy

ubuntuDockerイメージを構築するため。

不足しているすべての詳細については、上記のURLを確認してください。そしてまた、

Docker用に独自のベースイメージを作成するにはどうすればよいですか

5
xpt

DockerHubは見るのに良い場所です。 GentooはGitHubと同様に一般的な設定ですが、Docker Hubのレジストリには、DOCkerコンテナの作成に使用されるdockerfileへのリンクが含まれていることがよくあります。

同様に、Dockerコンテナを相互にネストすることもできます。 Docker Composeを使用して、参照イメージをプルすることもできます。yourname/ mycustom-container-squashにプッシュします。

Dockerfile 
FROM myname/my-custom-container 
ADD Build-all-my-crap.sh
RUN Build-all-my-crap.sh

VirtualBoxと同様に、BusyBoxの解凍されたバイナリを使用できます。つまり、純粋なtar.gzのDebianファイルをデクラフティングする(bin> tar.gzなど)、bb-tar.gzを使用して、最小限のベースでtarballを最初から解凍できます。 。

私の場合、GentooからPentooをいじっていましたが、squashfilesに到達するためのiso> outは、オーバーレイを追加できますが、時間がかかりすぎると、docker-hubサーバーがビルドを強制終了します。 GentooインストールをPentoo(カスタマイズされたGentoo)で上書きするか、次にオーバーレイを追加しようと考えましたrsync/crsync binpackage次に、pkgリストを表示し、ビンをクリーンアップしますが、これもタイムアウトになる可能性があります。

GitHub上のJenkler Docker Base Gentooパッケージ

Gentooの公式リポジトリを使用しましたが、x86で強化されたdockerhub自動ビルドでシェルツールが失敗する傾向があります。 (残念)

ジェンクラーの方法では、最小限でありながら微調整されたベース画像が可能です。いくつかのdebian> tarを一時的に争いに滑り込ませるか、単に組み込むことができます。GitHubでは少しLFSが可能なので、上記の例のようにdir> tarballを切り刻むことができます。 isoとsquashfileを切り取ろうとしましたが、思ったほどうまく機能していません。

necrose99/my-cx-gentooベースから、いくつかのツールを使用してスカッシュを解凍します。つまり、セキュリティの研究のために、Dockerクラスターをドッキングしたり、DockerでPentooをchrootとしてセットアップしたりすることができます...(x11などを実行できます)私のREALインストール(ALPHAパッケージ私は最高のEbuildライターと新しいセキュリティツールではありません)。

ただし、my-baseでの新しいコンテナ呼び出し
私の新しいものを出現させる
ビルドタブからold/old/someelseで次の新しいコンテナ呼び出し。 DockerHubで。
ドローンに乗ってモデレーターを怒らせないでください...

とにかく、ケーキレイヤーのようなDockerイメージをスタックしてウエディングケーキを作成することは良い例えですおよび/またはアプリをコンテナーにキックしてからビルドベースコンテナ。 my-debian-ngix-www-hugo-docker from debian/public ...など、Debianが選択のベースである場合は可能です。

2
Necrose99