Dockerとは
- Docker社が開発した仮想環境を作るためのソフトウェアのこと
- Linuxが持つ仮想化技術で実行環境を他のプロセスから隔離し、その中でアプリケーションを動作させる
- コンテナ内のアプリケーションから見ると、独立したコンピュータ上で動作しているように振る舞う
- OSをわざわざ開かなくてもアプリケーションを使えるため起動が早い
- OS、ライブラリ、アプリケーションコードがひとまとまりになっており、Dockerを使えばアプリケーションを動かすことができる
仮想環境とは
- PCなどのハードウェア内で構築された仮想的な環境
- PCの中に作られたPCに似たような環境のこと
- 仮想環境の中でアプリケーションを動かすことができる
Dockerはいつ使われるのか
- アプリケーション開発で多く使われる
- 理由は、チームの開発環境を同じにできるため
- インストールしているアプリケーションやOSのバージョンなどは個々によって異なり、皆が同じ環境を持っていることはほぼない
- チームで開発をする際、それぞれのPCの状態が違うとアプリケーションの動きも違ってくる(→正しく開発が進められない)
- 理由は、チームの開発環境を同じにできるため
そこで、Dockerを使えばそれぞれが同じ仮想環境を作ることができる
開発に必要なソフトをまとめて用意でき、メンバーの開発環境を全く同じ状態にできるのがDockerのメリット
Dockerのインストール(Mac)
1. 遷移先のDocker Desktop for Mac with Apple siliconをクリックしダウンロード
2. Applicationにドラック&ドロップ
3. Dockerアプリを起動したらメニューバー(Macの画面上部)にクジラアイコンが表示される
4. iTerm2(terminal)でバージョンを確認
$ docker --version
Docker version 20.10.17, build 100c701
と、上記のように表示されていればOK!
Dockerの仕組み
$ docker run hello-world
Hello from Docker!
と出力されていたら成功
起こっていること
Dockerが何をしているのかをしっかりと理解しておくことが大事
$ docker run hello-world
とコマンドを実行することで
1. Dockerクライアント(依頼主)がデーモン(バックグラウンドで動作し続けるアプリ)にタスクを実行するよう伝える
2. Dockerデーモンがコマンドを受け取る
3. hello-world
というDockerのイメージをDockerレジストリから取得してくる
(Dockerレジストリにアップしておき、必要な時はDockerデーモンがレジストリからイメージを自分のPCに取得)
4. 取得したイメージからコンテナを作成して起動
5. Hello from Docker!
と表示される
用語 | 説明 |
---|---|
Dockerイメージ | アプリケーションのコード、依存ライブラリ、実行環境(OSの一部)をまとめた実行用のテンプレート(コンテナを立ち上げる際に必須) |
Dockerレジストリ | イメージをオンライン上で保存しておく場所 |
Dockerコンテナ | イメージから生成された仮想サーバ |
コンテナとは
Linuxが持つ仮想化技術で実行環境を他のプロセスから隔離し、その中でアプリケーションを動作させる。
コンテナはLinuxの通常のプロセスとほぼ同じものだが、利用できる名前空間やリソースが他のプロセスやコンテナからは隔離され、それぞれ固有の設定を持てるようになっている。
そのためコンテナ内のアプリケーションから見ると、独立したコンピュータ上で動作しているように振る舞う。コンテナを管理するコストはプロセスを管理するコストとほとんど変わらず、仮想マシンを管理するコストと比較すると非常に軽い。
Linux
- LinuxはOSの一種
- OSはコンピュータを動かすための基本ソフトのこと
- WebサービスはLinux上で開発するのが主流
Dockerを使う時、OSはLinuxを使っているためLinux操作は必須
Docker使用時の注意点
1. 容量が減らない場合がある
- イメージやコンテナを削除しても、ファイルがゴミとして残ってしまいPCの容量が圧迫されることがある
- 気づかないうちにPCの容量が足りなくなってしまうことも
- その場合は下記コマンドを実行
- ファイルをゴミとして残さず、PCの容量を減らすことができる
$ docker system prune
2. 一つのOSしか使えない
- Docker以外の
VMwarePlayer
などは別のOSの仮想環境を作ることが可能- VMwarePlayerの例:WindowsのPCにMacOSの仮想環境を作り、Macでしか使えないアプリケーションを使うことが可能
- DockerはPCに元々入っているOSからコンテナという仮想環境を作る
- そのため、別のOSの仮想環境を作ることはできない
どのような環境が必要なのか、どんな利用をするのかをまず考えDockerを利用する
NextStep