thắc mắc Có nhất thiết phải kết nối các container trong một network

Lympho

Senior Member
Hiện tại em đang đi làm nhưng do dự án thiếu devops nên em làm luôn phần này. Các bác cho em hỏi là khi em không kết nối 2 container backend và db vào cùng một network thì backend vẫn connect tới db thông qua url 172.20.0.1 được thì có nhất thiết phải kết nối 2 thằng này thông qua 1 network không ? Và điểm lợi là gì ạ

via theNEXTvoz for iPhone
 

nikola_testla

Senior Member
Điểm khác nhau là chỗ IP đó, nó dynamic, deploy ở server này IP này, nhưng server kia thì IP kia, nếu config tay thì mệt mỏi. Còn ví dụ same network, khai báo trong cùng docker-compose yaml thì connect với nhau thông qua tên của container, thực ra bản chất cũng là IP address, nhưng khi connect nó tự resolve, thay vì phải config tay mỗi lần deploy ở những nơi khác nhau.
 

Lympho

Senior Member
Điểm khác nhau là chỗ IP đó, nó dynamic, deploy ở server này IP này, nhưng server kia thì IP kia, nếu config tay thì mệt mỏi. Còn ví dụ same network, khai báo trong cùng docker-compose yaml thì connect với nhau thông qua tên của container, thực ra bản chất cũng là IP address, nhưng khi connect nó tự resolve, thay vì phải config tay mỗi lần deploy ở những nơi khác nhau.
Trước em dùng docker compose cũng lấy đường dẫn là tên service db cơ mà h em tách riêng db ra rồi nên k dùng như thế nữa, em cảm ơn bác

via theNEXTvoz for iPhone
 

nikola_testla

Senior Member
Trước em dùng docker compose cũng lấy đường dẫn là tên service db cơ mà h em tách riêng db ra rồi nên k dùng như thế nữa, em cảm ơn bác
via theNEXTvoz for iPhone
Có lý do gì mà ko để được 2 container cùng network vậy bạn?
Nếu bắt buộc phải run khác network thì cách thuận tiện nhất bạn expose port của DB ra host, ví dụ DB là MySQL khi run command kiểu vậy: -p 3306:3306. Container của backend có thể connect vào DB thông qua cái network bridge default (subnet:

172.17.0.0/16), tức là vào IP của docker0:

172.17.0.1, config ở backend kiểu như: 172.17.0.1:3306. Subnet và IP kia là config default của Docker (nếu ko update config /etc/docker/daemon.json) nên có thể dùng luôn IP kia trong code.
 
Last edited:
Top