====== Docker ====== --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-12-18 // Dockerは、Linuxのコンテナ仮想化技術を用いて仮想環境を作成、配布、実行するためのプラットフォームで、Apache License 2.0 ライセンス下でオープンソースソフトウェアとして公開されています。DockerはDocker社が提供しており、2014年6月にオープンソースソフトウェアとして正式版がリリースされ、2017年4月にコミュニティエディション(CE)とエンタープライズエディション(EE)2つのソリューションの提供を開始しました。 Webアプリケーションは、開発環境、テスト環境、ステージング環境、運用環境と複数の環境下で同じ動作をしなければなりません。これらの環境は複数の開発メンバーに対しても常に一定の一貫性をもっていなければならず、従来から開発上の問題となっていました。この問題を解決するために、開発されたのが Docker です。 Docker を使う事によって、アプリケーションの動作環境をコンテナとして作成し、そのイメージファイルを配布することで、あらゆる状況(開発、テスト、ステージング、運用など)に対して同一環境を配備できるようになります。これにより、開発から運用までのリリース時の時間的ギャップを大きく短縮できる効果が期待できます。 Docker を使った開発のワークフローは、開発、テスト、ステージング、運用の工程を、構築(**Build**) → 移動(**Ship**) → 実行(**Run**)と進んでいきます。その中心に存在するのが DockerHub と呼ばれるコンテナを共有するためのインターネット上のリポジトリです。Docker Hub はDocker社が運営している有償サービスですが、公開リポジトリ(パブリックリポジトリ)に限っては無償で無制限に作成できます。この辺りの事情はGitHubと同じです。 本編では、Windows上でのDockerのインストール、コンテナの構築・移動・実行、そして DockerHub について説明する予定です。DockerはWSL2のUbuntuにインストールします。 リンク * [[https://docs.docker.com/|Docker Docs]] --- Dockerドキュメント (本家) * [[https://docs.docker.jp/|Docker ドキュメント日本語化プロジェクト]] --- Dockerドキュメント(日本語) * [[https://qiita.com/zembutsu/items/24558f9d0d254e33088f|Dockerイメージの理解を目指すチュートリアル]] --- 勉強になりました。 * [[https://qiita.com/mikezhan/items/1ed008c3779df5d76de7|Dockerの再入門]] --- DockerとLinux(cgroup、namespace)との関係について説明されています。 ----- ===== 目次 ===== * [[wsl2:ubuntu:docker|WSL2/Ubuntu に Docker をインストールする]] * [[docker:20:basic|Dcoker コンテナの基本的な利用方法(Run)]] * [[docker:20:build|Docker コンテナイメージの作成(Build)]] * Docker コンテナ間通信 --- 予定 * Docker ボリュームの利用 --- 予定 * Docker Compose --- 予定 * DockerHubの利用(Ship)--- 予定 * [[docker:20:quick-maintenance|Docker クイックメンテナンス]] \\