はじめに
どうもdaigoroです!
今回はDockerの使い方についてまとめていきます。
控え目にいって、Dockerって超便利です!!!
Dockerの何がうれしいのかについて簡単にまとめます。
正直Dockerを初めて知ったときはもはや仮想マシンいらねぇじゃんくらい思いましたw
ではDockerについて勉強していきましょう!
Dockerとは?
簡単にまとめます。
Dockerとは超簡単に他のLinuxOSのアプリケーションを動作する環境を提供するフレームワークのことです。これをコンテナと言います。
よく仮想マシンと混同されがちですが、明確な違いがあります。
仮想マシンはゲストOSを動作させるために、OSを構成するファイル群まるごと仮想環境とします。
これに対してDocker等のコンテナは、ゲストOSが動作する最低限のファイルのみを仮想環境としいます。
Linuxで共通のカーネルなどのプログラムはホストOSのものを借りちゃうんですね。
だからDockerは高速で動作することが可能です。
Dockerの使い方
本章ではDockerの取扱についてまとめます。
Dockerを使うためには、DockerレジストリからDocker imageをpullする必要があります。
なんかおもいっくそルー語みたいになっちゃいましたねw
DockerレジストリとDocker imageについて解説します。
Dockerが仮想環境(コンテナと言います)を構築するためにはDocker imageという大元のファイルが必要です。
Docker imageはコンテナが動作するためのファイルが沢山はいってる図書館だと思ってください。
DockerレジストリはこのDocker imageを我々ユーザに提供してくれるものです。
公式のDockerレジストリはDocker HUBというサイトなので、アクセスしてどんなものか見てみてくださいね。
では、Dockerの実際の使い方について解説します。
● Docker imageのダウンロード
まず最初にDockerはDocker imageがないとコンテナを生成できないので、Dockerレジストリからimageファイルを貰う必要があります。
下記のコマンドで任意のOSのimageファイルをダウンロードすることができます。
docker pull kalilinux/kali-rolling
上記の例は、ハッカー御用達のKali LinuxのDocker imageをダウンロードしています。
コンテナ名(今回であれば「kalilinux/kali-rolling」)を知るにはDocker HUBのサイトにアクセスするなどして確認してください。
同一のDocker imageをダウンロードしたいときは、前述のコマンドの語尾に[:tag名]をつけることでタグ付けして管理することもできます。
docker pull kalilinux/kali-rolling:1
docker pull kalilinux/kali-rolling:2
● コンテナの起動
pullしたDockerイメージを使ってコンテナを起動し、コマンドを実行してみます。
[root@04-ED-33-62-CB-EA //]# docker run kalilinux/kali-rolling ls //
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
上記の例は、DockerからKali Linuxのコンテナを生成し、ルートディレクトリ//にあるファイル/ディレクトリの一覧を表示しています。
コンテナのシェルを起動する場合は下記の書式でコマンドを実行します。
書式:docker run -it --name コンテナ名 image名 シェル
例 :[root@04-ED-33-62-CB-EA //]# docker run -it --name Kalitest kalilinux/kali-rolling /bin/bash
コンテナ名は任意のネーミングでOKです。
コンテナのシェルから抜けてホストOSにもどるには、Ctrl + P +Qを入力します
コンテナのシェルを操作中にコンテナを終了する場はexitを入力してください。
ホストOSからコンテナを終了させたい場合は下記のコマンドを入力してください。
docker stop コンテナ名 又はコンテナID
コンテナIDをどうやって確認すればいいかわからない?そういう時は次のコマンドを試してみて下さい。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d66764cbca8 kalilinux/kali-rolling "/bin/bash" About a minute ago Up About a minute Kalitest
現在動作してないコンテナについて調べたいときはオプションで-aを付けて下さい。
docker ps -a
おわりに
本記事ではDockerの概要と各種コマンドの使い方について解説しました。
Dockerは初心者でも比較的簡単に扱えるコンテンツなので、色んな環境でプログラミングを試したいとき等オススメです。