使用 podman-compose 时如何访问数据库容器?
How do I access a db container when using podman-compose?
我一直在尝试弄清楚如何在使用 podman-compose 时连接到 mariadb 容器,但我一直收到错误。
这是我所做的:
软件版本
podman version = 3.3.1
podman-compose version = podman-compose-0.1.7-2.git20201120.el8.noarch`
docker-compose.yml
version: '3'
services:
db:
image: mariadb:latest
environment:
MARIADB_USER: user
MARIADB_PASSWORD: pass
MARIADB_DATABASE: testdb
MARIADB_ROOT_PASSWORD: rootpass
volumes:
- db_data:/var/lib/mysql
当我旋转这个容器时使用:podman-compose up -d
然后尝试使用以下方式连接到此数据库:
podman exec -it project_db_1 mariadb -uroot -prootpass
我收到这个错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我作为普通用户和 root 用户都收到此错误。
然而,当我 运行 与 podman 相同的容器时:
Podman 命令
podman run -d \
--name mariadb \
-e MARIADB_USER=user \
-e MARIADB_PASSWORD=pass \
-e MARIADB_DATABASE=testdb \
-e MARIADB_ROOT_PASSWORD=rootpass \
mariadb:latest
然后尝试使用以下方式连接到此数据库:
podman exec -it mariadb mariadb -uroot -prootpass
我可以成功登录。
任何人都可以向我解释我在使用 podman-compose 时做错了什么,或者为什么它不允许我使用我提供的凭据登录吗?
好吧,任何想知道我做了什么来解决这个问题的人...
首先,我卸载了 podman & podman-compose 因为它有太多问题,所以我安装了 docker & docker-compose.
其次,当我 运行 在 docker-compose 中编写此脚本时,我收到了一个错误,该错误未出现在 podman-compose 中。
错误:services.db.environment must be a mapping
在谷歌搜索该错误后,我发现我需要像这样格式化环境部分:
version: '3'
services:
db:
image: mariadb:latest
environment:
- MARIADB_USER=user
- MARIADB_PASSWORD=pass
- MARIADB_DATABASE=testdb
- MARIADB_ROOT_PASSWORD=rootpass
volumes:
- db_data:/var/lib/mysql
在我修复该问题后,docker-compose 运行 非常漂亮,我可以连接到我的数据库,甚至可以从另一个容器连接。我确实使用 podman-compose 和此代码修复进行了测试,但它仍然无法正常工作。所以我将使用 docker 直到 podman 解决他们的问题。
我一直在尝试弄清楚如何在使用 podman-compose 时连接到 mariadb 容器,但我一直收到错误。
这是我所做的:
软件版本
podman version = 3.3.1
podman-compose version = podman-compose-0.1.7-2.git20201120.el8.noarch`
docker-compose.yml
version: '3'
services:
db:
image: mariadb:latest
environment:
MARIADB_USER: user
MARIADB_PASSWORD: pass
MARIADB_DATABASE: testdb
MARIADB_ROOT_PASSWORD: rootpass
volumes:
- db_data:/var/lib/mysql
当我旋转这个容器时使用:podman-compose up -d
然后尝试使用以下方式连接到此数据库:
podman exec -it project_db_1 mariadb -uroot -prootpass
我收到这个错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我作为普通用户和 root 用户都收到此错误。
然而,当我 运行 与 podman 相同的容器时:
Podman 命令
podman run -d \
--name mariadb \
-e MARIADB_USER=user \
-e MARIADB_PASSWORD=pass \
-e MARIADB_DATABASE=testdb \
-e MARIADB_ROOT_PASSWORD=rootpass \
mariadb:latest
然后尝试使用以下方式连接到此数据库:
podman exec -it mariadb mariadb -uroot -prootpass
我可以成功登录。
任何人都可以向我解释我在使用 podman-compose 时做错了什么,或者为什么它不允许我使用我提供的凭据登录吗?
好吧,任何想知道我做了什么来解决这个问题的人... 首先,我卸载了 podman & podman-compose 因为它有太多问题,所以我安装了 docker & docker-compose.
其次,当我 运行 在 docker-compose 中编写此脚本时,我收到了一个错误,该错误未出现在 podman-compose 中。
错误:services.db.environment must be a mapping
在谷歌搜索该错误后,我发现我需要像这样格式化环境部分:
version: '3'
services:
db:
image: mariadb:latest
environment:
- MARIADB_USER=user
- MARIADB_PASSWORD=pass
- MARIADB_DATABASE=testdb
- MARIADB_ROOT_PASSWORD=rootpass
volumes:
- db_data:/var/lib/mysql
在我修复该问题后,docker-compose 运行 非常漂亮,我可以连接到我的数据库,甚至可以从另一个容器连接。我确实使用 podman-compose 和此代码修复进行了测试,但它仍然无法正常工作。所以我将使用 docker 直到 podman 解决他们的问题。