Help us understand the problem. What is going on with this article?

DockerをMacにインストールする(更新: 2019/7/13)

はじめに :whale:

MacにDockerをインストールする方法についてまとめた記事です。
ザクザク行けば10分程度でnginxの起動までいけると思います。
この記事の目的はDockerに慣れることです。

よって、対象者は

  • Dockerやってみたい!ってずっと思ってる :cry:
  • でも、よくわからない。Dockerこわい :ghost:

というDocker初心者向けとなります。

バージョンアップなどにより、手順が異なる可能性がありますのでご了承下さい。

また、@y_tsubukuが開発するyaritori - メール共有システムも、良ければご覧ください :tada:

追記) エンジニアの募集もはじめました!!

Docker for Macをインストール :package:

公式サイトからDockerのアカウントを作ってログインし、DockerHubからダウンロードしてインストールします。
https://hub.docker.com/editions/community/docker-ce-desktop-mac

 2019-07-09 at 22.04.14.png

 2019-07-09 at 22.04.02.png

 2019-07-09 at 22.02.32.png

正しくインストールされているか確認する

$docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:00:50 2017
 OS/Arch:      linux/amd64
 Experimental: true

nginxを起動してみる :rocket:

docker run -d -p 80:80 --name {コンテナ名} nginx
を実行すると、nginxを80番ポートで起動してくれる。
docker imageがローカルで見つからない場合は、Docker Hubからpullしてくれる。賢い。

試しに、コンテナ名は webserverとしましょう。

$docker run -d -p 80:80 --name webserver nginx
Unable to find image 'nginx:latest' locally

latest: Pulling from library/nginx
ff3d52d8f55f: Pull complete 
b05436c68d6a: Pull complete 
961dd3f5d836: Pull complete 
Digest: sha256:12d30ce421ad530494d588f87b2328ddc3cae666e77ea1ae5ac3a6661e52cde6
Status: Downloaded newer image for nginx:latest
edb359e954413f077b515f2fca388d2292294bd170ff7d2d3b0ec74f8716cd1a

nginxが立ち上がっているかを確認するため、Dockerのプロセスをチェックする

$docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
edb359e95441        nginx               "nginx -g 'daemon ..."   9 minutes ago       Up 9 minutes        0.0.0.0:80->80/tcp   webserver

localhostにアクセスしてブラウザで確認する

Welcome_to_nginx_.png

ちゃんと動いてる!

止めるときは docker container stop {コンテナ名}で止めることができる。
もう一回起動したい場合は、$docker container start {コンテナ名}でOK!

$docker container stop webserver
webserver

$docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

$docker container start webserver
webserver

ちなみに、 docker container ls -aだと起動していない状態のコンテナも表示することができる。

$docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
edb359e95441        nginx               "nginx -g 'daemon ..."   45 minutes ago      Exited (0) 17 minutes ago                       webserver

nginxを削除してみる :x:

作ったコンテナやイメージを削除したいときはきっとくるはずなので、先に削除を試してみる。

コンテナの削除

コンテナを削除したい時は、docker container rm {コンテナ名}を使用する。

$docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
edb359e95441        nginx               "nginx -g 'daemon ..."   48 minutes ago      Exited (0) 20 minutes ago                       webserver

$docker container rm webserver
webserver

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

イメージの削除

イメージを削除したい時は、docker image rm {IDもしくは image name}で削除できる

$docker image rm nginx
Untagged: nginx:latest
Untagged: nginx@sha256:12d30ce421ad530494d588f87b2328ddc3cae666e77ea1ae5ac3a6661e52cde6
Deleted: sha256:3448f27c273f3122fc554d7acf33796efb4df2ad9886efc092c3bfe716e897b7
Deleted: sha256:8c9de914a431b97e5df6e45ca5032d28d90e01e56e4824edd654e1311f0b9fae
Deleted: sha256:28f6824ebf777f77931a2e27dadc3d092a62f78b5d28851542135411981b2f99
Deleted: sha256:8781ec54ba04ce83ebcdb5d0bf0b2bb643e1234a1c6c8bec65e8d4b20e58a90d

docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

終わりに

Dockerに少し慣れることはできましたでしょうか。
次はDocker Hubから別のイメージをpullしたり、コンテナを複数立ち上げて、コンテナ間で通信できるようにしてみましょう。(記事を書き次第、リンクさせる予定です。)
↓書きました :tada:
DockerでPHP7.0×Apacheの環境を構築する

kurkuru
Go/React/Ruby/Java/PHP/React Native/IntelliJ IDEA メッセージは twitterのDMから承っております。 https://twitter.com/y_tsubuku
https://ytsubuku.com
kojin-dev
kojin-devは個人開発者による、各々知見を共有するためのコミュニティです。
https://kojin-dev.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away