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コンテナを削除するコマンド(インスタンスが破棄される)