2016-12-28 7 views

答えて

2

コンテナは、同じカスタムドッカーネットワークに接続されている場合、相互にやり取りすることができます。ネットワークは「分離」(つまり、同じネットワークに接続されているコンテナのみが相互作用できる)を提供します。コンテナにという名前のを指定した場合、コンテナ名はホスト名としてコンテナを使用して検索できます。

レガシー--linkオプションを使用して同様の結果を得ることができますが、たとえば、--link

。 「プライベートネット」と呼ばれる

アプリケーションのネットワークを作成

docker network create private-net 

スタートMySQLの「DB」という名前のコンテナ、および「プライベート・ネット」ネットワークに接続するドッキングウィンドウを教えてください。他のコンテナに接続するためにポート3306を「公開」する必要はないことに注意してください。 公開する(例えば、インターネットからアクセスできるようにする)場合は、ポートに公開する( -p)。

docker run -d --name=db --net=private-net -e MYSQL_ROOT_PASSWORD="secret" mysql 

アプリケーションコンテナを起動します。ここの原則を実証するだけです。これにもmysqlコンテナを使用していますが、シェルセッションと対話的に起動してデータベースへの接続方法を示します。

docker run -it --name=app --net=private-net mysql bash 

[email protected]:/# # we're in the 'app' container 
[email protected]:/# # connect to the mysql container, using it's name ('db') as hostname 
[email protected]:/# mysql -h db -p 
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 4 
Server version: 5.7.17 MySQL Community Server (GPL) 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql> \q 
Bye 
[email protected]:/# # exiting the container 
[email protected]:/# exit 
exit 

あなたは/ docker network connectdocker network disconnectコマンドを使用して、実行時にネットワークから切断した容器を接続することができます。コンテナは複数のネットワークに接続することができます。これは、複数のアプリケーションが共有するサービスを持つ場合に便利です。

Dockerネットワークの詳細については、work with network commands

を参照してください。
0

--link mysql:mysqlは他のコンテナ(apache、php ...)のdocker runにあり、コンテナ内にはmysqlと表示されます。次のようなもの:

docker run -d -p 3306:3306 --name mysql my/mysql 
docker run -d -p 8080:8080 --name apache --link mysql:mysql my/apache 

希望すると助かります。

関連する問題