如何debuggingREDIS,APACHE发出一个Docker容器?

这是场景:

该容器来自使用以下Dockerfile创build的映像:

FROM php:5-apache RUN apachectl -M RUN a2enmod rewrite RUN a2enmod expires RUN service apache2 restart RUN apachectl -M RUN php -m RUN apt-get update RUN php -m RUN apt-get install -y php5-redis RUN apt-get install -y redis-server #RUN redis-server RUN cp /etc/php5/mods-available/redis.ini /usr/local/etc/php/conf.d && ln -s /usr/lib/php5/20131226/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/redis.so RUN php -m COPY src/ /var/www/html EXPOSE 80 #CMD ["redis-server"] 

请注意最后一行CMD ["redis-server"]

在build立图像之后,我创build了这样的容器

 docker run -p 80:80 my_img 

如果在浏览器(0.0.0.0:80)中使用#CMD ["redis-server"]构build图像, #CMD ["redis-server"]收到一条错误消息(来自我的index.php文件) "Could not connetc to REDIS" 。 也许是因为REDIS没有初始化。

如果图像是用CMD ["redis-server"]构build的,并初始化REDIS(我可以在Dockerterminal中看到REDIS符号),但在浏览器中收到错误消息:

在这里输入图像说明

所以,我没有线索发生了什么事情。 我在Docker中是新的,不知道如何debugging它。 它可能是与端口冲突(REDISxApache)相关的,也可能是REDIS本身。 或者这不是我应该初始化REDIS的方式。

有什么帮助吗?

您不要在同一个容器中运行依赖服务。 你作为撰写的一部分来运行它们

泊坞窗,compose.yml

 version: '3' services: php: build: context: . ports: - "80:80" redis: image: redis 

你将使用组合

 $ docker-compose up 

您将不得不在redis:6379内连接到你的php代码而不是使用127.0.0.1:6379关于docker的更多细节,请参考https://docs.docker.com/compose/