簡體   English   中英

Mysql客戶端使用`docker-compose run`與`docker-compose exec`進行調用

[英]Mysql client called with `docker-compose run` vs. `docker-compose exec`

使用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

當省略第一個示例中的hostname標志時,mysql失敗並顯示“無法連接到套接字”錯誤。

這兩個例子有什么區別?

docker-compose run將在同一網絡上啟動一個名為folder_db_container_run_1的新容器。 這不是運行mysql,因為你傳遞了一個命令。 所以它正在運行該命令。 因此,您從此容器連接到原始數據庫容器

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

這就是為什么它有效。 在這種情況下,不會啟動額外的容器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM