如何编写 bash 脚本与 docker 容器内的 mysql 数据库交互

问题描述 投票:0回答:1

我有一个在 docker 容器中运行的 PrestaShop 数据库,我打算 备份。问题是,我需要在运行电子商务商店之前将其置于维护模式。理想情况下,我打算在远程机器上运行脚本——让它通过 ssh 登录,然后与容器交互(通过脚本),但似乎我可能(首先)需要通过 ssh 登录,然后在服务器? (因为它启动了一个新的外壳等)。

这些是我到目前为止的脚本部分,但我只是不确定如何在 mysql 中将它们组合成字符串命令:

#!/bin/bash

# Log in to docker@debVM server via SSH
ssh docker@debVM

# Run the following Docker Container
docker exec -it ps1-7-mariadb-1 /bin/bash

# Login to the database bitnami_prestashop 
mysql -u bn_prestashop -pbitnamiUSER bitnami_prestashop

# Run update - store into maintenance mode
UPDATE ps_configuration SET value='0' WHERE name='PS_SHOP_ENABLE'; 

#Exit the mysql and docker exec
Exit 

#run the backup-volumes-container.sh script
echo running the backup-volumes-container.sh script
cd
cd scripts/
./backup-volumes-container.sh ps1-7-mariadb-1 
./backup-volumes-container.sh ps1-7-prestashop-1
echo Backup-volumes complete 

希望有人能帮忙-谢谢!

bash docker prestashop
1个回答
0
投票

如果您的目标是在 docker 容器内的操作系统上运行命令,请查看 docker exec。您可以在容器的 dockerfile 中安装一个 mysql 客户端,然后像在主机上一样通过 docker exec 使用它。

如果您需要从容器中获取数据,您可以将日志文件或其他内容作为文件卷映射到容器,并让容器将输出写入该文件。

这里有一个我在说什么的例子.

© www.soinside.com 2019 - 2024. All rights reserved.