[英]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.