2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker Toolbox を使って macOS上に Docker 環境を構築する

Last updated at Posted at 2017-12-30

追記(2018/10/25)

この記事で紹介している Docker Toolbox ですが、Legacy desktop solution となっています。Docker for Mac の利用を推奨します。
https://docs.docker.com/toolbox/

下記の内容は古いですが、一応残しておきます。

はじめに

Docker Toolbox を使って macOS 上に Docker 環境を構築する手順を紹介します。とはいえ、公式ページがよくまとまっているため、正確な情報はこちらをご参照ください。

[Install Docker Toolbox on macOS] (https://docs.docker.com/toolbox/toolbox_install_mac/)

Docker Toolbox で入手できるもの。できること。

まずは Docker Toolbox とは何? というところから。以下のコンポーネントから構成されています。

入手できるもの できること
Docker CLI client コンテナに関する各種操作(コンテナ作成、起動、ログインなど)
Docker Machine Docker Engine が稼働する VM を作成したり、管理するツール
Docker Compose 複数コンテナを使用するDockerアプリを定義、実行するツール
Kitematic GUI で docker を使用するためのツール
Docker QuickStart shell macOS上のターミナルから VM 上の Docker Engine を操作するための環境整備
Oracle VM VirtualBox VM作成用

公式ページには、これらコンポーネントについて、以下の説明が(英語で)されています。

どうして VM を立てるかというと、Docker Engine のデーモンが Linux の特定カーネルの機能を使うため。よって、macOS からネイティブに Docker Engine を起動できず、代わりに docker-machine コマンドを使って小さな VM を作成します。この VM を Docker Engine として使用します。

Docker Toolbox のインストール

[公式URL] (https://docs.docker.com/toolbox/toolbox_install_mac/) からインストーラを入手します。「DockerToolbox.pkg」がインストーラです。インストーラを起動し、画面の指示に従って進めていきます。

Docker

Launchpad などから「Docker Quick Start」アイコンをクリックします。

するとターミナルが起動し、Docker を使うための環境を整えてくれます。

  • Docker Engine を動作させる VM を作成
  • この VM 上の Docker Engine を使用するように、ターミナルの環境変数をセット

しばらく待つと、次の画面が表示されます。これで、Docker を使用できるようになりました!






                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/


docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

Hello World

お試し実行用に Hello World コンテナを起動します。

$ docker run hello-world

Docker QuickStart Shell が何をやってくれているか

「default」という名の VM を作成してくれます。Docker Engine が動作する VM です。


$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.12.0-ce 

VM の正体

VM 「default」にログインしてみましょう。


$ docker-machine ssh default
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 17.12.0-ce, build HEAD : 378b049 - Wed Dec 27 23:39:20 UTC 2017
Docker version 17.12.0-ce, build c97c6d6

boo2docker とは、Docker コンテナの起動に特化した軽量 Linux Distribution の事です。
[参考: boot2docker] (http://boot2docker.io/)

OS の情報は下記の通りでした。

$ cat /etc/os-release 
NAME=Boot2Docker
VERSION=17.12.0-ce
ID=boot2docker
ID_LIKE=tcl
VERSION_ID=17.12.0-ce
PRETTY_NAME="Boot2Docker 17.12.0-ce (TCL 8.2.1); HEAD : 378b049 - Wed Dec 27 23:39:20 UTC 2017"
ANSI_COLOR="1;34"
HOME_URL="http://boot2docker.io"
SUPPORT_URL="https://github.com/boot2docker/boot2docker"
BUG_REPORT_URL="https://github.com/boot2docker/boot2docker/issues"

プロセスを確認すると以下のように tcp 2376/tcp ポートで待ち受けるデーモンが起動しています。TLS が有効になっています。

root      3043     1  0 01:42 ?        Sl     0:04 /usr/local/bin/dockerd -D ¥
    -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2376 ¥
    --label provider=virtualbox ¥
    --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem ¥
    --tlscert=/var/lib/boot2docker/server.pem ¥
    --tlskey=/var/lib/boot2docker/server-key.pem -s aufs

[参考: dockerd] (https://docs.docker.com/engine/reference/commandline/dockerd/)

macOS ホスト上の環境変数

macOS ホスト上のターミナルでは、下記の通り環境変数がセットされています。

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/user/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval $(docker-machine env default)

この変数がセットされていることで、VM 上の dockerd に接続して、docker に関する諸々の操作ができるようになっているわけです。

参考URL

[公式: Install Docker Toolbox on macOS] (https://docs.docker.com/toolbox/toolbox_install_mac)
[Mac OS X へのDockerのインストール方法] (https://qiita.com/hshimo/items/e24b1fbfbf775ec7c941)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?