在Docker中,不同容器之間的通信是需要進行另外的設置的,否則無法訪問到其他容器中的服務。
首先,在創建一個新的容器時,使用--link
參數將該容器與其他容器進行鏈接,使得容器彼此之間可以相互訪問服務。
$ docker run --name=container_name --link=defined_name:alias_name image_name
其中defined_name
是擬定的服務名稱,alias_name
是該容器中實際能夠訪問到的名稱。
如果當前容器需要訪問另外一個容器的服務,則可以通過在/etc/hosts
文件中添加相應的條目來實現。
$ docker exec -it container_name bash # 進入指定容器
# echo "IP_address target_name" >>/etc/hosts # 添加hosts記錄
其中IP_address
是被訪問容器的IP地址,target_name
是被訪問容器的擬定服務名稱。
最后,在容器內訪問另外一個容器的服務時,直接使用target_name
即可。
$ curl http://target_name:port/api
這樣,就可以在Docker中實現容器間的通信了。