Multi-Container App

Container 間可以透過網路互相溝通。

可以透過 docker network 輕鬆建制 Container 間的網路。

Step 1. 建立 Docker Network

docker network create [NETWORK_NAME]

Step 2. 將 Container 納入同個 Docker Network 下

  • Contaienr A | Data Server

    docker run \
    	--network [NETWORK_NAME] \
    	--network-alias [ALIAS_FOR_CONTAINER_A]
    
    • --network-alias [ALIAS_FOR_CONTAINER_A] 定義了
  • Container B | App Server

    docker run \
    	--network [NETWORK_NAME] \
    	-e DATA_HOST=ALIAS_FOR_CONTAINER_A
    
    • DATA_HOST 被定義為 environment variable,需要在 app 中進行綁定,例如 axios.get('http://' + process.env.DATA_HOST + '/list')。但這樣做其實不太安全,可以參考這篇文章