3
0

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.

MacでDocker環境構築時、Docker-for-MacとDockerHub登録が最小構成ぽいよ

Last updated at Posted at 2018-07-10

はじめに

Qiita初投稿です。
Dockerのプロジェクトに初めて入って、環境構築に4時間かけて、ハマったところがあったので、MacOSX での一番シンプルな環境構築の検証結果の自分用メモです。
Vagrantの環境でのプロジェクトは経験していたのですが、プロセスやら、localhostの設定やら、VitualBox等での、VagrantとDockerの間で競合関係のエラーが出る 事を今回知りました。
基本的には、環境構築の時に使った、コマンドとDockerの公式ドキュメントの内容 ですので、DockerFile、docker-compose.yml、docker-entrypoint.shの書き方については触れません。

環境情報

環境 version
Docker-for-Mac 18.03.1-ce-mac65
スクリーンショット 2018-07-10 16.31.57.png

docker、docker-compose、Docker-for-Mac、Docker Toolbox、docker-machineとあるけれど、どれを使えばいいの?

[Docker-for-Mac vs Docker Toolbox]
(https://docs.docker.com/docker-for-mac/install/#what-to-know-before-you-install) という選択になるのが一般的だと思います。
上の公式ドキュメントの記事によると、Docker-for-Macは、docker-machineに影響を与えない。Docker-for-Mac と Docker Toolboxは共存できる。とありますが、共存は、細かい設定が必要になります。
docker-machineは、VirtualBoxに、仮想マシンを作るので、VagrantとDockerの仮想マシンがVirtualBox内に混在すると競合します(hostsをいじれば対応できるらしいが、プロセスキルや、サーバー停止などの手間が必要)。しかし、Docker-for-MacとDocker Hub登録だけの構成だとVirtualBoxに仮想マシンを作らないので、その分シンプルです。僕は、今回これでサイトを表示させるところまで行きました。

Dockerのプロセスを超綺麗にするコマンド

$ docker kill $(docker ps -aq)
$ docker rm $(docker ps -aq)
$ docker rmi $(docker images -f "dangling=true" -q)

$ docker ps
$ docker ps -a
$ docker images
$ docker-compose ps

Dockerで80番へポートマッピングした際に起きたエラーについて(参考リンク)

よって、今回は採用しませんでした。社内でも、今までのプロジェクトの全Docker化なども、構想としてあって、VagrantのプロジェクトのGitHubからForkして元プロジェクトに影響のないようにDocker化しようと考えています。

環境構築

Dockerで、環境が出来上がっているものを自分のローカル環境に落とすだけなら

$ docker-compose build
$ docker-compose up

で、済むはずが、うまく行かずにハマったのは、

$ docker ps 

した時に確認できたのですが、同じローカルホストのポート解放をDocker Hubのサンプルコードで使用していたからです。
それで、上記のDockerで80番へポートマッピングした際に起きたエラーについて(参考リンク)の記事のように
httpdの80番ポートを止めて、古いもう使わないimageは削除して、また使用したいときは、その都度イメージ作成、コンテナ作成をすれば良いと判断しました。

docker-compose コマンドまとめ から引用

docker-compose.ymlに書かれているサービスを参考にコンテナを停止し、そのコンテナとネットワークを削除します。オプションで--rmi allをつけることでイメージも削除してくれます。

$ docker-compose down --rmi all

上記のコマンドをターミナルで実行してからbuild,upすると
立ち上げるコンテナのサーバーが、error(address already in use)にならず、rails、sql共に
サーバーが立ち上がり、doneになります。

docker-compose upして、サーバーがdoneになっていれば、ssh接続などせずとも、そのまま
ローカル環境がlocalhostで立ち上がりました。

参考サイト

[Docker-for-Mac vs Docker Toolbox]
(https://docs.docker.com/docker-for-mac/install/#what-to-know-before-you-install)
Dockerで80番へポートマッピングした際に起きたエラーについて
docker-compose コマンドまとめ
オープンソースのかんばん式管理ツールを3つほど試してみた

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?