5

docker コンテナーをセットアップするために使用している fig.yml ファイルがあります。./fig up と入力してこれを実行すると、次のように出力されます。

Recreating docker_memcache_1...
Recreating docker_sphinx_1...
Recreating docker_percona_1...
Recreating docker_php_1...
Recreating docker_sa_1...
Attaching to docker_memcache_1, docker_percona_1, docker_php_1

したがって、それが完了すると、すべてが稼働します。私の問題は、何らかの理由で、セットアップした nginx コンテナーにアタッチされていないことです。docker ps コマンドの出力は次のとおりです。

9bb0c647338e        php:latest          "/usr/sbin/php-fpm -   2 minutes ago       Up 2 minutes        9000/tcp            docker_php_1        
9f74789bdb15        percona:latest      "mysqld"               3 minutes ago       Up 3 minutes                            docker_percona_1    
b848d3442bdf        memcached:latest    "/bin/sh -c memcache   3 minutes ago       Up 3 minutes        11211/tcp           docker_memcache_1  

したがって、memcache イメージ、php イメージ、および percona イメージはすべて問題ありませんが、あるべき nginx docker イメージはありません。

以下は、基本的にすべてを起動するファイルである fig.yml ファイルをセットアップする方法です。何が起こっているのかについて何か考えがある人はいますか? デーモンをオフに設定しているため、自動的に終了しないことに注意してください。

fig.yml ファイルはこちら:

sa:
  image: nginx
  links:
    - php:php-fpm
  volumes:
    - ./svn (path here)
    - ./cert:/(path here)
  ports:
    - "8080:80"
memcache:
  image: memcached
  hostname: memcached.docker
sphinx:
  image: sphinx
  hostname: sphinx.docker
percona:
  image: percona
  hostname: percona.docker
php:
  image: php
  hostname: php.docker
  links:  
    - memcache:memcache.docker
    - sphinx:sphinx.docker
    - percona:percona.docker

また、何か不足している場合に備えて、nginx Dockerfile を含めることも考えました。

Nginx Dockerfile

From centos:6.6
RUN yum -y install http://mirror.us.leaseweb.net/epel/6/i386/epel-release-6-8.noarch.rpm
RUN yum -y install nginx && rm /etc/nginx/conf.d/*
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 80 443
COPY sa.conf /etc/nginx/conf.d/
COPY base /etc/nginx/base/
4

1 に答える 1

3

実行docker ps -a中のコンテナーだけでなく、すべてのコンテナーを表示するには、実行します。docker_sa_1停止中のコンテナとして表示されます。これは、起動直後にクラッシュしたためです。残念ながら、これが発生した場合、fig はログを表示しません (またはスタックを自動的にシャットダウンします)。

実行docker logs docker_sa_1して出力を確認します。うまくいけば、素敵な Nginx エラー メッセージが表示されます。何も見つからない場合は、saからエントリを削除fig.ymlし、 afig upを実行して他のすべてを開始してから実行します

docker run -it --link=docker_php_1:php-fpm -v $PWD/svn:(?) -v $PWD/cert:(?) -p 8080:80 nginx

(省略?したパス ビットを s に入力する必要があります) これは Fig が行っていることと同じですが、後でアタッチするのではなく、アタッチされた tty でコンテナーをインタラクティブに開始します。それでもエラー メッセージが表示されない場合は、実行します。

docker run -it --link=docker_php_1:php-fpm -v $PWD/svn:(?) -v $PWD/cert:(?) -p 8080:80 nginx /bin/bash

コンテナーでライブ シェルを取得します。次に、自分で Nginx を起動してみて、クラッシュした後にログ ファイルを探します。

于 2015-02-28T21:32:03.910 に答える