本站教程收集整理的这篇文章主要介绍了Docker:使用套接字在2个容器之间进行通信,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。
美国高防vps
我有2个Docker容器:App&网页.
App – 带有php应用程序代码的简单容器.它仅用于存储并将代码传递到远程Docker主机.
应用程序图像Dockerfile:
@H_450_9@FROM debian:jessie copY . /var/www/app/ VOLUME ["/var/www/app"] CMD ["true"]
Web – Web服务容器,由php-FPM Nginx组成.
Web镜像Dockerfile:
@H_450_9@FROM Nginx # Remove default Nginx configs. RUN rm -f /etc/Nginx/conf.d/* # Install packages RUN apt-get update && apt-get install -my \ supervisor \ curl \ wget \ php5-cli \ php5-curl \ php5-fpm \ php5-gd \ php5-memcached \ php5-MysqL \ php5-mcrypt \ php5-sqlite \ php5-xdebug \ php-apc # Ensure that php5 FPM is run as root. RUN sed -i "s/user = www-data/user = root/" /etc/php5/fpm/pool.d/www.conf RUN sed -i "s/group = www-data/group = root/" /etc/php5/fpm/pool.d/www.conf # Pass all docker environment RUN sed -i '/^;clear_env = no/s/^;//' /etc/php5/fpm/pool.d/www.conf # Add configuration files copY config/Nginx.conf /etc/Nginx/ copY config/default.vhost /etc/Nginx/conf.d copY config/supervisord.conf /etc/supervisor/conf.d/ copY config/php.ini /etc/php5/fpm/conf.d/40-custom.ini VOLUME ["/var/www","/var/log"] EXPOSE 80 443 9000 ENTRYPOINT ["/usr/bin/supervisord"]
我的问题:是否可以通过套接字链接Web容器和App容器?
主要原因是 – 使用App容器将更新的代码部署到远程Docker主机.
在容器之间使用卷/命名卷来共享代码不是一个好主意.但套接字可以提供帮助.
非常感谢您的帮助和支持!
最佳答案
如果两个容器都在同一主机上运行,??则可以在两者之间共享套接字,因为它们是普通文件.
您可以create a local docker volume并在两个容器上安装该卷.然后配置程序以使用该路径.
@H_450_9@docker volume create --name=phpfpm docker run phpfpm:/var/phpfpm web docker run phpfpm:/var/phpfpm app
如果可以在主机上生成套接字,则可以将文件装入两个容器中.这是用于使docker容器控制主机docker的方法.
@H_450_9@docker run -v /var/container/some.sock:/var/run/some.sock web docker run -v /var/container/some.sock:/var/run/some.sock app
本站总结
以上是本站教程为你收集整理的Docker:使用套接字在2个容器之间进行通信全部内容,希望文章能够帮你解决Docker:使用套接字在2个容器之间进行通信所遇到的程序开发问题。
如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。