Open2
Dockerのお勉強
Dockerとは
アプリケーションプログラムを実行するには
- アプリケーションを実行するには、そのアプリケーション以外にもOSやネットワークの設定、アプリケーションが使うデータファイルなど、実行ファイル以外のいろいろな設定やデータが必要。
- 同じアプリケーションでも、設定やデータが異なると、アプリケーションの動作が変わってしまう場合がある。
→つまり、アプリケーションと実行環境はセットで考え、管理運用するべき。
Dockerは、アプリケーションと実行環境のセットを「コンテナ」として管理できるソフトウェア(プラットフォーム)
- 「コンテナ」は1つのカタマリとなっていて、他のPC等のデバイスに移動(コピー)することができる。→ポータビリティ
- アプリケーションと実行環境の依存関係を1つのコンテナの中に隠蔽することで、複数のアプリが複数の環境・設定に競合してしまうことを防ぐことができる。→パーティショニング
- 1つのハードウェア上に複数のコンテナを実装・実行・連携させることで(既存の環境を1つのハードウェアに統合することで)、機能の統合化や、ハードウェアの最適化を行うことができる。
用語
- コンテナイメージ:稼働していない状態のコンテナ
Dockerコンテナイメージの操作
Dockerコンテナの状態
- Dockerコンテナイメージ
- まだ実行されていないコンテナのイメージファイル。テンプレート。
- Dockerコンテナイメージは、Docker Hubからダウンロードしたり、他者からファイルで受け取ったりして入手できる。
- DockerコンテナイメージをDockerにインストールするには、
- Docker Hubからインストールする場合はpullで、インストール
- ファイルからインストールする場合はloadで、インストール
- Dockerコンテナ(実行中)
- 実行中のコンテナ
- Dockerコンテナイメージから生成されたインスタンス
- Dockerコンテナ(休止中)
- 休止中のコンテナ。休止中であれば、コンテナをimport/exportできる。
- Dockerコンテナイメージから生成されたインスタンス
コマンド
docker pull
- Docker HubからDockerコンテナイメージをダウンロードし、Dockerにインストールするコマンド
docker rmi
- Dockerコンテナイメージを削除するコマンド
- 削除しようとしているDockerコンテナイメージから起動されたDockerコンテナ(起動中か休止中かにかかわらず)が、すべて破棄されている必要がある。
- (逆の言い方をすると、削除しようとしているDockerコンテナイメージから起動されたDockerコンテナ(起動中か休止中かにかかわらず)が存在する場合は、そのDockerコンテナイメージを削除することはできない。)
- つまり、すべてのインスタンスが破棄されている必要がある
docker images
- インストールされているDockerコンテナイメージを表示するコマンド
docker save
- インストールされているDockerコンテナイメージを、ファイルにセーブするコマンド
docker load
- ファイルからDockerへ、Dockerコンテナイメージをインストールするコマンド
docker run
- Dockerコンテナイメージを元に、Dockerコンテナの実行を行うコマンド
- Dockerコンテナイメージを元に、インスタンスを生成する
- アプリケーションに割り当てる入出力やネットワーク等を設定して実行させることができる
- 管理者権限が必要
ctrl + p , ctrl + q
- 実行中のDockerコンテナのコンソールから抜ける(ホストOSに戻る)
- Dockerコンテナは、実行中から休止中の状態に変わる
docker attach
- 休止中のDockerコンテナに接続させるコマンド
- Dockerコンテナは、休止中から実行中の状態に変わる
exit
- 実行中のDockerコンテナのコンソールからexitを行うと、インスタンスが破棄され、終了する
docker ps
- 実行中のDockerコンテナを表示するコマンド
- オプション -a を指定すると、休止中のDockerコンテナも表示される
docker export
- 休止中のDockerコンテナをファイルに出力するコマンド
docker import
- ファイルにexportされたDockerコンテナを、休止中のDockerコンテナに戻すコマンド
docker rm
- 休止中のDockerコンテナを削除するコマンド(インスタンスが破棄される)