docker-compose.ymlの中にmariadbとphp-fpmコンテナがある(グローバル)コンテナがあります。これらはリンクされていますが、dbコンテナのipとportはphp-fpmの環境変数にはありません。 dockerコンテナリンクがenvや/ etc/hostsにありません
は、私はこのようなmariadbコンテナを開始しました:$ docker run --name db -e MYSQL_ROOT_PASSWORD=.... -dP mariadb
マイドッキングウィンドウ-compose.ymlは、次のようになります。
version: "2"
services:
nginx:
build:
context: .
dockerfile: docker/nginx/Dockerfile
ports:
- 80
links:
- fpm
volumes_from:
- app
fpm:
build:
context: .
dockerfile: docker/fpm/Dockerfile
external_links:
- db
volumes_from:
- app
app:
build:
context: .
dockerfile: docker/app/Dockerfile
volumes:
# - /app
- .:/app:ro
マイFPM Dockerfile:
FROM php:fpm
RUN docker-php-ext-install pdo pdo_mysql
環境変数でphpinfo()
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME db14e2928ed6
PHP_INI_DIR /usr/local/etc/php
PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data
GPG_KEYS 1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763
PHP_VERSION 7.0.5
PHP_FILENAME php-7.0.5.tar.xz
PHP_SHA256 c41f1a03c24119c0dd9b741cdb67880486e64349fc33527767f6dc28d3803abb
HOME /var/www
USER www-data
編集:
私は、PHP-FPMが台無しないことを確認するためにUbuntuのコンテナにリンクしてみました。これは一時的なコンテナとして機能しますが、docker-compose.yamlにexternal_linkという名前を付けてenvや/ etc/hostsからも消えます。
version: "2"
services:
test:
image: ubuntu
external_links:
- db
参考:「注:バージョン2のファイル形式を使用している場合、外部で作成されたコンテナは、リンク先のサービスと同じネットワークの少なくとも1つに接続する必要があります。 –
バージョン2のファイルは、ユーザ定義のネットワークを使用しますが、これはもはや '/ etc/hosts'を使用しません。名前解決を処理する組み込みDNSサーバーがあります。 – dnephin
組み込みDNSサーバを使用してdbにアクセスするにはどうすればよいですか?私は 'db'(' $ netcat db 3306 '' nc:getaddrinfo:名前またはサービスが知られていない ')を解決できません – schokocappucino