LoginSignup
1
3

More than 3 years have passed since last update.

DockerをMacに入れて、Docker入門を果たす

Posted at

DockerをMacに入れて、Docker入門を果たす

Dockerコマンドが使える環境をMacで構築します。ついでに基本的な操作も確認します。結構あっという間にできます。

macOS用のパッケージマネージャーであるHomebrewがインストールされている前提で進めます。インストールされていない方は、macOSにHomebrewをインストールしてから以降を進めてください。

docker-for-macをインストール

まず、docker-for-macというアプリケーションが必要です。こいつはMac上の普通のアプリケーションなのでブラウザから直接落として解凍しても良いのですが、せっかくなのでhomebrewのcaskを使用してインストールします。

homebrew-caskは非常に便利な代物なので、知らない方はぜひこの機会に使ってみてください。

brew cask install docker
open /Applications/Docker.app

以上が完了したら、公式のGet startedをやってみましょう。

以下でも、軽くその内容をさらいます。やる際ですが、dockerコマンドチートシートを見つつ、それが何を意味するのかを調べながらやると、大体雰囲気が理解できます。dockerコマンドを使用する際は、オプションとして何が指定されているかがすごく関わってくるので、そのオプションが何を意味するのかきちっと調べておいたほうがいいです。

初めてのDocker

DockerでHello World

docker run hello-world

docker image ls

docker run hogeで、"hello world"イメージを引っ張ってきて、それをコンテナとして起動しました。docker image lsとすることで、ローカルにインストールしたイメージ一覧が確認できます。この記事を書いている途中に知ったのですが、docker image lsdocker images別物であることに少し注意します。

nginxサーバーを立ち上げてみる

docker run --detach --publish=80:80 --name=webserver nginx
# http://localhost/ にアクセスすると、nginxのwelcome pageが見える
# `docker run -d -p 80:80 --name webserver nginx`でも同じ意味

docker ps
# プロセスが動いているのが確認できる

docker stop webserver
# これで、NAMESがwebserverのプロセスを終了させることができる

docker ps
# 何もプロセスが動いていないのが確認できる

--detachオプションを指定することで、バックグラウンドで実行させることが可能です。また、-p 80:80はポート番号を表しており、"外部からアクセスされるポート番号:コンテナ側のポート番号"となっています。つまり、-p 3000:80であれば、ホストしているPC(つまりあなたのMac)上の3000番ポートにアクセスすると、nginxコンテナ上の80番にフォワーディングされる(URLでいうリダイレクトのようなもの?)ということです。

動いているコンテナをストップさせるにはそのまま、docker stop

コンテナを削除してみる

docker ps -a
# プロセスが終了しているコンテナも含めて確認できる

docker rm webserver
# コンテナを削除する

docker psでは動いているコンテナしか確認できませんが、docker ps -aとすることでプロセスが終了しているコンテナも含めて確認することができます。docker rm CONTAINER_NAMEでコンテナを削除できます。

イメージを削除してみる

docker image ls
# ローカルにインストールしたイメージ一覧が確認できる

docker image rm nginx
# nginxのイメージをローカルから削除する

docker image rm hello-world
# エラーが出て削除できない。これは、コンテナがこのイメージを使用しているために起こる。

docker ps -a
# hello-worldイメージを使用しているコンテナのNAMESを確認

docker rm adoring_minsky
# コンテナを削除。NAMES(ここでいう"adoring_minsky")は個々で違うので注意

docker image rm hello-world
# 今度は正しく削除できる。`docker rmi hello-world`でも同じ意味になる

イメージがコンテナで使用されている場合には削除できません。docker ps -aで動いていないコンテナを確認して、その削除のあとにイメージを削除する必要があります。

また、使ってないイメージやコンテナの削除には、pruneコマンドでやるのが楽なようです。最初のうちはコンテナ作って壊してを多く経験するのが楽しいので、そのあとの掃除はこのpruneコマンドで済ませましょう。

docker daemonをログイン時に自動で立ち上げるのをやめる

コンソールにtop -o memと入力してPCのプロセスを確認するとわかりますが、docker for macは結構メモリを食うので、そこまで使用しない人は自動で起動はさせない方が良いです。

自分はフロントエンドエンジニアで、現在の状況ではそこまで頻繁には触らないため、自動で立ち上げるのをやめました。docker-for-macのpreferencesより行えます。

1
3
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
1
3