Khám phá mô hình và cách sử dụng Docker Compose để thiết lập cấu hình Netbox và Nginx làm Reverse Proxy. Hướng dẫn chi tiết giúp bạn dễ dàng thực hiện.
Docker Compose là một công cụ mạnh mẽ giúp triển khai các ứng dụng đa container một cách dễ dàng và hiệu quả. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình ứng dụng Netbox kết hợp với Nginx làm Reverse Proxy khi sử dụng Docker Compose. Mô hình triển khai bao gồm nhiều container, như Netbox, PostgreSQL, Redis và Nginx, giúp ứng dụng hoạt động mượt mà với hiệu suất tối ưu. Cùng khám phá từng bước thực hiện chi tiết và các tùy chỉnh cần thiết để cài đặt thành công trên Docker Host.
1. Mô hình docker compose mà tôi build
Mô hình này biểu thị cách cấu trúc của một ứng dụng NetBox triển khai trên Docker, với sự phối hợp giữa nhiều container khác nhau (NetBox, PostgreSQL, Redis, Nginx) và mạng nội bộ để cung cấp một ứng dụng quản lý mạng đầy đủ chức năng.
Docker Host:
- Đây là máy chủ vật lý hoặc máy ảo nơi Docker được cài đặt và chạy. Tất cả các container sẽ hoạt động bên trong máy chủ này.
Netbox_net (Network):
- Đây là mạng Docker nội bộ kết nối các container với nhau. Các container sẽ giao tiếp qua mạng này.
Container NetBox:
- Đây là container chính chứa ứng dụng NetBox (một công cụ quản lý mạng). NetBox sẽ sử dụng các dịch vụ từ những container khác như PostgreSQL và Redis để hoạt động.
Container PostgreSQL:
- Đây là container chứa cơ sở dữ liệu PostgreSQL. NetBox sẽ lưu trữ dữ liệu của nó trong cơ sở dữ liệu này.
Container Redis:
- Redis là hệ thống lưu trữ bộ nhớ tạm (cache). Container Redis sẽ được sử dụng bởi NetBox để cải thiện hiệu năng, lưu trữ dữ liệu tạm thời.
Container Nginx:
- Nginx là một máy chủ web được sử dụng để xử lý yêu cầu từ phía người dùng đến NetBox. Container này sẽ lắng nghe và chuyển tiếp các yêu cầu HTTP/HTTPS đến các thành phần NetBox tương ứng.
Expose Ports:
- Cổng 80 và 443 của container Nginx được mở ra cho mạng bên ngoài, cho phép người dùng có thể truy cập vào ứng dụng NetBox từ trình duyệt web thông qua HTTP hoặc HTTPS.
- Cổng ens160 là cổng mạng của máy chủ Docker host, cho phép các container kết nối với mạng bên ngoài.
2. Hướng dẫn sử dụng Docker Compose
Đầu tiên bạn sẽ cần download repo này về. Lưu ý bắt buộc phải di chuyển đến thư mục /opt nếu không file active sẽ có thể bị lỗi.
cd /opt/ git clone https://github.com/thanhquang99/Docker |
Tiếp theo ta sẽ chạy file docker compose
cd /opt/Docker/netbox/ docker compose up |
Ta có thể tùy chỉnh biến trong file docker compose để thay đổi user và password của netbox hay postgres
vi /opt/Docker/netbox/docker-compose.yml |
Đợi thời gian khoảng 5 phút để docker compose chạy xong ta sẽ tạo thêm 1 terminal mới ctrl +shirt +u để tiến hành active bao gòm tạo super user và cấu hình nginx làm reverse proxy.
cd /opt/Docker/netbox/ chmod +x active.sh . active.sh |
Bây giờ ta cần nhập thông tin từ màn hình vào (yêu cầu đúng cú pháp được gợi ý), thông tin sẽ bao gồm tên miền của netbox, gmail, user và password của netbox.
Bây giờ chỉ cần đợi cho quá trình hoàn tất. Sau khi quá trình hoàn tất nhưng mà bạn quên thông tin thì vẫn có thể xem lại.
root@Quang-docker:~# cat thongtin.txt Sửa file hosts thành 172.16.66.41 quang.netbox.com Link truy cập netbox: https://quang.netbox.com Netbox User: admin Netbox password: fdjhuixtyy5dpasfn netbox mail: quang@gmail.com Sửa file hosts thành 172.16.66.41 quang.netbox.com Link truy cập netbox: https://quang.netbox.com Netbox User: fdjhuixtyy5dpasfn Netbox password: fdjhuixtyy5dpasfn netbox mail: quang@gmail.com |
Tổng kết
Trên đây là hướng dẫn của mình cho các bạn sử dụng docker netbox kết hợp với nginx để build một cách nhanh chóng với chỉ một vài lệnh mà ai cũng có thể làm được. Bài viết trước là hướng dẫn các bạn build theo nhà phát triển mà không cần nginx, bạn có thể xem lại ở đây. Nhưng trong bài viết này mình đã build thêm nginx và ssl. Việc có thêm ssl chính là để có thể mã hóa dữ liệu, chính việc mã hóa dữ liệu là bước bảo mật đầu tiên để phòng tránh tấn công mạng.