gpt4 book ai didi

使用 `docker-compose run` 与 `docker-compose exec` 调用的 Mysql 客户端

转载 作者:可可西里 更新时间:2023-11-01 07:29:44 25 4
gpt4 key购买 nike

为什么调用docker-compose run时需要指定主机?

例如

docker-compose run db_container mysql -uuser -ppass db_name -h db_container

似乎直接等同于

docker-compose exec db_container mysql -uuser -ppass db_name

当从第一个示例中省略主机名标志时,mysql 失败并出现“无法连接到套接字”错误。

这两个例子有什么区别?

最佳答案

docker-compose run 将在同一网络上启动一个新容器,其名称类似于 folder_db_container_run_1。这没有运行 mysql,因为你向它传递了一个命令。所以它正在运行该命令。所以你从这个容器连接到原来的db容器

docker-compose run db_container mysql -uuser -ppass db_name -h db_container

当您执行 exec 时,您会进入正在运行的容器中。并且不指定主机意味着本地 mysql

docker-compose exec db_container mysql -uuser -ppass db_name

这就是它起作用的原因。在这种情况下没有启动额外的容器

关于使用 `docker-compose run` 与 `docker-compose exec` 调用的 Mysql 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46223409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com