やりたいこと
方法
<変数>記述は環境に合わせて読み替え
-
イメージ1のDockerfileにEXPOSE記述を記述し構築する
DickerfileEXPOSE :<サービスポート番号>
ホストdocker build -t <イメージ1の名前> <ソースパス>
-
コンテナ1を起動する
ホストdocker run -name <コンテナ1の名前> -d <イメージ1の名前>
※イメージ1をEXPOSE記述なしで構築済みの場合「--expose <サービスポート番号>」を指定してコンテナ1を起動することで同様のコンテナを作成可能
-
コンテナ1へのリンクオプションを指定して、コンテナ2を起動する
ホストdocker run -name <コンテナ2の名前> -d --link <コンテナ1の名前>:<リンク情報用プレフィックス>
コンテナ2の中でリンク情報を表示する
-
コンテナ1のアドレスを表示する
コンテナ2echo ${<リンク情報用プレフィックス>_PORT_<サービスポート番号>_ADDR}"
-
コンテナ1のサービスポート番号を表示する
コンテナ2echo ${<リンク情報用プレフィックス>_PORT_<サービスポート番号>_PORT}"
-
telnetで接続してみる
コンテナ2telnet <コンテナ1のアドレス> <コンテナ1のサービスポート番号> # Trying ***.... # Connected to ***. # Escape character is '^]'.
yay!