自動スケジューリングドッカー作曲を使用してコンテナ

遭遇の間ドッカーコンテナのネットワーク通信の問題

インストールでDockerLinux入力ip addrには、検索の指名したdocker0ネットワークデバイス間のネットワーク通信をし、コンテナがホストに依存していますdocker0

** [理解]変更docker0ネットワークセグメント(CentOS6。*)**

sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0

コンテナドッカー間のネットワーク接続

dockerデフォルトでは、ネットワーク接続がそのような容器へのようにすべてのコンテナとの間にすることができる可能にすることであるping別の容器IPができるpingことはできるが、合格ping合格、誰が使用していないIP互いに容器を行うための方法を。

もちろん、それは起動時に追加することができます--link間のコンテナにパラメータhostsマッピング。原理はのコンテナであるhosts別のコンテナファイルの追加ipエイリアスを対応します。しかし、このアプローチは必要と厳格なブートシーケンスコンテナを、そのようなアプローチをされて正式に推奨されませんで。

使用して、Docker Composeこれらの問題を解決することができます。

ドッカー作曲

Docker Compose位置「は、複数を定義して実行することであるDocker別を通じてユーザーを可能にする、アプリケーション・コンテナ」docker-compose.yml(テンプレートファイルYAML(プログラムの関連するコンテナのアプリケーションフォーマットのセットを定義します)project)。

方言は:Docker Composeすることができyaml、自動的にすべての設定ファイルの手配yaml、自分の書く必要がなくなり、構成ファイルを介して容器のサービス構成をdocker退屈で時間のかかる作業してコマンドを。

Docker Composeマウンティング

公式ドキュメント

中文

Docker Compose使用しyml、次の(デフォルトのファイル名などのファイルのルックスをdocker-compose.yml

version: '3'
services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

その後、コマンドを使用してdocker-compose upの束入力することなく構築し、それを実行するためdockerのトラブルのコマンドを

yamlその他の設定:

公式ドキュメント

中文

docker composeコマンドがたくさんあります:

公式ドキュメント

中文

経験の例を通してDocker Compose

目的:使用構築するためのブログHaloミラーとNginxミラーリングネットワークインターワーキング

version: '3'
services:
    halo:
        restart: always # Docker重启的时候要重新启动容器
        image: ruibaby/halo
        container_name: halo
        volumes:
        - ~/cyblogs/.halo:/root/.halo
          
    nginx:
        restart: always
        image: nginx
        container_name: nginx-server
        ports:
        - 80:80
        - 443:443 # HTTPS端口
        volumes:
        - ~/cyblogs/.halo/html:/root/html/.halo # 如果容器中不存在这个文件夹会自动创建
        - ~/cyblogs/nginx/cert:/root/cert # HTTPS使用的SSL证书
        - ~/cyblogs/nginx/logs:/var/log/nginx # 日志文件的映射
        - ~/cyblogs/nginx/conf/nginx.conf:/etc/nginx/nginx.conf # 配置文件的映射

確認するには、次のコマンドを実行しyml、ファイル形式が正常です

docker-compose -f /root/cyblogs/docker-compose.yml config

あなたは、ファイルの正確元の内容をプリントアウトした場合は、ファイル形式は、エラーを説明していません。

そして、スケジュールを開始するには、次のコマンドを実行します。

docker-compose -f /root/cyblogs/docker-compose.yml up -d

どこ-ddocker runされている-dバックグラウンドで実行されていると同じ

首尾よく使用して整理した後execだけに、コンテナに行くコマンドをhaloたとえば、コンテナ

docker exec -it halo /bin/sh

次に、実行pingコマンドを:

ping nginx

今回は見つけることができるping上、との使用を必要としないIPアドレスを、およびサービス名を使用します。

Nginx構成:

# 配置halo.xxx.com的映射
upstream halo {
    server halo:8090;
}

# 备用 为*.xxx.com做映射
server {
    listen 80;
    server_name ~^.*xxx\.com$;
    location / {
        root   /root/html/.halo;
        index  index.html index.htm;
    }
}

# 配置halo.xxx.com的SSL证书
server {
    listen 80;
    listen 443 ssl;
    server_name halo.xxx.com;
    root html;
    index index.html index.htm;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    ssl_certificate   /root/cert/halo.xxx.com.pem;
    ssl_certificate_key  /root/cert/halo.xxx.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://halo;
    }
}

Nginxプロファイルはまた、上記のプロファイルとしてリバースプロキシを行うために直接「サービス名」の方法を使用することができますserver halo:8090;

おすすめ

転載: www.cnblogs.com/codelunatic/p/11876231.html