1
1

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-04-08

🤔そもそもDockerとは

サーバ仮想化技術の一つ。
仮想化技術については、以前まとめたので、以下を参照。
https://qiita.com/tanakanata7190/items/325dddaed29e38b59988

サーバ仮想化技術は、大きく以下3つに分類されるが、このうち「コンテナ型」に相当する。

  • ホスト型
  • ハイパーバイザ型
  • コンテナ型

😶Dockerの何がいいのか

環境構築が容易

  • スクラップ&ビルドが簡単
  • Dockerイメージの共有が楽
  • OSのバージョン差異を吸収してくれる

軽量

  • Ubuntu16.04の場合、普通は約1.6GB消費するが、Dockerなら119MB

👪Docker関連の登場人物

登場人物 説明
Docker Engine 全ての根幹であり、以下の作成・起動・停止・配布などを管理する
Dockerfile 設計書(ただの紙ぺら)。RUNとかEXPOSEとかでサーバ構成が明記されている。
Docker Image 成果物(電源入ってない状態)。docker buildでDockerfileから生成される。
Docker Container 納品物(電源入ってる状態)。docker runでDockerImageから生成される。

💭Docker関連の用語集

用語 説明
Docker Hub アプリケーション群を共有・管理するSaaS
Docker Registry Repositoryを預かるホスティングサービス
Docker Repository Docker Imageの集まり。Registoryに送信する事で共有可能に。
Tag Docker Imageのバージョン情報
Volume データを永続化できる場所。 ホストOS、docker volume createで作成した箇所、NFS指定など
オーケストレーション 複雑なコンピュータシステム/ミドルウェア/サービスの配備/設定/管理の自動化を指す用語
Docker Comporse 複数のコンテナで構成されるアプリケーションについて、Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行えるようにするツール

🖥Dockerの構築手順

Step1. Docker Engineのインストール

インストール方法はOSによって異なる。

Linuxの場合

  • ディストリビューションによる
    • DebianやUbuntuだと、apt-get install docker-engineだったり、
    • CentOSだと、yum install docker-ceだったり、

WindowsないしmacOSの場合

  • Toolboxを利用するのがよさそう。
  • 公式からダウンロードし、インストールすればよい。

何にせよ

Step2. Docker Imageを作成

作成方法は3つある。

作成方法1:自分で作成

作成方法2:Docker Hubから取得

  • この世の中は便利なので、必要であろうDocker Imageは誰かが作って公開しれくれている
  • なので、便利な世の中にあやかるstyle
  • Docker Hubから取得するコマンドはdocker pullであり、使用方法については以下を参照

作成方法3:Docker Repositoryから取得

  • この世の中は便利なので、必要であろうDocker Imageは誰かが作って公開しれくれている
  • なので、便利な世の中にあやかるstyle
  • Docker Hubから取得するコマンドはdocker pullであり、使用方法については以下を参照

Step3. Docker Containerを起動

『Docker関連の登場人物』にも記載した通り、
「Docker Image」は電源の入っていないような状態であるため、電源を入れてあげる必要がある。
「Docker Image」を基に「Docker Container」を起動するには、docker runを使用する。使用方法については以下を参照。
https://docs.docker.jp/engine/reference/run.html

これでホスト上でプロセスが動き始める。ウィーンガシャン

💻実務的な開発・運用イメージ

(実際のところDockerを業務で使った事がないので、これで合っているという確証は全くない...)

Step0. 事前準備

  • GitHubにPrivateリポジトリを作成しておく
  • DockerRepositoryをオンプレ構築しておく
  • 本番VMにDockerEngineをインストールしておく

Step1. Aさんによる初期開発

1-1. Webアプリを作成(何でもいい)
1-2. Dockerfileを作成(1-1をcloneするコマンドも記載)
1-3. 1-1&1-2をGithubにpush
1-4. 1-2からDocker Imageを作成
1-5. 1-4をDocker Registoryにpush

Step2. Bさんによる追加開発

2-1. Docker RepositoryからDocker Imageをpull
2-2. docker runでコンテナ起動(この時点でgit cloneされてるのでローカルで開発&必要に応じてpush)

Step3. Cさんによる本番適用

3-1. 本番VMにログイン
3-2. Docker Repositoryからpull
3-3. docker runでコンテナ作成&起動

全体概要図

こんな感じかな・・・?

image.png


(補足)VMwareとの違い

インストールについて
  • VMwareの場合
    • 「VMware ESXi」をインストール
    • (WindowsPCの場合は「VMware Workstation Player」
  • Dockerの場合
    • 「Docker Engine」をインストール
    • (WindowsPCの場合は「Docker for Windows(Toolbox)」
仮想マシンの立ち方について
  • VMwareの場合
    • 「VMware ESXi」の上に「仮想マシン」が立つ
  • Dockerの場合
    • 「Docker Engine」の上に「Docker Container」が立つ
統合管理について
  • VMwareの場合
    • 「vCenter Server」で管理
  • Dockerの場合
    • 「オーケストレーションツール」で管理
      • Docker Comporse
      • Kubernetes
      • Amazon ECS など

(参考文献)

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?