한 컨테이너에서 다른 컨테이너로 데이터베이스를 전송할 수 없는 이유는 무엇입니까?

한 컨테이너에서 다른 컨테이너로 데이터베이스를 전송할 수 없는 이유는 무엇입니까?

제 경우에는 2개의 개별 볼륨을 실행하는 2개의 mariadb 컨테이너가 있습니다.

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

한 데이터베이스에서 다른 데이터베이스로 데이터베이스를 파이프하려고 합니다.

docker exec 799f2226367f mysqldump -u magento -pmagento magento > docker exec 952988c62c2c mysql -u magento -pmagento magento

하지만 오류가 발생합니다.

mysqldump: Couldn't find table: "exec"

이유는 모르겠습니다.

답변1

한 데이터베이스에서 다른 데이터베이스로 데이터베이스를 파이프하려고 합니다.

|따라서 리디렉션() 대신 파이프()를 사용해야 합니다 >.

docker exec 799f2226367f mysqldump -u magento -pmagento magento | docker exec 952988c62c2c mysql -u magento -pmagento magento

리디렉션은 다음 단어만 사용하기 때문에 오류가 발생하므로 명령은 다음과 동일합니다.

docker exec 799f2226367f mysqldump -u magento -pmagento magento exec 952988c62c2c mysql -u magento -pmagento magento > docker

mysqldump, 및 테이블 magento을 덤프해 보십시오 .exec952988c62c2cmysql

관련 정보