ブリッジネットワークの下で3つのサービス(db、nginx、およびWebサービス)をリンクして、ローカルホストまたはコンテナ内のさまざまなサービスを突き止めて、 Webサービスの対話型端末。どうすればこれを達成できますか?Dockerを持つ端末
マイドッカ - コンの構成は以下の通りです:
Webサービスをベースとしてmhart/alpine-node:6.7.0
を使用して、さらにいくつかのユーティリティプラスPython3.5とフラスコを追加している
version: '2'
services:
web:
build:
context: .
dockerfile: Dockerfile-alpine
command: /bin/bash
ports:
- "5000:5000"
volumes:
- $REPO_DIR:/repository
links:
- db
- nginx
nginx:
image: nginx:stable-alpine
ports:
- "8080:8080"
volumes:
- $NGINX_STATIC_DIR:/var/www/static
- $NGINX_CONFIG_FILE:/etc/nginx/nginx.conf
db:
image: mysql/mysql-server
ports:
- "3307:3306"
environment:
MYSQL_USER: $MYSQL_USER
MYSQL_PASSWORD: $MYSQL_PASSWORD
MYSQL_DATABASE: $MYSQL_DATABASE
MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
volumes:
- $DB_DATA_DIR:/var/lib/mysql
- $DB_LOG_DIR:/var/log/mysql
。
私がdocker-compose run web
を実行すると、対話型端末にアクセスできますが、dbおよびnginxサービスは適切にブート/リンクされません。
さらに、nginxもdbも存在しないコンテナ内部のネットワークフォレンジックが表示されます。私はさらにdocker-compose up
を使用して、ホストシステムにmysqlがインストールされていることを認められたdbサービスのポート競合を実際に作成したので、これをさらにサポートできます。docker-compose run
で報告されませんでした。
私はdocker-compose up
を試みる一方、私はより多くのアクティブ・トレースを取得しますが、ない対話型端末:私は対話型端末と私の3つのコンテナの適切なリンクを達成するために何を
Starting courseadmin_nginx_1
Recreating courseadmin_db_1
Recreating courseadmin_web_1
Attaching to courseadmin_nginx_1, courseadmin_db_1, courseadmin_web_1
db_1 | Initializing database
courseadmin_web_1 exited with code 0
db_1 | Database initialized
db_1 | MySQL init process in progress...
db_1 | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
db_1 | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
db_1 | mysql: [Warning] Using a password on the command line interface can be insecure.
db_1 | mysql: [Warning] Using a password on the command line interface can be insecure.
db_1 | mysql: [Warning] Using a password on the command line interface can be insecure.
db_1 | mysql: [Warning] Using a password on the command line interface can be insecure.
db_1 |
db_1 | /entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
db_1 |
db_1 |
db_1 | MySQL init process done. Ready for start up.
db_1 |
を行うことができます?
私が話し続ける 'ドッキングウィンドウ-compose'ドキュメントは、ここにlinks''について、具体的部分を見つけることができます – d00bsm3n
素晴らしい投稿です!間違いなく私は進歩に多くの助けになります。しかし、私のウェブコンテナは、/ bin/bashが何もしていないので死んでしまうので、ドッカーexec -ti $ container_idを実行することはできません。エントリーポイントを通過せずに生き続ける方法はありますか? –
**なぜあなたの 'web'コンテナが死んでいるのか明らかでない場合は、[here](http://stackoverflow.com/a/28214133/6942595)を参照してください。残りの部分については、あなたの 'web'サービスで何を達成しようとしているのか、あなたのOPでもう少し詳しく説明できますか?私にとっては単に 'image:alpine'を実行すれば、' exec'でシェルを起動できるコンテナを設定することができますか? – d00bsm3n