大家好,打給後,他卡後

今天來個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/));
    這樣就可以達到互通 

 

是不是很簡單,好棒棒啊!

 

如果覺得文章對您有幫助

歡迎按讚關注加分享

 

 

 


arrow
arrow
    創作者介紹
    創作者 乂人夫阿豪乂 的頭像
    乂人夫阿豪乂

    肥豪與小丁の美食旅遊部落格

    乂人夫阿豪乂 發表在 痞客邦 留言(0) 人氣()