1. ホーム
  2. ドッカー

ドッカーファーストエクスペリエンス for Mac

2022-03-03 05:42:20
<パス

mac dockerのインストール

現在のバージョン1.11.1

方法1:公式サイトからのインストール( https://docs.docker.com/mac/step_one/ )

Way 1は、公式サイトのインストール手順を翻訳したものです
Mac OS X ユーザーは、Docker Toolbox を使用してインストールする必要があります。Docker Toolbox には、以下のコンポーネントが含まれています。

  • Docker CLIクライアントでdockerを実行し、イメージとコンテナを作成する。
  • Docker Machineは、MacのターミナルからDocker Engineのコマンドを実行することができます。
  • Docker Composeは、docker-composeコマンドを実行します。
  • Kitematic dockerのグラフィカルコンポーネント
  • dockerコマンドライン環境用のクイックスタート用設定済みシェル
  • Oracle VM仮想マシン

docker engine デーモンはカーネルの linux 特性を利用しているので、os x 上で docker engine をネイティブに実行する必要はありません。docker machine コマンドを使用すると、マシンに小さな linux 仮想マシンを作成してアタッチし、あなたとあなたの mac 専用で docker engine を優位に立たせることができます。


最初のステップ

Macのバージョンを確認します。Dockerを実行するには、OS X 10.8 "Mountain Lion"以上である必要があります(View North Nativeをクリックするとバージョンが確認できます)。

ステップ2

Docker Toolboxをインストールします。

デフォルトのバイナリ・ライブラリは、/usr/local/binにインストールされ、すべてのユーザーにサービスを提供できます。この時点では、デフォルトの設定を一切変更しないでください。
最後にQuickStartでdockerの起動方法が2つ表示されますが、無視してcontinueをクリックしてください。

ステップ3

インストールを確認する
Launchpadを開き、Docker Quickstart Terminalを実行します。
その後、いくつかのデフォルト設定が自動的に行われます

docker run hello-world と入力します。
成功すると、ターミナルは次のように表示されます。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
535020c3e8ad: Pull complete
af340544ed62: Pull complete
Digest: sha256:a68868bfe696c00866942e8f5ca39e3e31b79c1e50feaee4ce5e28df2f051d5c
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps. 1:
The Docker Engine CLI client contacted the Docker Engine daemon.
The Docker Engine daemon pulled the "hello-world" image from the Docker Hub. 3.
The Docker Engine daemon created a new container from that image which runs the
   executable that produces the output you are currently reading.
The Docker Engine daemon streamed that output to the Docker Engine CLI client, which sent it
   to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com

For more examples and ideas, visit:
https://docs.docker.com/userguide/

この時点でインストールは成功しています。 https://docs.docker.com/faqs/troubleshoot/

mac dockerの実行

  • 仮想マシンの作成または起動
  • 仮想マシン内の環境を変換する
  • dockerによるコンテナの作成、ロード、管理

作成された仮想マシンは、設定が含まれているため再利用が可能で、Docker Quickstart Terminalやシェルで設定することができます

私たちはシェルを使用します
1. docker仮想マシンを作成します。

$ docker-machine create --driver virtualbox cy
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env default

cyという仮想マシンが作成され、~/.docker/machine/cyディレクトリに設定ディレクトリが作成されます。
createコマンドは1つだけで、start, stop, query, manageはdocker-machineで使用できます。
2. ドッカーVMのリストアップ

$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
cy * virtualbox Running tcp://...

方法2:brew install boot2docker

boot2dockerの設定

boot2docker init Initialization

(基本的に失敗します。インターネットの速度制限) 手動でダウンロードする
https://github.com/boot2docker/boot2docker/releases/download/ ... 最新バージョン

cd ~/.boot2docker
 (Copy the latest downloaded image to this directory)
cydeMacBook-Pro:.boot2docker cy$ boot2docker init

  WARNING: The 'boot2docker' command line interface (not to be confused with
  The 'boot2docker' command line interface (not to be confused with 'boot2docker' the operating system) is officially deprecated.

  Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

  Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

Generating public/private rsa key pair.
Your identification has been saved in /Users/cy/.ssh/id_boot2docker.
Your public key has been saved in /Users/cy/.ssh/id_boot2docker.pub.
The key fingerprint is:
SHA256:fYgo7+CSXZDE6w+na+RP+slEpYLJt3g9Lp7Z/2fIwFs [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| .             |o
| o
| . o .        |o .
| . o+ + o .     |.
+. +. +.S o .    + o .
| o+Bo o E.
| . =+** = .     |o o
| oo*%.o. o o |
| +B=O... . o | +B=O...o
+----[SHA256]-----+
Initialization of virtual machine "boot2docker-vm" complete.
Use `boot2docker up` to start it.


上記のコマンドは一度だけ実行すればよく、Dockerの実行に必要な仮想マシン環境を作成します。後で実行するときは、最初にDockerの仮想マシンを開く必要があります

ogon:~ cy$ boot2docker start

  WARNING: The 'boot2docker' command line interface (not to be confused with
  The 'boot2docker' command line interface (not to be confused with 'boot2docker' the operating system) is officially deprecated.

  Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

  Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

Waiting for VM and Docker daemon to start...
.......................... .oooooooooooooooo
Started.
Writing /Users/cy/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/cy/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/cy/.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/cy/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

Or run: `eval "$(boot2docker shellinit)"`

これはDocker仮想マシン環境を起動し、boot2docker shellinitコマンドを使用してDockerクライアント用の環境変数を表示するものです

$ boot2docker shellinit
Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/key.pem
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/mylxsw/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

出力された最後の3つのexportコマンドを実行することで、環境変数を手動で設定することができますし、次の方法で自動的に設定することもできます。

$ eval "$(boot2docker shellinit)"

この時点で、boot2dockerが実行され、dockerクライアント環境が作成されています。成功を確認するために、以下のコマンドを実行してください。

$ boot2docker status
running
$ docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa
OS/Arch (client): darwin/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 7c8fca2

boot2docker sshというコマンドを使用します。

dockerコマンドの実行時に以下のようなエラーが発生した場合、dial unix /var/run/docker.sock: no such file or directoryを実行し、環境変数をリセットする必要がありますeval "$(boot2docker shellinit)" を実行してください。

基本操作

docker hub から Nginx イメージをダウンロードする

docker@boot2docker:~$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
8b87079b7a06: Pull complete
a3ed95caeb02: Pull complete
31c7abf879e0: Pull complete
4ef177b369db: Pull complete
Digest: sha256:46a1b05e9ded54272e11b06e13727371a65e2ef8a87f9fb447c64e0607b90340
Status: Downloaded newer image for nginx:latest

DOCKER_HOST で Nginx コンテナを起動する

$ docker run --name some-nginx -p 8080:80 -d nginx

上記のコマンドでは、docker runコマンドでコンテナの実行を開始して終了し、-dオプションでdocker runコマンドの実行終了後にコンテナをバックグラウンドで実行することを指定しています。Pオプションは、コンテナのオープンポートをホストに公開し、アクセスできるようにするものです。
その他の参考文献 https: //hub.docker.com/_/nginx/
現在稼働しているコンテナを確認するには、docker psコマンドを使用します。

$ docker port some-nginx
80/tcp -> 0.0.0.0:8080

次に 127.0.0.1:8080 にアクセスすると、Nginx のウェルカムページが表示されるはずです。
Macでboot2dockerを使う場合、127.0.0.1にアクセスするとうまくいかないのは、ドッカーホストがboot2dockerの仮想マシンなので、仮想マシンのipを使ってboot2dockerのipにアクセスし、ipを取得してからアクセスしなければならないからです。

192.168.59.103:8080 にアクセスするだけです。

実行中のコンテナを停止または削除するには、次のコマンドを使用します。

$ docker stop some-nginx
$ docker rm some-nginx

boot2docker を停止するには、boot2docker stop コマンドを使用します。

コンテナにボリュームをマウントする

boot2dockerを起動すると、自動的にMac上の/Usersディレクトリを仮想マシン上で共有し、Dockerコンテナでは、そのディレクトリの中身をマウントすることができます。

docker@boot2docker:~$ ll /Users/
total 0
drwxr-xr-x 1 docker staff 374 Jan 7 12:31 Guest/
drwxrwxrwx 1 docker staff 204 Jan 13 12:13 Shared/
drwxr-xr-x 1 docker staff 1360 May 11 14:12 cy/

Mac の ~ ディレクトリに site/index.hml ファイルを以下のように作成します。

bogon:site cy$ ls
index.html
bogon:site cy$ pwd
/Users/cy/site
bogon:site cy$

ドッカーコンテナを起動する

docker@boot2docker:~$ docker run --name mysite -P -v /Users/cy/site:/usr/share/n
ginx/html -d nginx
66be7bb5b8d35c30ce910e05d30baf2ae431353a3249b82605e521203e3a4c73
docker@boot2docker:~$ docker port mysite
443/tcp -> 0.0.0.0:32769
80/tcp -> 0.0.0.0:32770


ここで、docker runの-vパラメータはマウントするボリュームを指定しますが、-v /host:/containerのような形式で-volumeを使用することも可能です。

アクセスする http://192.168.59.103:32770/ 出力されたindex.htmlの内容を見ることができます。

docker@boot2docker:~$ curl http://192.168.59.103:32770
hello world!