ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Macにdockerをインストールする方法

MacにDockerをインストールした時の作業の流れをまとめます。
流れとしては、以下の通りです。

  • Dockerをインストール
  • Nginxコンテナ起動
  • Nginxコンテナ停止
  • Nginxコンテナ削除
  • Macのローカルにあるイメージ確認

Macの環境

今回構築するMacの環境は以下の通りです。

  • macOS 10.15.7 (19H2)
  • brewコマンド設定済み



作業内容

dockerインストール

Homebrewでdockerをインストールします。

$ brew install docker

実行結果は以下のような感じです。

==> Downloading https://homebrew.bintray.com/bottles/docker-19.03.13.catalina.bo
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/d71d12ae8813da2487122
######################################################################## 100.0%
==> Pouring docker-19.03.13.catalina.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/docker/19.03.13: 14 files, 71.7MB

DockerのGUIアプリケーションも以下のコマンドでインストールします。

$ brew cask install docker

実行結果は以下のような感じです。

==> Tapping homebrew/cask
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 484218 (delta 2), reused 2 (delta 0), pack-reused 484212
Receiving objects: 100% (484218/484218), 220.69 MiB | 4.42 MiB/s, done.
Resolving deltas: 100% (343609/343609), done.
Tapped 1 command and 3675 casks (3,793 files, 236.4MB).
==> Downloading https://desktop.docker.com/mac/stable/48506/Docker.dmg
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'docker'.
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
🍺  docker was successfully installed!

Docker 起動確認

dockerが起動しているか以下のコマンドで確認します。

$ docker --version
Docker version 19.03.13, build 4484c46d9d

GUI側でもクジラのマークが出て来ることを確認します。
クジラのマークをクリックして「Docker Desktop is runnning」となっていれば起動中です。
f:id:a1026302:20201010214834p:plain

hello-worldで動作確認

hello-worldコンテナイメージ取得して動作確認をしてみます。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete 
Digest: sha256:4cf9c47f86df71d48364001ede3a4fcd85ae80ce02ebad74156906caff5378bc
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 client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker 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 ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Nginxのimageの取得

DockerHubからNginxのコンテナイメージを取得できるか確認します。

$ docker pull nginx:latest
latest: Pulling from library/nginx
d121f8d1c412: Pull complete 
66a200539fd6: Pull complete 
e9738820db15: Pull complete 
d74ea5811e8a: Pull complete 
ffdacbba6928: Pull complete 
Digest: sha256:fc66cdef5ca33809823182c9c5d72ea86fd2cef7713cf3363e1a0b12a5d77500
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

Nginxコンテナ起動

Nginxコンテナを起動してみる。

$ docker run -d -p 8080:80 --name webserver nginx
242999e7671f1f5a02911073a76cb5945267d280c31f69e0bc8f1836c1fa219c



dockerプロセス確認

 docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
242999e7671f        nginx               "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        0.0.0.0:8080->80/tcp   webserver

Webブラウザでnginxの起動確認

f:id:a1026302:20201010212008p:plain

Nginxコンテナ停止

プロセス停止
$ docker stop webserver
webserver
プロセス停止確認

Nginxコンテナのプロセスを停止します。

$ docker ps -a   
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
08f297033d94        nginx               "/docker-entrypoint.…"   25 seconds ago      Exited (0) 2 seconds ago                       webserver

Nginxコンテナ削除

Nginxコンテナ削除
$ docker rm webserver  
webserver
Nginxコンテナ削除確認

Nginxのコンテナのプロセスが無事になくなったことを確認します。

$ docker ps -a       
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Dockerコンテナのイメージ確認

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              992e3b7be046        4 days ago          133MB
hello-world         latest              bf756fb1ae65        9 months ago        13.3kB
メモ

以下のコマンドでリポジトリの詳細が確認できます。

$ docker inspect [REPOSITORY]