No meu caso, tenho 2 contêineres mariadb rodando com 2 volumes separados:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
952988c62c2c mariadb:10.4 "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 3306/tcp php_dev_db_1
799f2226367f mariadb:10.4 "docker-entrypoint.s…" 4 days ago Up 30 minutes (healthy) 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp test_magento-db-1
E tentei transferir o banco de dados de um para outro através de um pipe:
docker exec 799f2226367f mysqldump -u magento -pmagento magento > docker exec 952988c62c2c mysql -u magento -pmagento magento
Mas recebo o erro:
mysqldump: Couldn't find table: "exec"
E não sei por quê.
então você precisa usar um pipe (
|
) em vez de um redirecionamento (>
):O erro que você obteve acontece porque um redirecionamento consome apenas a palavra a seguir, então seu comando é equivalente a
ou seja,
mysqldump
tenta despejar as tabelasmagento
,exec
,952988c62c2c
emysql
.