喔 ! 阿舍試了才知,原來,要被 Link 的 Container 要先活著,別的 Conatiner 才能串接的到它,不然,就會出現 "Could not get container for ..." 的訊息,所以,像阿舍這樣想偷懶而要利用 Docker run 的 --link 選項來互串是件不可能的事哩 ... 因此,如果想要讓二個 Container 可以互相串連的話,還是得回到建立 Docker 專用網路的方法才行哩 ~~ (如果沒用 --link 選項的話,可參考阿舍寫的這一篇哩 !)
講到新建 Docker 網路這件事,阿舍一想到就覺得好像很煩人的樣子,但是,事實證明,是阿舍想多了,建立一個專用的 Docker 網路,就只要一行指令就可以搞定了,以阿舍要建立一個名為 cdb-net 的網路為例,就只要執行下面這一行就可以了哩,然後,不需要的時候,用下面的第二行指令就可以輕易的移除 ...
$ docker network create cdb-net
$ docker network rm cdb-net
建好網路之後,就是要把 Container 執行在這個新建的網路裡,而作法和一般執行 docker run 的方式一模一樣,就只差了要多用一個 --net 選項來指定這個 Container 要使用的網路即可,所以,阿舍當要把上面提到的 couchdb 和 couchdb-lucene 二個 Container 放在剛剛新增的 cdb-net 網路的話,就只要執行下面這二行指令就可以讓這二個 Container 互相串接了哩 ...
$ docker run --name couchdb -p 5984:5984 --net=couchdb-net -d klaemo/couchdb:1.6.1
$ docker run --name couchdb-lucene -p 5985:5985 --net=couchdb-net -d klaemo/couchdb-lucene
阿舍本來以為,還得要再加上一佪 --net-alias 的選項來選 Container 加上別名才能像 --link 選項的效果一樣,可以用名稱來找到 Container,但是,阿舍試了一下,結果,是不需的,後來,阿舍查了一下 docker 的說明,似乎是因為新版的 docker 內建有 DNS 的功能,預設會直接用 --name 選項的名稱來當 Container 的 Host 名稱的樣子,這個阿舍還要再查一下,不過,確定是不需要用到 --net-alias 選項哩 ...
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁