Raspberry Pi (Linux/ARM) で Docker イメージをビルド中に iptables エラーが発生する

Raspberry Pi (Linux/ARM) で Docker イメージをビルド中に iptables エラーが発生する

Raspberry Pi に docker と docker-compose をインストールしています。次の docker-compose.yml をビルドしようとすると、(Linux/ARM に移植された) mysql イメージのビルド中に ip tables エラーが発生します。

docker-compose.yml:

version: '2'
services:
  crawler:
    container_name: crawler
    depends_on:
      - mysql
    build: ./crawler
  dns:
    container_name: dns
    depends_on:
      - mysql
    build: ./dns
    ports:
      - 5053:53/tcp
      - 5053:53/udp
  mysql:
    container_name: mysql
    restart: always
    image: hypriot/rpi-mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: 'test_pass'
      MYSQL_PASSWORD: 'test_pass'
      MYSQL_USER: 'user'
      MYSQL_DATABASE: 'db'

    volumes:
      - data-volume:/var/lib/mysql
    ports:
      - "3306:3306"
    expose:
      - '3306'
volumes:
  data-volume:

エラー:

ERROR: for mysql  Cannot start service mysql: b'driver failed programming external 
connectivity on endpoint 1fbcdc69860b_mysql (110b4b2dc5ea028af72136d3ea1776a44dd9420b6617264b88357231335bb853):  
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.18.0.2:3306 ! -i br-537bb705ad31: 
iptables: No chain/target/match by that name.\n (exit status 1))'
ERROR: Encountered errors while bringing up the project.

答え1

問題はいくつかの理由で発生する可能性がありますが、最も正確な理由は次のとおりです。docker-composed.yml ファイルは、ip-tables ルールによってブロックされている構成を示しています。そのため、Raspberry Pí はリモート SQL Server データベースに接続できないため、ファイアウォール ルールを見直す必要があります。2 番目の理由は、Raspberry Pí にはデフォルトで docker-composed イメージを作成するためのカスタマイズされたファイルがあるためです。そのため、それを作成するには、登録済みの Raspberry Pí リポジトリのファイルをダウンロードする方がよいようです。この方法では、問題を回避できます。次のファイルには、役立つ情報がいくつかあります。 https://docs.linksmart.eu/display/LOF/raspberry pi 3 での docker のインストール

関連情報