我正在学习如何将 Docker 用于多个容器,而不是单个容器。
我想学习如何从容器 A 调用位于容器 B 上的程序。
(即:我希望能够从我的 web
容器调用 sendmail
,而 sendmail
和类似程序位于 mailhog
容器。)
我有这个:
docker-compose.yml
web:
container_name: centosweb
image: fab/centosweb
ports:
- "80:80"
volumes:
# Single files
- ./config/httpd.conf:/etc/httpd/conf/httpd.conf
# Directories
- ./vhosts:/var/www/html
- /Users/fabien/Dropbox/AppData/XAMPP/web/bilingueanglais/public_html:/var/www/html/bilingueanglais
- ./logs/apache:/etc/httpd/logs # This will include access_log(s) and error_log(s), including PHP errors.
links:
- db:3306
- mailhog:1025
db:
container_name: centosdb
image: fab/centosdb
hostname: db
volumes:
# Single files
- ./config/my.cnf:/etc/my.cnf
# Directories
- ./mysqldata:/var/lib/mysql
- ./logs/mysql:/var/log/mysql
mailhog:
image: mailhog/mailhog
hostname: mailhog
ports:
- 1025:1025
- 8025:8025
但是,现在 web
找不到 /usr/sbin/sendmail
,因为它位于 mailhog
容器中。尝试使用 PHP 中的邮件函数会产生一个Could not instantiate mail function
错误。
如何将两者联系起来?
最佳答案
容器需要在同一个网络中,这是我的问题。
关于 docker : find sendmail in other container,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43888542/