質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

docker-composeでコンテナが起動しない

saken649
saken649

総合スコア60

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

2回答

0グッド

1クリップ

15834閲覧

投稿2018/01/21 14:20

編集2018/01/21 14:24

###前提・実現したいこと

お世話になっております。
Dockerを用いて、LAMP環境を作成しようとしております。
アプリ用コンテナ(Apache+PHP)とDB用コンテナの2つのコンテナを使用して構築したいです。

※AWSのEC2でAmazonLinuxを使用した際、というのを想定した環境を作りたいです。
ゆくゆくはScality S3ServerもくっつけてS3を想定した環境も使えるようにしたいですが、一旦まずはちゃんと動くLAMP環境を構築したく。

###発生している問題・エラーメッセージ

  • docker-composeを実行した際、アプリ用のコンテナが起動しない

=> Exited(0)となり、起動しない
=> DB用のコンテナは立ち上がっている

bash

1$ docker-compose up -d 2Creating gupsearch_db_1 ... done 3Creating gupsearch_db_1 ... 4Creating gupsearch_app_1 ... done 5$ 6$ docker ps 7CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 87c90c79911f2 mysql:latest "docker-entrypoint.s…" 3 seconds ago Up 5 seconds 3306/tcp gupsearch_db_1 9$ 10$ docker ps -a 11CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12ef1e2e449b32 gupsearch_app "/bin/sh -c 'service…" 14 seconds ago Exited (0) 15 seconds ago gupsearch_app_1 137c90c79911f2 mysql:latest "docker-entrypoint.s…" 14 seconds ago Up 16 seconds 3306/tcp gupsearch_db_1 14$ 15$ docker-compose logs | grep app_1 16Attaching to gupsearch_app_1, gupsearch_db_1 17app_1 | Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3 for ServerName 18app_1 | [ OK ] 19$

docker-compose logsの結果、特にエラーが出ているわけでもなさそうです。。

###該当のソースコード

  • docker-compose.yml

yaml

1version: '2' 2services: 3 db: 4 image: "mysql:latest" 5 environment: 6 MYSQL_ROOT_PASSWORD: root1234 7 MYSQL_DATABASE: test_db 8 MYSQL_USER: app 9 MYSQL_PASSWORD: app1234 10 app: 11 build: ./docker/app/ 12 ports: 13 - "80:80" 14 expose: 15 - "9000" 16 links: 17 - db 18 volumes: 19 - ./src:/var/www/html 20 stdin_open: true 21 tty: true

※9000番ポートはXDebug用に開けています。

  • ./docker/app/Dockerfile

Dockerfile

1FROM amazonlinux:latest 2RUN rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm \ 3 && yum -y update \ 4 && yum -y install httpd \ 5 mod_php71w \ 6 php71w-opcache \ 7 php71w-cli \ 8 php71w-common \ 9 php71w-devel \ 10 php71w-mbstring \ 11 php71w-mysql \ 12 php71w-pdo \ 13 php71w-pear \ 14 php71w-pecl-redis \ 15 php71w-pecl-xdebug \ 16 php71w-xml \ 17 && chkconfig httpd on 18ENTRYPOINT service httpd start

###試したこと

  • stdin_openttytrueにする

=> docker runでの-itに相当するものなので、これを付加 => 起動せず
cf. https://stackoverflow.com/questions/36249744/interactive-shell-using-docker-compose

###補足情報(言語/FW/ツール等のバージョンなど)

  • 実行時はdocker-compose build => docker-compose up -dとしています。
  • docker-composeせず、地道にdocker build => docker run -itとした時は、問題無くApacheのテスト画面が表示されました。

###実行環境

  • macOS 10.13.2 High Sierra
  • Docker CE For Mac
$ docker -v Docker version 17.12.0-ce, build c97c6d6
  • VirtualBoxは入っていません。

(特に入れるよう指示もされていませんし、Requirementsにも記載が無かったかと。)

今まで、WindowsのHyper-Vで動くDocker For Windowsでやっていて、こんなことは一度も起きたことがありませんでした。
stdin_openttyオプションは今回初めて使用したくらいです。

Macに移ってきて、さっそく躓いているので、Dockerに詳しい方の助言を頂けますと幸いです。
どうぞよろしくお願い致します。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

自己解決

自己解決しました。
結論から言うと、Dockerfileでchkconfigしたりservice httpd startしてるのがマズかったようで、それ無くしたら問題なく動きました。
じゃあdocker-compose upした時にApacheも同時に立ち上げるには。。?と思ったのですが、それはまた別の問題なので、一旦クローズとします。

投稿2018/01/23 13:22

編集2018/01/23 13:25
saken649

総合スコア60

mooey👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

Dockerfileを使用しているのであれば、docker-compose up -d --buildとする必要があるのではないでしょうか?

投稿2018/01/22 00:31

kenny_sayama

総合スコア1036

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

saken649

2018/01/22 02:36

kenny_sayama様 コメント有難うございます。 もちろんその認識でおりますので、 > 実行時はdocker-compose build => docker-compose up -dとしています。 とした次第です。 (buildしてからup -d) up時のオプションにビルドを指定するのと挙動が違ったら嫌なので、一度それは試してみたいと思います。
saken649

2018/01/23 13:24

kenny_sayama様 ご指南頂いた方法でも挙動は変わりませんでした。 別のところが問題で自己解決しました。 コメント頂き有難うございました。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです