タグ

ブックマーク / blog.etsukata.com (2)

  • Docker のビルド方法に見る Golang の利点

    以前、Docker をビルドしていて、以下の事実に気づきました。 事実: Docker は自身をビルドするのに Docker を用いてコンテナ内でビルドしている 実際、ソースコード直下に、以下の Dockerfile が置いてあります。中を参照すると、ubuntu のコンテナイメージをベースに、依存するソフトウェアを apt-get したり、git clone で取得したりしています。make コマンドで、依存するソフトウェアをインストールしたコンテナ内で、hack/make.sh を実行し、バイナリを作成します。生成したバイナリをコンテナから取り出してビルド終了となります。 DockerGolang で書かれていますが、その理由の一つに、Golang の優れたポータビリティ (libc が入っている環境であればどこでも動作するバイナリを手軽に生成できること)があります。これにより、

  • Etsukata blog: Docker を支える Linux Kernel の機能 (概要編)

    はじめに Docker はコンテナ型仮想化技術を使ってOSレベル仮想化を実現するコンテナ管理ソフトウェアです。類似のコンテナ管理ソフトとしては、Docker の他にも libvirt、 lxc-tools などがありますが、 Docker には以下の大きな特徴があります。 Infrastructure as Code の思想に基づき、コンテナをコード(Dockerfile) で管理できる docker index  で、コンテナイメージを手軽に取得、共有できる Docker は上記のような特徴を持つため、アプリケーションのポータビリティを大きく向上させることができると期待されています。 参考:Naoya Ito 氏 "Dockerアプリケーションのポータビリティを考える" 大変便利な Docker ですが、Docker によるコンテナ管理は、実は数多くの Linux Kernel の機能に

    Etsukata blog: Docker を支える Linux Kernel の機能 (概要編)
  • 1