2016-04-02 42 views
0

私はSymfony開発用のDockerコンテナで作業しています。私はWindows用のDocker Toolsetを使用しています。ここに私のDockerfileです:Dockerコンテナが正しく動作していません

FROM  centos:6.7 
MAINTAINER Reynier Perez <[email protected]> 

# basic env fix 
ENV    TERM xterm 

# Install REMI and EPEL repos 
RUN  yum update -y 
RUN  yum install -y mc wget yum-utils htop nano curl git 
RUN  wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm \ 
     && wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm \ 
     && rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpm 

RUN  yum-config-manager --enable remi-php70 
RUN  yum install -y php \ 
         php-common \ 
         php-cli \ 
         php-gd \ 
         php-intl \ 
         php-mbstring \ 
         php-mcrypt \ 
         php-opcache \ 
         php-pdo \ 
         php-pear \ 
         php-pecl-apcu \ 
         php-imagick \ 
         php-pecl-xdebug \ 
         php-xml \ 
         php-mysqlnd \ 
         php-soap \ 
         php-pdo-dblib 

RUN   curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer 
RUN   curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony && chmod a+x /usr/local/bin/symfony 

# Configure Services 
# Create a copy of default files and remove them 
# Apache 
RUN   cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.default 
RUN   rm -f /etc/httpd/conf/httpd.conf 
ADD   httpd.conf /etc/httpd/conf/ 
# Add default VirtualHost 
ADD   vhost.conf /etc/httpd/conf.d/ 
#PHP 
RUN   cp /etc/php.ini /etc/php.ini.default 
RUN   rm -f /etc/php.ini 
ADD   php.ini /etc/ 
# Add PHP info default script 
ADD   info.php /var/www/html 
# Setup permissions 
RUN   chown -R apache:root /var/www/html && \ 
      find /var/www/html -type d -print0 | xargs -0 chmod 2775 && \ 
      find /var/www/html -type f -print0 | xargs -0 chmod 0664 

# Mount Volumes 
VOLUME  /var/www/html 
WORKDIR  /var/www/html 

EXPOSE  80 

CMD   service httpd restart 

私が使用してマシンを構築する場合:

docker build --tag=symfony-dev . 

私はこのメッセージを得た:

Successfully built c7bc46e1f84c 
SECURITY WARNING: You are building a 
Docker image from Windows against a non-Windows Docker host. All files 
and directories added to build context will have '-rwxr-xr-x' 
permissions. It is recommended to double check and reset permissions 
for sensitive files and directories. 

次のステップは使用してコンテナを実行することです:

docker run symfony-dev 

次に試してみるそのコンテナのための情報:

docker inspect symfony-dev 

そして、私はこのようなJSONを得た:

[ 
    { 
     "Id": "sha256:c7bc46e1f84c6d1a543c515d134184486dcb0e3e81c81f269ff1bb10791a3c9e", 
     "RepoTags": [ 
      "symfony-dev:latest" 
     ], 
     "RepoDigests": [], 
     "Parent": "sha256:db8021c4307e547ae7fee4afd3b964e72fde6422dbb8a5292b4bf441beb7d0b4", 
     "Comment": "", 
     "Created": "2016-04-02T02:16:45.891399606Z", 
     "Container": "e02be1ee3e12ef79bff0c0bbb7b7751f7368d5c06872df37a58439d21d69d57f", 
     "ContainerConfig": { 
      "Hostname": "72ba20be3774", 
      "Domainname": "", 
      "User": "", 
      "AttachStdin": false, 
      "AttachStdout": false, 
      "AttachStderr": false, 
      "ExposedPorts": { 
       "80/tcp": {} 
      }, 
      "Tty": false, 
      "OpenStdin": false, 
      "StdinOnce": false, 
      "Env": [ 
       "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", 
       "TERM=xterm" 
      ], 
      "Cmd": [ 
       "/bin/sh", 
       "-c", 
       "#(nop) CMD [\"/bin/sh\" \"-c\" \"service httpd restart\"]" 
      ], 
      "ArgsEscaped": true, 
      "Image": "sha256:db8021c4307e547ae7fee4afd3b964e72fde6422dbb8a5292b4bf441beb7d0b4", 
      "Volumes": { 
       "/var/www/html": {} 
      }, 
      "WorkingDir": "/var/www/html", 
      "Entrypoint": null, 
      "OnBuild": [], 
      "Labels": { 
       "License": "GPLv2", 
       "Vendor": "CentOS" 
      } 
     }, 
     "DockerVersion": "1.10.3", 
     "Author": "Reynier Perez \[email protected]\u003e", 
     "Config": { 
      "Hostname": "72ba20be3774", 
      "Domainname": "", 
      "User": "", 
      "AttachStdin": false, 
      "AttachStdout": false, 
      "AttachStderr": false, 
      "ExposedPorts": { 
       "80/tcp": {} 
      }, 
      "Tty": false, 
      "OpenStdin": false, 
      "StdinOnce": false, 
      "Env": [ 
       "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", 
       "TERM=xterm" 
      ], 
      "Cmd": [ 
       "/bin/sh", 
       "-c", 
       "service httpd restart" 
      ], 
      "ArgsEscaped": true, 
      "Image": "sha256:db8021c4307e547ae7fee4afd3b964e72fde6422dbb8a5292b4bf441beb7d0b4", 
      "Volumes": { 
       "/var/www/html": {} 
      }, 
      "WorkingDir": "/var/www/html", 
      "Entrypoint": null, 
      "OnBuild": [], 
      "Labels": { 
       "License": "GPLv2", 
       "Vendor": "CentOS" 
      } 
     }, 
     "Architecture": "amd64", 
     "Os": "linux", 
     "Size": 756378663, 
     "VirtualSize": 756378663, 
     "GraphDriver": { 
      "Name": "aufs", 
      "Data": null 
     } 
    } 
] 

しかし、ここでは、IPアドレスのですか?私はそのコンテナ上のApacheにどのように到達しますか?次のようにコマンドpsを実行すると:

docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 

実行中のコンテナはありませんでしたか?私はここに何かを逃している?

    :私は、Apacheの公式Dockerfileのように httpd_foregroundを追加していると私は docker psを実行しますが、私はまだいくつかの問題を抱えていた場合、今、私は、コンテナの実行を見たcricket_007提案@続き

    UPDATE

  • 私がdocker run -it --name=symfony symfony-dev bashとしてbashに入るためにコンテナを実行すると、私はこのエラーを受け取ります:new state of nil is invalid私は修正する方法がわかりません。私は、IPアドレスとして172.17.0.2を見ていますが、私は、Apacheの意味として、それに到達することはできませんよ、他の側で
  • http://172.17.0.2/info.php私はいくつかの不審に関するfirewalldおよび/またはSELinuxを持っていますが、私はわからない

この2つの問題についていくつかのアドバイスがありますか?

答えて

1

コマンドservice httpd restartがフォアグラウンドプロセスを開いたままにしていないため、コンテナが起動した後にコンテナが枯渇しています。

tail -fたとえば、CMDとしてApacheログファイルを作成し、現在のようにサーバーを再起動するためにRUNを使用できます。

+0

あなたは 'RUN tailf/etc/http/logs/XXXXXX.log'を追加することを意味しますか? – ReynierPM

+0

実行しない、しない。 CMDとして –

+0

実際には、公式のApacheイメージは 'exec httpd -DFOREGROUND'を使用します。ここにはCMDで使用されるスクリプトがあります。https://github.com/docker-library/httpd/blob/bc72e42914f671e725d85a01ff037ce87c827f46/2.4/httpd-foreground –

関連する問題