大家好,打給後,他卡後
今天來個Docker小教學
身為一個工程師,為了平台的可攜、相容性,都會針對不同的服務,就會建立一個Docker Container。
但我們很常遇到的就是,想要讓Container A 傳送訊息或者遞交指令到 Container B。
那要如何實做呢?
這裡給予大家兩個方式
- 創建Container A 的時候,下指令
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker
第一行是告知 我讓container A 裡面 的 docker socket 跟 container 外的 docker sock 共用
第二行是讓 Container A 裡面可以直接使用Container 外的 Docker 指令
如此一來,可以在Container A內下指令來讓Container B 工作。
例如簡單使用shell
docker exec container_B bash -c "ls -al"
這樣就能在container B實施 ls -la 指令
但這個方式屬於魔道,都已經用container,有時候就是想要隔絕內外的 user space。怎麼還讓它可以container 跳到外部呼叫docker exec 呢? 所以有第二點王道的方式
- 創建Container A的時候,下指令
--link container_B : continer_B.local
這邊就是說,讓可以連到Container B,並且使用其別名container_B.local進行連線。
不過這個方式,只能用api方式互傳。例如我今天在container B 裡面建立一個web server
我可以在Container A裡面,使用php 傳送 $test_result = trim(file_get_contents("http://container_B.local/api_name/));
這樣就可以達到互通
是不是很簡單,好棒棒啊!
如果覺得文章對您有幫助
歡迎按讚關注加分享
文章標籤
全站熱搜