今回は、「Linux教科書LinuCレベル1」の以下の部分を勉強しましたので、その内容を著作権を侵さない範囲で紹介します
・1.2.4 dockerコマンドを使ったコンテナの操作
基本的には教科書を順番に勉強していきますが、文中に「参考」として別のページが示されている場合は、それも含めて勉強しています
また、勉強の前に必ず読むことにしている「試験直前チェックシート」の読み込み時間は10分34秒でした
内容を理解するために必要な用語などの解説
まずは勉強する範囲にある用語を調べましたので、そのすべてを紹介します
用語を調べてから教科書を読み直すと、書かれている内容がすんなりと理解することがきるようになります
みなさんはこの章を見ていただければ用語の意味は調べなくてもわかりますので時短になります
ぜひご活用ください
コード
プログラミング言語などの人間が理解・記述しやすい言語やデータ形式を使って書かれたテキストファイルのこと
ライブラリ
プログラムが共通して使用する関数やデータの集合体のこと
これらのライブラリを活用することで、開発者は同じコードを何度も書く必要がなくなり、効率的にソフトウェアを開発で、プログラムのサイズを小さく抑えることも可能
Dockerイメージ
Dockerのコンテナを作成するためのテンプレートのこと
Dockerイメージには、以下のものが含まれる
・必要なコード
・ライブラリ
・依存関係
Dockerイメージは読み取り専用で、内容の変更はできない
Dockerレジストリ
Dockerイメージの共有サービスのこと
Dockerイメージの保存・管理・配布を行う
Docker社の公式DockerレジストリがDocker HUB
コンテナ
Dockerイメージをもとに作られた、アプリケーションとその実行に必要な環境を1つのパッケージにまとめたもの
これにより、異なる環境でも同じ動作を保証できる
Dockerイメージを起動すると書き込み可能なファイルシステムが追加され、ネットワーク設定やリソース管理などの初期設定が適用されて、コンテナが生成される
Dockerイメージが無いとコンテナは作動しない
Dockerコンテナは ホストOSのカーネルを共有 するため、従来の仮想マシンよりも 軽量で高速 に動作する
必要に応じて一時的に実行したり、サーバーとして常時動作させたりすることも可能
dockerコマンドでの「イメージ名」
Dockerレジストリから取得する(取得した)Dockerイメージの名前のこと
Dockerイメージをダウンロードしてから以下のコマンドを実行して表示される情報の中の、REPOSITORYという項目に「イメージ名」が表示される
入力例)
# docker images
表示例)
REPOSITORY
docker.io/centos
/の左側は保管されていたリポジトリ(倉庫)を示し、「docker.io」はDocker Hubのこと
/の右側にあるのが「イメージ名」
dockerコマンドでの「タグ名」
Dockerイメージのバージョンのこと
Dockerコマンド内でタグ名を指定しないと、最新版(latest)を指定したことになる
docker imagesコマンドを実行して表示される情報のTAGの項目に「タグ名」が表示される
表示例)※centos7をダウンロードした場合
TAG
7
dockerコマンドでの「コンテナID」
動作しているコンテナを識別するIDで、英数字12桁で構成されている
dockerコマンドで「コンテナID」を使う場合は、IDの最初の3〜4文字だけに省略しても適用される
コンテナIDは、以下のコマンドを実行して表示される情報のCONTENR IDの項目に表示される
入力例)
# docker ps -a
表示例)
CONTAINER ID
85df3a903601
勉強した内容や感想など
Dockerの操作の大まかな流れ
Dockerのレジストリからコンテナで作業するまでの流れは以下のとおり
DockerレジストリからDockerイメージを取得(ダウンロード)する
Dockerイメージを実行(run)し、コンテナを生成する
生成したコンテナ内で作業する
dockerコマンドの使い方
dockerコマンドは、仮想マシンのところで勉強したコンテナで代表的なDockerを操作するコマンドです
このdockerコマンドの勉強をする前に、教科書の付録のCentOS7をVirtualBoxにインストールしましょう
なぜなら、付録のCentOS7ではDockerの操作ができるからです
通常、Dockerを使うにはDockerのサイトでアカウント登録したりしなくてはならないのですが、アカウント登録不要でDockerが操作できるのでおすすめです
インストール方法も教科書に記載されており、ディストリビューションを直接ダウンロードしてインストールするよりも簡単にインストールできる方式になっています
CentOS7がインストールできましたら、dockerコマンドを勉強していきましょう
教科書には、以下の操作に関するコマンドや操作方法が記載されています
・Dockerイメージの取得(ダウンロード)
・ダウンロードしたDockerイメージの確認
・Dockerイメージからコンテナを起動し、コマンドを実行する
・動作中のコンテナの確認(表示)
・すべてのコンテナ(終了しているものも含めて)の確認(表示)
・コンテナの削除
・起動したコンテナでシェルを実行して名前をつけ、疑似ターミナルを起動する
・プロセス(実行中のプログラム)の表示
・コンテナから一時的に抜ける(コンテナはバックグラウンドで起動中)
・一時的に抜けたコンテナに再接続する
・コンテナから抜けてコンテナを終了
・終了しているコンテナを再開する
・動作中のコンテナを終了させる
著作権の関係上、すべてのコマンドや操作方法はここでは紹介できないため、記載されていたコマンドの中でいちばん長文なコマンドを紹介します
そのコマンドの操作は、上記の操作の中の
「起動したコンテナでシェルを実行して名前をつけ、疑似ターミナルを起動する」
という操作のコマンドで、書式は以下のとおり
書式)
docker run -it –name コンテナ名 イメージ名[:タグ名] シェル
コンテナ名を「centosTest」とする場合のコマンドの入力は以下のようになります
入力例)
# docker run -it --name centosTest centos:7 /bin/bash
上記のコマンドをひとつずつ説明すると、
docker run | 新しいコンテナ(仮想的なLinux環境)を作って動かす |
-i | インタラクティブモードで標準入力を受け付ける (コンテナ内でコマンドを入力できるようにする) |
-t | 疑似 TTY(ターミナル)を割り当てる (ターミナルのような画面を作る) |
–name centosTest | コンテナに「centosTest」という名前をつける |
centos:7 | CentOS 7 の Docker イメージを使用する |
/bin/bash | コンテナ内で bash シェルを起動する (コマンド操作の画面を開く) |
となり、要約すると
「生成されたコンテナに「centosTest」というコンテナ名を付けて、そのコンテナ内で疑似ターミナルを開いて表示する」
ということになります
このコマンドを実行すると、[root@コンテナID /]とプロンプトが表示され、コンテナ内でコマンドを実行できる状態になります
表示例)※コンテナIDが85df3a903601だった場合
[root@85df3a903601 /]#
この後、以下のコマンドを実行すると、「centosTest」コンテナ内で実行中のプログラムが一覧表示されるので、実際にコンテナを操作できていることがわかります
書式)
# ps aux
例)
# ps aux
USER PID %CPU %MEM VSZ RSS TIY STAT START TIME COMMAND
root 1 0.0 0.1 11828 1904 ? Ss 13:13 0:00 /bin/bash
root 15 0.0 0.1 51732 1708 ? R+ 13:13 0:00 ps aux
上記の例は、実際に私が付録のCentOS7を使ってみた結果です
やはり、実際に操作してみると、本を読んだだけよりもわかることが多かったです
みなさんも、ぜひ付録のOSをインストールして活用しましょう