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のように
- 私が
docker run -it --name=symfony symfony-dev bash
としてbashに入るためにコンテナを実行すると、私はこのエラーを受け取ります:new state of nil is invalid
私は修正する方法がわかりません。私は、IPアドレスとして172.17.0.2を見ていますが、私は、Apacheの意味として、それに到達することはできませんよ、他の側で
は
httpd_foreground
を追加していると私は
docker ps
を実行しますが、私はまだいくつかの問題を抱えていた場合、今、私は、コンテナの実行を見たcricket_007提案@続き
UPDATE
http://172.17.0.2/info.php
私はいくつかの不審に関するfirewalldおよび/またはSELinuxを持っていますが、私はわからない
この2つの問題についていくつかのアドバイスがありますか?
あなたは 'RUN tailf/etc/http/logs/XXXXXX.log'を追加することを意味しますか? – ReynierPM
実行しない、しない。 CMDとして –
実際には、公式のApacheイメージは 'exec httpd -DFOREGROUND'を使用します。ここにはCMDで使用されるスクリプトがあります。https://github.com/docker-library/httpd/blob/bc72e42914f671e725d85a01ff037ce87c827f46/2.4/httpd-foreground –