У меня установлены docker и docker-compose на моем raspberry pi. При попытке собрать следующий docker-compose.yml я получаю ошибку ip tables во время сборки образа mysql (перенесенного на linux/arm).
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, поэтому необходимо пересмотреть правила брандмауэра. Вторая причина может быть в том, что Raspberry Pí имеет некоторые настроенные файлы по умолчанию для создания образов docker-composed, поэтому для создания этого, похоже, лучше загрузить файл повторно зарегистрированного репозитория Raspberry Pí, таким образом, можно избежать проблем. Следующий файл содержит некоторую полезную информацию: https://docs.linksmart.eu/display/LOF/Установка+с+docker+на+raspberry+pi+3