0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerとは何かわからないので調べてみた

Last updated at Posted at 2022-12-20

1.前書き
2.コンテナとは
3.コンテナ活用事例
4.実際に使ってみた
5.感想

前書き

  • AWS SAA勉強時に、「Kubernetes」という単語がやたらに出てくる。読めない。
  • 「クバネティス」「クバネテス」「クーべネティス」。ギリシャ語で「船長」。Kubernetes のスペルが K と s の間に8文字あることから k8s と表記されることもあり。
  • Kubernetes=コンテナオーケストレーションシステム=コンテナ管理システム。つまり何、、、?

参照

https://www.tohoho-web.com/ex/kubernetes.html

最近流行り(もう古い?)のコンテナ関連技術。そもそもコンテナとは何か。調べてみた。

コンテナとは

イメージがつきやすいServer仮想化と比較して、、、

  • 仮想マシン:ハイパーバイザーで立ち上げられるハードウェアの環境にゲストOS、アプリケーションのインストール
  • コンテナ:コンテナエンジンを通して共有されたホストOSのリソースにゲストOS不要でアプリケーションをインストール

引用

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883955
image.png

...つまりどういうことだ。

コンテナ化のメリット

アプリケーション実行に必要なものがコンテナに収納されていることがポイント。

  • 移動可能性の高さ

    • コンテナ化ツールがホストOSにサポートされてさえいれば、手間いらずで別のサーバに移植可能。ハイパーバイザーや仮想OSを意識することなく、作成したコンテナを開発、検証、実行環境へデプロイできる。
  • オーバーヘッドの最小化

    • ホストOSのカーネルを利用するため、仮想マシン環境と比較してHV,仮想OSの管理が不要。
    • CI/CDの実現。開発、改善、デプロイの手作業をできるだけ少なく。
  • アプリケーションパフォーマンスの向上

    • HVや仮想OSの起動処理が不要。

ホストOSとアプリケーションの間の距離を短くして、必要な分だけ移動できるようパッケージした感じと思った。

Dockerについて

調べる前は「コンテナ」=「Docker」というイメージがあったが、、、

DockerとはDocker社が提供する「コンテナ型仮想化技術」 を実現するプロダクト(ソフトウェアそのもの、またはプラットフォーム)

つまり?Docker社のおかげで、、、イメージ作成と実行を簡単にしてくれる。

環境およびアプリケーションをDockerイメージとしてバンドルし、DockerエンジンによりDockerコンテナとして配備・実行できる。Linux・Windows・Macすべてに対応したDockerエンジンは開発・テスト・本番・デバッグなど様々な状況で容易かつ高速なアプリケーション配備・実行を可能にする。

https://ja.wikipedia.org/wiki/Docker

コンテナ活用事例

仮想マシン環境で大規模な開発をしているとこなら、どこでも導入機会があるように思える。
リクルート社での活用事例。大量のアクセスが発生するWebsite, Applicationを多数抱えており、それらの更新頻度も高い。

画像引用:https://www.slideshare.net/recruitcojp/Docker-50826578/
image.png

実際に使ってみた

手っ取り早そうなDocker Desktop for Windows(WindowsOSで動かせるコンソール)で。
さくっと作れるとはいかがなものか。

  1. WSLで動くらしいのWSLをインストール
    wsl --install -d Ubuntu

  2. Docker Desktopアプリをインストール(https://docs.docker.com/desktop/install/windows-install/)
    アメコミ風でかわいいimage.png

(調べたら再インストールしないといけないみたい,,,)...トラシュー中
image.png

再起動で治った(一番怖いやつ)
image.png

寄り道:Desktopアプリの案内に従ってコンテナを作ってみる。一瞬でコンテナ出来上がり。

docker run -dp 80:80 docker/getting-started

image.png

3.簡単なWebページを準備してみる。Docker HubにあるApacheのイメージをPull。

docker image pull httpd

4.Apacheイメージからコンテナの作成と起動をする。

$ docker container run -d -p 8080:80 httpd

5.するともうデフォルトのindex.htmlページが、、、簡単すぎる。

http://localhost:8080

image.png

※コンテナはいつ何時でもスクラップ(ビルド)されることを想定に作るため、webページのコンテンツをコンテナ内に置いて置くのは危険。例えば、今回の環境だとローカルにファイル群を置いて、イメージ実行時にマウントするようにするとか?

感想

  • コンテナ化によるアドバンテージは理解できるが、使いこなすにはコンテナに関する知識のキャッチアップが必要であり、HVで運用できている環境だと、いきなり舵を切るのは正直難しそう。
  • 今後Docker Engineの種類が増えてくると、結局サポート/未サポート問題が出てくる?
  • 結局「Kubernetes」とは、、、複数のコンテナ間の連携を取れるので、「アプリケーションのマイクロサービス化」で必要そう。次回にご期待。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?