![](/img/trans.png)
[英]Accessing environment variables in Docker containers linked with --link
[英]Docker containers linked but mysql cannot be connected to
我是docker的新手,並且為使我的系統運行而奮斗了兩天。 我的撰寫文件創建了nginx,php-fpm,mysql和phpmyadmin容器。 我可以互相ping通所有容器。 但是,當我嘗試將已安裝的public_html卷中的任何內容安裝到數據庫中時(例如安裝需要在數據庫中創建表的應用程序),該應用程序完全無法連接到數據庫。 我已確保一遍又一遍的憑據是正確的。 對於我的一生,我不知道我要去哪里錯。 任何幫助將不勝感激。 我在下面包括我的撰寫文件:
version: '3'
services:
www:
container_name: site1-www
image: nginx:1.13.7-alpine
expose:
- "80"
ports:
- 8001:80
networks:
datacentre:
aliases:
- site1www
env_file:
- ".env"
environment:
- NGINX_HOST=localhost
volumes:
- /mnt/www/site1.test/public_html:/usr/share/nginx/html/
-
/mnt/www/site1.test/conf/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- db
links
- db
phpfpm:
build: ./phpfpm
container_name: site1-phpfpm
networks:
datacentre:
aliases:
- site1php
volumes:
- /mnt/www/site1.test/public_html:/usr/share/nginx/html
- /mnt/www/site1.test/conf/php.ini:/usr/local/etc/php/php.ini
depends_on:
- db
links
- db
db:
container_name: site1-db
image: mariadb:10.3.2
ports:
- 3400:3306
env_file:
- ".env"
environment:
- MYSQL_DATABASE=test1db
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=test1user
- MYSQL_PASSWORD=password
networks:
datacentre:
aliases:
- site1db
volumes:
- /mnt/dbdata:/var/lib/mysql
dbadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: site1-dbadmin
ports:
- 8000:80
networks:
datacentre:
aliases:
- site1dbadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
depends_on:
- db
links
- db
networks:
datacentre:
external:
name: datacentre_net
初拍時的構圖設置看起來有些復雜。 刪除所有名稱和別名,並使用服務名稱進行連接。 然后從那里開始。
對於www
服務,nginx應該將phpfpm:9000
配置為FastCGI worker。
您的PHP應用程序和phpMyAdmin應該配置為連接到db:3306
version: '3'
services:
www:
image: nginx:1.13.7-alpine
ports:
- 8001:80
env_file:
- ".env"
environment:
- NGINX_HOST=localhost
volumes:
- /mnt/www/site1.test/public_html:/usr/share/nginx/html/
- /mnt/www/site1.test/conf/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- phpfpm
phpfpm:
build: ./phpfpm
volumes:
- /mnt/www/site1.test/public_html:/usr/share/nginx/html
- /mnt/www/site1.test/conf/php.ini:/usr/local/etc/php/php.ini
depends_on:
- db
db:
image: mariadb:10.3.2
ports:
- 3400:3306
env_file:
- ".env"
environment:
- MYSQL_DATABASE=test1db
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=test1user
- MYSQL_PASSWORD=password
volumes:
- /mnt/dbdata:/var/lib/mysql
dbadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- 8000:80
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
depends_on:
- db
不需要links
即可訪問用戶定義的網絡上的服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.