2024年5月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

 

« 今週届いた本、買ってきた本 | トップページ | 覚書:VMWare Playerのubuntuがネットワーク接続できなくなったときの対処 »

2015年9月22日 (火)

オイラ、dockerしてるぜ 覚書:コンテナ間連結

docker コンテナ間の連結には、--linkを使う。
参考となるページ

docker公式HP Linking containers together
Dockerコンテナ間のlink,database.ymlの書き方

・書式:--link <連携したいコンテナ名>:<エイリアス>

  • 実行dockerコンテナに対して、<連携したいコンテナ>の/etc/hosts に連携したいコンテナが登録される。

    root@da42e475504a:/# grep jenkins /etc/hosts
    172.17.0.66     ci_jenkins c8cc4a7b4f23
    172.17.0.66     ci_jenkins.bridge
    172.17.0.66     ci_jenkins

    これを使えば、ApacheでReverseProxyに設定するとき、IPアドレスではなく、連携したいコンテナ名を設定すればOK。
  • 実行dockerコンテナに対して、<連携したいコンテナ名>の情報を環境変数に設定する。環境変数名プレフィックスが<エイリアス>になる。
    #<連携したいコンテナ>DockerイメージのDockerfileに定義されているENV、EXPOSEの内容が、設定される?あと、-eオプションで設定した環境変数を設定されている。

    例えば公式Jenkinsイメージを連携コンテナとしたとき、以下のような環境変数が定義される。(--link <Jenkinsコンテナ名>:jenkins としたとき)

    root@da42e475504a:/# set | grep JENKINS
    CI_JENKINS_ENV_CA_CERTIFICATES_JAVA_VERSION=20140324
    CI_JENKINS_ENV_COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log
    CI_JENKINS_ENV_JAVA_DEBIAN_VERSION=8u45-b14-2~bpo8+2
    CI_JENKINS_ENV_JAVA_VERSION=8u45
    CI_JENKINS_ENV_JENKINS_HOME=/var/jenkins_home
    CI_JENKINS_ENV_JENKINS_SHA=<ここは秘密:SHA IDが入る>
    CI_JENKINS_ENV_JENKINS_UC=https://updates.jenkins-ci.org
    CI_JENKINS_ENV_JENKINS_VERSION=1.609.2
    CI_JENKINS_ENV_LANG=C.UTF-8
    CI_JENKINS_NAME=/ci_apache/ci_jenkins
    CI_JENKINS_PORT=tcp://172.17.0.66:8080
    CI_JENKINS_PORT_50000_TCP=tcp://172.17.0.66:50000
    CI_JENKINS_PORT_50000_TCP_ADDR=172.17.0.66
    CI_JENKINS_PORT_50000_TCP_PORT=50000
    CI_JENKINS_PORT_50000_TCP_PROTO=tcp
    CI_JENKINS_PORT_8080_TCP=tcp://172.17.0.66:8080
    CI_JENKINS_PORT_8080_TCP_ADDR=172.17.0.66
    CI_JENKINS_PORT_8080_TCP_PORT=8080
    CI_JENKINS_PORT_8080_TCP_PROTO=tcp

    ↑CI_JENKINS_PORT_(50000|8080)は、EXPOSEの50000、8080から設定される。

●その他

  • -P :DockerfileのEXPORTのポート番号をランダムに外部へのポート割り当てする。外部ポート番号を指定するときは-pを使う。
  • -p(--port) :dockerホストを経由して外部にポートを開く。<連携元コンテナのポート番号>:<外部ポート番号>。
    -p 8080:80 とすると、実行したコンテナのポート番号8080が、外部のポート番号80として開かれる。この設定をすれば外部のWebブラウザから http://192.168.99.100/ とやれば、連携元のHTTPが見られる。
  • IPAddressの取得
    docker の inspectコマンドを使用する。

    docker@default:~$ docker inspect -f "{{ .NetworkSettings.IPAddress }}" ci_jenkins
    172.17.0.66

« 今週届いた本、買ってきた本 | トップページ | 覚書:VMWare Playerのubuntuがネットワーク接続できなくなったときの対処 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: オイラ、dockerしてるぜ 覚書:コンテナ間連結:

« 今週届いた本、買ってきた本 | トップページ | 覚書:VMWare Playerのubuntuがネットワーク接続できなくなったときの対処 »