Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

MongoDB là một trong những cơ sở dữ liệu NoQuery phổ biến nhất hiện nay. Và container cung cấp sử dụng ứng dụng dễ dàng và khả năng mở rộng. Trong bài viết này, tôi sẽ chỉ cho bạn cách:

  • Định cấu hình MongoDB như một container trong Docker
  • Thiết lập nền tảng Docker với Docker-Compose
  • Tạo một tệp docker-compose để tạo thùng chứa MongoDB
  • Và nhiều hơn nữa

Phần cuối cùng của hướng dẫn này sẽ xem xét các cấu hình nâng cao. Những điều này có thể cung cấp cho bạn một cái nhìn thoáng qua về khả năng mở rộng của một dự án container. Vì vậy, chúng tôi sẽ tạo ra một dự án độc lập với phiên bản MongoDB và giao diện web Mongo Express trên mạng chuyên dụng và khối lượng Docker để tối đa hóa tính di động của dự án.

Bắt đầu nào.

(Bài viết này là một phần của Hướng dẫn MongoDB của chúng tôi. Sử dụng menu bên phải để điều hướng.)

Container Docker & MongoDB

Docker là một công cụ để tạo, triển khai và chạy các ứng dụng bằng cách sử dụng các container một cách dễ dàng. Một container là một đơn vị phần mềm tiêu chuẩn có thể được sử dụng để đóng gói các ứng dụng và tất cả các phụ thuộc vào một gói duy nhất. Những container này có thể được chạy trên bất kỳ nền tảng máy chủ nào bất kể cấu hình cơ bản hoặc cấu trúc phần cứng.

Docker có thể được sử dụng để chạy các trường hợp MongoDB. Thiết lập MongoDB làm container cho phép người dùng tạo cơ sở dữ liệu NoSQL di động và có thể mở rộng. Một ví dụ MongoDB được chứa chứa chính xác giống như một ví dụ MongoDB không được chứa mà không phải lo lắng về cấu hình cơ bản.

Cài đặt Docker

Trong phần này, chúng tôi sẽ thiết lập cài đặt Docker đơn giản để chạy các container trên máy chủ dựa trên Ubuntu. Chúng tôi có thể nhận được các gói cài đặt Docker từ kho lưu trữ Docker chính thức. Dưới đây là các bước cài đặt:

  1. Cập nhật các gói hiện có.
sudo apt update && sudo apt upgrade -y

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Cài đặt các gói điều kiện tiên quyết.
sudo apt install apt-transport-https ca-certificates curl software-properties-common

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Thêm khóa GPG từ kho lưu trữ Docker chính thức.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Thêm kho lưu trữ Docker chính thức vào các nguồn APT.
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Cập nhật danh sách gói Ubuntu.
sudo apt update

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Xác minh kho lưu trữ Docker.
apt-cache policy docker-ce

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Cài đặt phiên bản cộng đồng Docker.
sudo apt install docker-ce

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Kiểm tra trạng thái của cài đặt với lệnh sau. Nếu trạng thái dịch vụ trả về hoạt động (chạy), Docker sẽ được cài đặt và hoạt động thành công trên hệ thống.service status returns active (running), Docker is successfully installed and active on the system.
sudo systemctl status docker

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Cài đặt Docker Compose

Chúng ta có thể sử dụng giao diện dòng lệnh (CLI) để tạo và quản lý các thùng chứa Docker. Tuy nhiên, CLI có thể tẻ nhạt khi xử lý nhiều container và cấu hình.

Docker Compose cho phép người dùng lấy nhiều container và tích hợp chúng vào một ứng dụng. Docker Compose sử dụng định dạng YAML để tạo các tệp Compose có thể dễ dàng thực thi bằng cách sử dụng các lệnh docker-compose Up hoặc xuống sẽ tạo hoặc xóa tất cả các thùng chứa và cấu hình trong một tệp soạn thảo, tương ứng.

Hãy để cài đặt Docker Compose trên máy chủ Ubuntu.

  1. Cài đặt bản phát hành ổn định hiện tại của Docker Compose.
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Áp dụng các quyền thực thi cho nhị phân đã tải xuống.
>sudo chmod +x /usr/local/bin/docker-compose

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

  1. Xác minh cài đặt Docker Compose.
sudo apt install apt-transport-https ca-certificates curl software-properties-common
0

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Thiết lập một thùng chứa MongoDB

Phần này sẽ bao gồm cách thiết lập một thùng chứa MongoDB bằng cách sử dụng tệp Docker Compose.

Trước khi tạo tệp Compose, hãy để tìm kiếm hình ảnh hộp chứa MongoDB chính thức bằng lệnh tìm kiếm.search command.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
1

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Kết quả tìm kiếm cho chúng ta thấy rằng một hình ảnh container MongoDB chính thức được gọi là Mongo tồn tại trong Cơ quan đăng ký container Docker.

Theo mặc định, container MongoDB lưu trữ cơ sở dữ liệu trong thư mục /data /db trong container.

Tiếp theo, chúng ta cần tạo một thư mục có tên là MongoDB, để giữ tệp docker-compose. Chúng tôi sẽ tạo một thư mục khác có tên là cơ sở dữ liệu trực tuyến bên trong thư mục của MongoDB, để ánh xạ tới vị trí cơ sở dữ liệu của container. Điều này sẽ cho phép truy cập cục bộ vào cơ sở dữ liệu. Chúng tôi sử dụng toán tử -PV để tạo các thư mục mẹ đó.-pv operator to create those parent folders.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
2

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Tệp docker-compose.yml sau đây sẽ được tạo trong thư mục MongoDB của Google để xây dựng thùng chứa MongoDB.

docker-compose.yml

sudo apt install apt-transport-https ca-certificates curl software-properties-common
3

Chúng tôi đã sử dụng phiên bản 3.8 để tạo tệp soạn thảo ở trên. Phiên bản soạn thảo tương quan trực tiếp với:

  • Tùy chọn nào có sẵn trong tệp soạn thảo
  • Phiên bản Docker Engine được hỗ trợ tối thiểu

Trong trường hợp này, công cụ Docker Docker 19.03.0 hoặc mới hơn.

Trong tệp soạn thảo, chúng tôi đã tạo một dịch vụ gọi là MongoDB bằng cách sử dụng Docker Image Mongo. Chúng tôi đã đặt tên cho container, MongoDB, và ánh xạ thư mục cơ sở dữ liệu trong container vào thư mục cơ sở dữ liệu cục bộ (/home/barbry/MongoDB/cơ sở dữ liệu). Những loại ánh xạ này được gọi là khối lượng gắn kết.bind-mount volumes.

Các biến môi trường được sử dụng để xác định người dùng của người dùng và nhóm của người dùng và nhóm của container. Cuối cùng, chúng tôi đã ánh xạ cổng cục bộ 27017 lên cổng nội bộ 27017. Sau đó, chính sách khởi động lại được đặt để khởi động lại trừ khi người dùng dừng lại.

Ở đây, cấu trúc tệp của dự án:

sudo apt install apt-transport-https ca-certificates curl software-properties-common
4

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Chuyển đến thư mục MongoDB của người Viking và chạy lệnh docker-compose Up để bắt đầu thùng chứa MongoDB. Toán tử -D chạy thùng chứa tách ra như một quá trình nền.docker-compose up command to start the MongoDB container. The -d operator runs the detached container as a background process.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
5

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Lệnh UP sẽ kéo hình ảnh Mongo từ sổ đăng ký Docker và tạo thùng chứa bằng các tham số đã cho trong tệp docker-compose.yml.up command will pull the mongo image from the docker registry and create the container using the given parameters in the docker-compose.yml file.

Hãy để xác minh nếu bộ chứa đang chạy và thư mục cục bộ được điền với các lệnh sau. Toán tử -a sẽ hiển thị tất cả các container trong hệ thống bất kể trạng thái của chúng.-a operator will display all the containers within the system regardless of their status.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
6

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

sudo apt install apt-transport-https ca-certificates curl software-properties-common
7

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Tương tác với thùng chứa MongoDB

Sử dụng lệnh docker Exec, chúng ta có thể truy cập vào thiết bị đầu cuối của thùng chứa MongoDB. Khi container chạy ở chế độ tách rời, chúng tôi sẽ sử dụng thiết bị đầu cuối tương tác Docker để thiết lập kết nối.exec command, we can access the terminal of the MongoDB container. As the container runs in a detached mode, we will use the Docker interactive terminal to establish the connection.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
8

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Trong thiết bị đầu cuối bash của container, chúng tôi gọi lệnh Mongo để truy cập MongoDB. Chúng tôi sẽ tạo ra một cơ sở dữ liệu có tên là Thực phẩm và một bộ sưu tập có tên là Fruits Fruits, cùng với ba tài liệu.

  1. Chuyển cơ sở dữ liệu.
sudo apt install apt-transport-https ca-certificates curl software-properties-common
9
  1. Tạo bộ sưu tập.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
0
  1. Chèn tài liệu
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
1

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Tìm kiếm các tài liệu bằng lệnh tìm:find command:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Container MongoDB sẽ hoạt động giống như bất kỳ cài đặt MongoDB bình thường nào mà không có bất kỳ mối quan tâm nào về cấu hình phần mềm và phần cứng cơ bản. Sử dụng lệnh thoát, chúng ta có thể thoát ra cả vỏ MongoDB và vỏ container.exit command, we can exit both the MongoDB shell and container shell.

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Kết nối bên ngoài với hộp chứa MongoDB

Trong khi tạo thùng chứa MongoDB, chúng tôi đã ánh xạ cổng MongoDB bên trong lên cổng tương ứng trong máy chủ, để lộ container MongoDB vào các mạng bên ngoài.

Ví dụ sau đây cho thấy cách chúng ta có thể kết nối với container từ điểm cuối bên ngoài bằng cách chỉ cần trỏ lệnh Mongo đến máy chủ và cổng thích hợp.mongo command to the appropriate server and port.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Lệnh Find sẽ tìm kiếm bộ sưu tập trái cây và các tài liệu của nó để xác minh rằng chúng tôi được kết nối với thùng chứa MongoDB.find command will search for the fruits collection and its documents to verify that we are connected to the MongoDB container.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4

Khả năng phục hồi dữ liệu

Chúng tôi đã ánh xạ cơ sở dữ liệu đến một thư mục cục bộ. Kết quả là, ngay cả khi container bị xóa, dữ liệu đã lưu trong thư mục cục bộ có thể được sử dụng để tạo lại một thùng chứa MongoDB mới.

Hãy để thử nghiệm điều đó. Tốt:

  • Xóa container bằng cách sử dụng docker-compose Downdocker-compose down
  • Xóa các hình ảnh liên quan.
  • Tạo lại cơ sở dữ liệu MongoDB mới bằng cách sử dụng tệp Compose và các tệp cơ sở dữ liệu cục bộ.

Loại bỏ các thùng chứa MongoDB.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
5

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Hủy bỏ hình ảnh Mongo địa phương.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
6

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Xác minh các tệp cơ sở dữ liệu cục bộ.

Từ đầu ra bên dưới, chúng tôi có thể xác định rằng mặc dù chúng tôi đã loại bỏ các thùng chứa, dữ liệu được ánh xạ tới một thư mục cục bộ không bị xóa.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
7

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Tái tạo một thùng chứa MongoDB mới. Bây giờ, chúng tôi sẽ tạo lại container bằng cách sử dụng tệp docker-compose.yml ban đầu. Chúng tôi thực thi lệnh sau trong thư mục MongoDB.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
5

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Xác minh dữ liệu trong thùng chứa MongoDB. Bây giờ, chúng ta hãy truy cập vào vỏ bash trong thùng chứa và kiểm tra các bộ sưu tập của Fruits Fruits.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
8

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
0

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Kết quả chỉ ra rằng container mới được tạo với thông tin cơ sở dữ liệu cục bộ được liên kết với container mới.

Ngoài ra, chúng ta chỉ có thể di chuyển container bằng cách di chuyển cấu trúc thư mục cục bộ đến một máy chủ mới và tạo một thùng chứa bằng tệp docker-compose.yml. Khối lượng Docker có thể được sử dụng thay vì lưu dữ liệu cục bộ để tăng tính di động của cơ sở dữ liệu.

Tệp nhật ký container

Mỗi container tạo ra các nhật ký có thể được sử dụng để theo dõi và gỡ lỗi chính nó. Chúng ta có thể truy cập nhật ký container bằng lệnh nhật ký Docker với tên container sẽ được theo dõi.docker logs command with the container name to be monitored.

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
1

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Sử dụng container nâng cao

Trong phần này, chúng tôi sẽ tạo một thùng chứa MongoDB an toàn, yêu cầu tên người dùng và mật khẩu để truy cập cơ sở dữ liệu.

Trong các ví dụ trước, chúng tôi đã ánh xạ dữ liệu cơ sở dữ liệu vào một thư mục cục bộ. Tuy nhiên, điều này là tẻ nhạt và cần phải can thiệp thủ công khi di chuyển thùng chứa Docker. Sử dụng khối lượng Docker, chúng ta có thể tạo khối lượng liên tục bản địa Docker có thể dễ dàng chuyển giữa các cài đặt Docker.

Mặc dù chúng ta có thể sử dụng CLI để thao túng phiên bản MongoDB, GUI sẽ là một lựa chọn thuận tiện hơn để làm điều đó. Mongo Express là một giao diện quản trị MongoDB dựa trên web cũng có thể được chạy như một ứng dụng được chứa.

Tệp Docker-Compose có ích như một tệp YAML duy nhất nắm bắt được tất cả các yêu cầu.

docker-compose.yml

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
2

Bây giờ, hãy để chia nhỏ tệp soạn thảo được đưa ra ở trên. Đầu tiên, chúng tôi đã tạo hai dịch vụ:

  • MongoDB
  • mongo-express

Dịch vụ MongoDB

Tên người dùng gốc và mật khẩu của thùng chứa MongoDB được cấu hình bằng các biến môi trường sau.

  • MONGO_INITDB_ROOT_USERNAME
  • MONGO_INITDB_ROOT_PASSWORD

Khối lượng dữ liệu được ánh xạ tới khối lượng Docker-Data Docker MongoDB và mạng được định nghĩa là MongoDB_Network trong khi mở cổng 27017.

Dịch vụ Mongo-Express

Các biến môi trường của thùng chứa mongo là:

  • ME_CONFIG_MONGODB_SERVER - Dịch vụ MongoDB (MongoDB)
  • Me_config_mongodb_enable_admin - cho phép truy cập vào tất cả các cơ sở dữ liệu dưới dạng quản trị viên
  • ME_CONFIG_MONGODB_ADMINUSERNAME - Tên người dùng quản trị của cơ sở dữ liệu MongoDB
  • Me_config_mongodb_adminpassword - Mật khẩu quản trị của cơ sở dữ liệu MongoDB
  • ME_CONFIG_BASICUTH_USERNAME-Giao diện Web Mongo-Express Access Tên người dùng
  • ME_CONFIG_BASICUTH_PASSWORD-Mật khẩu truy cập giao diện web Mongo-Express

Ngoài ra, chúng tôi đã cấu hình dịch vụ mong muốn Mongo phụ thuộc vào dịch vụ MongoDB. Mạng được gán cùng một mongDB_Network và các khối lượng được ánh xạ tới khối lượng dữ liệu MongoDB. Sau đó, cổng 8081 được tiếp xúc để cho phép truy cập vào giao diện web.

Cả hai dịch vụ đều được theo dõi bằng cách sử dụng kiểm tra sức khỏe của Docker. Dịch vụ MongoDB sẽ ping cơ sở dữ liệu MongoDB, trong khi dịch vụ Mongo-Express sẽ cố gắng truy cập trang web bằng thông tin đăng nhập đã cho.

Cuối cùng, chúng tôi đã xác định một tập gọi là MongoDB-Data và một mạng có tên là MongoDB_Network cho dự án.

Bắt đầu Docker Compose File.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
5

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Đầu ra trên không chứa lỗi. Vì vậy, chúng tôi có thể giả định rằng tất cả các dịch vụ được tạo thành công. Khi chúng tôi đã thêm kiểm tra sức khỏe cho cả hai dịch vụ, chúng tôi có thể xác minh nó bằng cách sử dụng lệnh Docker PS.ps command.

sudo apt install apt-transport-https ca-certificates curl software-properties-common
6

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Lệnh Docker PS in trạng thái sức khỏe của container. Tình trạng sức khỏe này chỉ có sẵn nếu bạn đã xác định kiểm tra sức khỏe cho container.ps command prints the health status of the container. This health status is only available if you have defined a health check for the container.

Mongo Express

Bây giờ, hãy để Lừa truy cập giao diện web Mongo Express bằng IP máy chủ (http://10.10.10.60:8081).

Hướng dẫn docker-compose mongodb environment variables - các biến môi trường mongodb docker-comp

Giao diện Mongo Express cung cấp một cách thuận tiện để tương tác với cơ sở dữ liệu MongoDB. Giao diện Mongo Express cũng cung cấp trạng thái tổng quan về thể hiện máy chủ MongoDB, cung cấp chức năng giám sát đơn giản.

Điều đó kết thúc hướng dẫn này.

Đọc liên quan

  • BMC Machine Learning & Big Data Blog
  • MongoDB vs Cassandra: Cơ sở dữ liệu NoQuery so sánh, một phần của Hướng dẫn MongoDB của chúng tôi
  • Lệnh docker: một bảng gian lận
  • Cách giới thiệu các container docker trong Enterprise
  • Trạng thái container: Tóm tắt báo cáo

Những bài đăng này là của riêng tôi và không nhất thiết phải đại diện cho vị trí, chiến lược hoặc ý kiến ​​của BMC.

Xem một lỗi hoặc có một gợi ý? Vui lòng cho chúng tôi biết bằng cách gửi email.