誰にも見えないブログ

雑なメモ。まとまってない文章等

dockerチュートリアル1:概要、開発環境のセットアップ等

cmakeに引き続き何かのtutorialをやっていくシリーズ。今回はdockerです

  • 割としっかりしたtutorialになっている気がする

https://docs.docker.com/get-started/

  • docker はコンテナ上でアプリケーションのビルド・共有・実行を行うためのプラットフォーム
  • コンテナを使ったアプリケーションのデプロイをコンテナ化(containerization)という
  • コンテナは新しい概念ではないが、アプリケーションのデプロイの簡潔化に利用する流れは新しい

  • 人気の秘訣

    • 柔軟性、軽量、ポータビリティ、粗結合、スケーラブル、セキュア

images and containers

  • コンテナはプロセスであり、ホスト・他コンテナから分離するための機能が備わっている
    • Docker imageが共有するコンテナごとのprivateなfile system
    • imageはアプリの実行に必要な全て(コード、ランタイム、依存関係、オブジェクトetc...)を含む

Containers and virtual machines

  • コンテナはネィティブ実行される
    • ?
    • ホストマシンのカーネルを各コンテナと共有する
      • 各コンテナは別プロセスとして実行される
      • 他の仮想化方法に比べ早い
  • VMはハイパーバーザーを介したホストリソースへの仮想アクセスを行う
    • アプリケーションを実行する以上のオーバーヘッドが発生することが多い。

install・実行等

docker run hello-world
  • 上記でdocker hubからhello-world imageを取得し、containerを作成+実行する
docker container ls --all
  • 上記でinstallしたimageや実行中のcontainerを確認可能