提前致以问候和感谢,我实际上是 docker 和 docker-compose 的新手,迄今为止观看了大量视频并阅读了很多文章并进行了尝试。
我有一个前端容器和一个后端容器,它们作为 Dockerfile 和 docker-compose 设置单独构建和运行。
(我首先使用 Dockerfile 进行构建,然后将容器集成到 docker-compose 中,以确保我正确理解事情)
我现在需要数据库信息,因为我将使用 docker-compose,据我了解,它应该在具有 React 前端和 django 后端的同一网络下构建。
我有一个正在使用的备份 mysql 转储文件,我认为我需要做的是有一个容器运行 mysql 服务器并提供我的表(就像我在本地工作一样)。我无法弄清楚如何将备份导入到我的 docker mysql 容器中。
任何帮助表示赞赏。
到目前为止,我尝试的是在命令行中使用 docker 来概述 Dockerfile 中需要的部分,然后将哪些内容移至 docker-compose 中,如上所述:
docker run -d --name root -e MYSQL_ROOT_PASSWORD=root mysql # to create my db container
然后我尝试了一堆命令和命令的排列,最近在 CLI 中,以下是我最近的一些尝试和错误:
docker exec -i root mysql -uroot -proot --force
第 22 行出现错误 1046 (3D000):未选择数据库
docker exec -i f803170ce38b sh -c 'exec mysql -uroot -p"root"'
第 22 行出现错误 1046 (3D000):未选择数据库
docker exec -i f803170ce38b sh -c 'exec mysql -uroot -h 192.168.1.51 -p"root"'
错误 1045 (28000):用户“root”@“homeimac”的访问被拒绝(使用密码:YES)
到目前为止,我已经在网上搜索过,但不确定下一步该去哪里,我的想法正确吗?如果有人有如何导入数据库转储(在 dmp 或 dmp.gz 中)的示例,一旦我开始工作,我实际上会在 docker-compose 文件中执行此操作。
想想看,我只需要创建容器并导入,所以我什至可能不需要 Dockerfile。
当我到达那里时我会过那座桥。这就是我的想法:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: 'app'
etc etc
我学到了很多东西,速度非常快,也许太快了。感谢您的任何提示!