Docker? その2

Dockerを使用してみよう

Dockerインストールする

Dockerは、Linuxコンテナ技術であるため、macOSやwindowsにインストールする場合は、仮想マシンにインストールされます。Linuxのコンテナず、Windowsコンテナと呼ばれることもありますが、ここでは説明しません。


Linux

Linux上でDockerをインストールする方法は、自動インストールスクリプトを利用するのが最も簡単です。次のコマンドを入力すると、root権限を必要としてしばらくすると、インストールが完了します。

~ curl -s https://get.docker.com/ | sudo sh
[sudo] password for ubuntu:
apparmor is enabled in the kernel and apparmor utils were already installed
    ... ...
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

~

sudoなしで使用する

dockerは基本的にroot権限が必要です。root以外のユーザーがsudoなしで使用するには、ユーザーをdockerグループに追加します。

sudo usermod -aG docker $USER # 接続中のユーザーへ権限を与える
sudo usermod -aG docker your-user # your-user ユーザーへ権限与える

ユーザーがログインしている場合、再度ログインした後の権限が適用されます。


注意事項

  • Dockerを実行するためのkernelバージョンは3.10.x以上です。ubuntu 14.04以上を使用すると、大きな問題がなくkernelのバージョンが低い場合、正しく動作をしないか、問題が生じる可能性があります。なるべく最新のバージョンに更新してください。
  • ubuntuやcentosでない場合は、他の方法が必要です。他のLinuxをされる方は、こちらを見てください。

Docker for Mac / Docker for Windows

Dockerを、MacやWindowsのインストールするには、Docker for macまたはDocker for windowsをインストールします。ファイルをダウンロードしてインストールして再起動すると、ほとんど問題なく完了します。わずかのオプションがありますが、特に触れる部分はないが、一度見て適切に設定ください。(windowsは、共有ドライブを選択してください)

まるでネイティブにインストールされてたようだがDockerは、Linuxコンテナであるため、実際には、仮想マシンにインストールしました。ユーザーは、仮想マシンを使用してという感じが全くないんだけどそのような部分をとても気にして設計しました。例えば、ポートを接続するためにDockerコンテナの特定のポートを仮想マシンに接続して、再度macやwindowsのポートと接続する必要があります。ディレクトリを接続する場合、ディレクトリを仮想マシンと共有し、そのディレクトリを再コンテナに接続する必要があります。このような一段階さらに経なければなら部分を自然に処理できます。

docker for macはxhyveというmacOSで提供される仮想環境を利用してdocker for windowsは、Hyper-Vの機能を利用します。したがって、OSが最新バージョンでない場合は動作しない可能性があります。


仮想マシンにインストールする

あれこれ理由でDocker for ... を使用していない場合Docker machineを利用することがありますが、最初Dockerを勉強している場合には、Virtual BoxやVMwareのような仮想マシンにLinuxをインストールして、Linuxに接続してDockerを使用する方法をお勧めします。最初からDocker machineを使用すると、環境が少し混乱することができます。


インストールを確認する

インストールが完了したら、通常インストールされてDockerコマンドを入力して確認してみます。

~ docker version

Client:
Version:      1.12.6
API version:  1.24
Go version:   go1.6.4
Git commit:   78d1802
Built:        Wed Jan 11 00:23:16 2017
OS/Arch:      darwin/amd64

Server:
Version:      1.12.6
API version:  1.24
Go version:   go1.6.4
Git commit:   78d1802
Built:        Wed Jan 11 00:23:16 2017
OS/Arch:      linux/amd64

ClientとServerの情報が正常に出力された場合、インストールが完了です。

Server情報が出なくてError response from daemon: Bad response from Docker engineというメッセージが出力される場合は、通常docker daemonが正常に実行されていないかsudoを入力していない場合です。

もしかしたら、特異な部分を探しましたか?バージョン情報は、クライアントとサーバーに分かれています。Dockerは、単一の実行ファイルが、実際には、クライアントとサーバーの役割をそれぞれ行うことができます。Dockerコマンドを入力すると、DockerクライアントがDockerサーバーにコマンドを送信し、結果を受けて、ターミナルに出力してくれます。

デフォルト値がDockerサーバーのソケットを見ているので、ユーザーは意識せずに、まるですぐ命令を下すような感じを受けます。このような設計は、macやwindowsの端末からコマンドを入力したときに、仮想サーバーにインストールされてもカーが動作する理由です。

Additional Images




Comments

Add your comment

user-symbol

Stay in touch

Get Practical Tips For Business and Developers.

Learn about PieceX Community Needs for Source Code Projects.

Be the First to Know PieceX Newest Free Community Code Projects.