ಡಾಕರ್ ಕಂಪೋಸ್ ಮಾಡಲು ಒಂದು ಬಿಗಿನರ್ಸ್ ಗೈಡ್

ಲೇಖನದ ಲೇಖಕರು, ನಾವು ಇಂದು ಪ್ರಕಟಿಸುತ್ತಿರುವ ಅನುವಾದ, ಇದು ಡಾಕರ್ ಕಂಪೋಸ್ ಕಲಿಯಲು ಬಯಸುವ ಮತ್ತು ಡಾಕರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ತಮ್ಮ ಮೊದಲ ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರಚಿಸುವತ್ತ ಸಾಗುತ್ತಿರುವ ಡೆವಲಪರ್‌ಗಳಿಗಾಗಿ ಉದ್ದೇಶಿಸಲಾಗಿದೆ ಎಂದು ಹೇಳುತ್ತಾರೆ. ಈ ವಸ್ತುವಿನ ಓದುಗರು ಡಾಕರ್‌ನ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ತಿಳಿದಿದ್ದಾರೆ ಎಂದು ಭಾವಿಸಲಾಗಿದೆ. ಇದು ಹಾಗಲ್ಲದಿದ್ದರೆ, ನೀವು ನೋಡಬಹುದು ಇದು ವಸ್ತುಗಳ ಸರಣಿ ಇದು ಕುಬರ್ನೆಟ್ಸ್ ಬೇಸಿಕ್ಸ್ ಜೊತೆಗೆ ಡಾಕರ್ ಬೇಸಿಕ್ಸ್ ಅನ್ನು ಒಳಗೊಂಡ ಪೋಸ್ಟ್, ಮತ್ತು ಇದು ಆರಂಭಿಕರಿಗಾಗಿ ಲೇಖನ.

ಡಾಕರ್ ಕಂಪೋಸ್ ಮಾಡಲು ಒಂದು ಬಿಗಿನರ್ಸ್ ಗೈಡ್

ಡಾಕರ್ ಕಂಪೋಸ್ ಎಂದರೇನು?

ಡಾಕರ್ ಕಂಪೋಸ್ ಎನ್ನುವುದು ಡಾಕರ್‌ನೊಂದಿಗೆ ಸೇರಿಸಲಾದ ಸಾಧನವಾಗಿದೆ. ಯೋಜನೆಯ ನಿಯೋಜನೆಗೆ ಸಂಬಂಧಿಸಿದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಇದನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.

ಡಾಕರ್‌ನ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಕಲಿಯುವಾಗ, ಸ್ವಾಯತ್ತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮತ್ತು ಅವಲಂಬಿಸದ ಸರಳ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ರಚನೆಯನ್ನು ನೀವು ಎದುರಿಸಿರಬಹುದು, ಉದಾಹರಣೆಗೆ, ಬಾಹ್ಯ ಡೇಟಾ ಮೂಲಗಳು ಅಥವಾ ಕೆಲವು ಸೇವೆಗಳ ಮೇಲೆ. ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಅಂತಹ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಅಪರೂಪ. ನೈಜ ಯೋಜನೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಒಟ್ಟಾಗಿ ಕೆಲಸ ಮಾಡುವ ಸಂಪೂರ್ಣ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ.

ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ನಿಯೋಜಿಸುವಾಗ ನೀವು ಡಾಕರ್ ಕಂಪೋಸ್ ಅನ್ನು ಬಳಸಬೇಕಾದರೆ ನಿಮಗೆ ಹೇಗೆ ಗೊತ್ತು? ಇದು ವಾಸ್ತವವಾಗಿ ತುಂಬಾ ಸರಳವಾಗಿದೆ. ಈ ಯೋಜನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನೀವು ಬಹು ಸೇವೆಗಳನ್ನು ಬಳಸಿದರೆ, ಡಾಕರ್ ಸಂಯೋಜನೆಯು ಸೂಕ್ತವಾಗಿ ಬರಬಹುದು. ಉದಾಹರಣೆಗೆ, ಬಳಕೆದಾರರನ್ನು ದೃಢೀಕರಿಸಲು ಡೇಟಾಬೇಸ್‌ಗೆ ಸಂಪರ್ಕಿಸಬೇಕಾದ ವೆಬ್‌ಸೈಟ್ ಅನ್ನು ಅವರು ರಚಿಸುವ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ. ಅಂತಹ ಯೋಜನೆಯು ಎರಡು ಸೇವೆಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದು - ಸೈಟ್ನ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಖಾತ್ರಿಪಡಿಸುವ ಒಂದು, ಮತ್ತು ಡೇಟಾಬೇಸ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಜವಾಬ್ದಾರಿ.

ಡಾಕರ್ ಕಂಪೋಸ್ ತಂತ್ರಜ್ಞಾನ, ಅದನ್ನು ಸರಳೀಕೃತ ರೀತಿಯಲ್ಲಿ ವಿವರಿಸಲು, ಒಂದು ಆಜ್ಞೆಯೊಂದಿಗೆ ಅನೇಕ ಸೇವೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಡಾಕರ್ ಮತ್ತು ಡಾಕರ್ ಸಂಯೋಜನೆಯ ನಡುವಿನ ವ್ಯತ್ಯಾಸ

ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರೂಪಿಸುವ ಪ್ರತ್ಯೇಕ ಕಂಟೈನರ್‌ಗಳನ್ನು (ಸೇವೆಗಳು) ನಿರ್ವಹಿಸಲು ಡಾಕರ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರೂಪಿಸುವ ಬಹು ಧಾರಕಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ನಿರ್ವಹಿಸಲು ಡಾಕರ್ ಕಂಪೋಸ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಉಪಕರಣವು ಡಾಕರ್‌ನಂತೆಯೇ ಅದೇ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ನೀಡುತ್ತದೆ, ಆದರೆ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಡಾಕರ್ ಕಂಪೋಸ್ ಮಾಡಲು ಒಂದು ಬಿಗಿನರ್ಸ್ ಗೈಡ್
ಡಾಕರ್ (ಏಕ ಕಂಟೇನರ್) ಮತ್ತು ಡಾಕರ್ ಕಂಪೋಸ್ (ಬಹು ಪಾತ್ರೆಗಳು)

ಡಾಕರ್ ಸಂಯೋಜನೆಗಾಗಿ ವಿಶಿಷ್ಟ ಬಳಕೆಯ ಸಂದರ್ಭ

ಡಾಕರ್ ಕಂಪೋಸ್ ಬಲಗೈಯಲ್ಲಿ, ಸಂಕೀರ್ಣ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ನಿಯೋಜಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಅತ್ಯಂತ ಶಕ್ತಿಶಾಲಿ ಸಾಧನವಾಗಿದೆ. ಈಗ ನಾವು ಡಾಕರ್ ಕಂಪೋಸ್‌ನ ಪ್ರಾಯೋಗಿಕ ಬಳಕೆಯ ಉದಾಹರಣೆಯನ್ನು ನೋಡುತ್ತೇವೆ, ಅದರ ವಿಶ್ಲೇಷಣೆಯು ಡಾಕರ್ ಸಂಯೋಜನೆಯನ್ನು ಬಳಸುವುದರಿಂದ ನಿಮಗೆ ನೀಡುವ ಪ್ರಯೋಜನಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ನೀವು ವೆಬ್ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಡೆವಲಪರ್ ಆಗಿದ್ದೀರಿ ಎಂದು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ಈ ಯೋಜನೆಯು ಎರಡು ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಮೊದಲನೆಯದು ವ್ಯಾಪಾರಸ್ಥರಿಗೆ ಕೆಲವೇ ಕ್ಲಿಕ್‌ಗಳಲ್ಲಿ ಆನ್‌ಲೈನ್ ಸ್ಟೋರ್‌ಗಳನ್ನು ರಚಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಎರಡನೆಯದು ಗ್ರಾಹಕರ ಬೆಂಬಲವನ್ನು ಗುರಿಯಾಗಿರಿಸಿಕೊಂಡಿದೆ. ಈ ಎರಡು ಸೈಟ್‌ಗಳು ಒಂದೇ ಡೇಟಾಬೇಸ್‌ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತವೆ.

ನಿಮ್ಮ ಯೋಜನೆಯು ಹೆಚ್ಚು ಹೆಚ್ಚು ಜನಪ್ರಿಯವಾಗುತ್ತಿದೆ ಮತ್ತು ಅದು ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸರ್ವರ್‌ನ ಶಕ್ತಿಯು ಇನ್ನು ಮುಂದೆ ಸಾಕಾಗುವುದಿಲ್ಲ ಎಂದು ಅದು ತಿರುಗುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ, ನೀವು ಸಂಪೂರ್ಣ ಯೋಜನೆಯನ್ನು ಮತ್ತೊಂದು ಯಂತ್ರಕ್ಕೆ ಸರಿಸಲು ನಿರ್ಧರಿಸುತ್ತೀರಿ.

ದುರದೃಷ್ಟವಶಾತ್, ನೀವು ಡಾಕರ್ ಸಂಯೋಜನೆಯಂತಹದನ್ನು ಬಳಸಿಲ್ಲ. ಆದ್ದರಿಂದ, ನೀವು ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಏನನ್ನೂ ಮರೆಯುವುದಿಲ್ಲ ಎಂದು ಆಶಿಸುತ್ತಾ, ನೀವು ಸೇವೆಗಳನ್ನು ಒಂದೊಂದಾಗಿ ವರ್ಗಾಯಿಸಬೇಕು ಮತ್ತು ಮರುಸಂರಚಿಸಬೇಕು.

ನೀವು ಡಾಕರ್ ಕಂಪೋಸ್ ಅನ್ನು ಬಳಸಿದರೆ, ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಹೊಸ ಸರ್ವರ್‌ಗೆ ಸ್ಥಳಾಂತರಿಸುವುದು ಕೆಲವು ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸುವ ಮೂಲಕ ಪರಿಹರಿಸಬಹುದಾದ ವಿಷಯವಾಗಿದೆ. ಹೊಸ ಸ್ಥಳಕ್ಕೆ ಯೋಜನೆಯ ವರ್ಗಾವಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು, ನೀವು ಕೆಲವು ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮಾತ್ರ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾಬೇಸ್‌ನ ಬ್ಯಾಕಪ್ ನಕಲನ್ನು ಹೊಸ ಸರ್ವರ್‌ಗೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.

ಡಾಕರ್ ಸಂಯೋಜನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದು

ನಾವು ಡಾಕರ್ ಕಂಪೋಸ್ ಅನ್ನು ಯಾವುದಕ್ಕಾಗಿ ಬಳಸಲಿದ್ದೇವೆ ಎಂಬುದು ಈಗ ನಿಮಗೆ ತಿಳಿದಿದೆ, ಈ ಉಪಕರಣವನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಮೊದಲ ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರಚಿಸುವ ಸಮಯ ಇದು. ಅವುಗಳೆಂದರೆ, ನಾವು ಪೈಥಾನ್‌ನಲ್ಲಿ ಸಣ್ಣ ವೆಬ್‌ಸೈಟ್ (ಸರ್ವರ್) ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದೇವೆ ಅದು ಪಠ್ಯದ ತುಣುಕನ್ನು ಹೊಂದಿರುವ ಫೈಲ್ ಅನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡಬಹುದು. ಈ ಫೈಲ್ ಅನ್ನು ಪೈಥಾನ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ಪ್ರೋಗ್ರಾಂ (ಕ್ಲೈಂಟ್) ಮೂಲಕ ಸರ್ವರ್‌ನಿಂದ ವಿನಂತಿಸಲಾಗಿದೆ. ಸರ್ವರ್‌ನಿಂದ ಫೈಲ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಪ್ರೋಗ್ರಾಂ ಅದರಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಪಠ್ಯವನ್ನು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸುತ್ತದೆ.

ನೀವು ಡಾಕರ್ ಬಗ್ಗೆ ಮೂಲಭೂತ ತಿಳುವಳಿಕೆಯನ್ನು ಹೊಂದಿದ್ದೀರಿ ಮತ್ತು ನೀವು ಈಗಾಗಲೇ ಡಾಕರ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೀರಿ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ.

ಯೋಜನೆಯಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸೋಣ.

▍1. ಯೋಜನೆಯನ್ನು ರಚಿಸುವುದು

ನಿಮ್ಮ ಮೊದಲ ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸಲು, ಪ್ರಾಜೆಕ್ಟ್ ಫೋಲ್ಡರ್ ಅನ್ನು ರಚಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಲು ನಾನು ನಿಮಗೆ ಸಲಹೆ ನೀಡುತ್ತೇನೆ. ಇದು ಕೆಳಗಿನ ಫೈಲ್‌ಗಳು ಮತ್ತು ಫೋಲ್ಡರ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರಬೇಕು:

  • ಕಡತ docker-compose.yml. ಇದು ಡಾಕರ್ ಕಂಪೋಸ್ ಫೈಲ್ ಆಗಿದ್ದು, ಸೇವೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಅಗತ್ಯವಿರುವ ಸೂಚನೆಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.
  • ಫೋಲ್ಡರ್ server. ಇದು ಸರ್ವರ್ ಚಾಲನೆಯಲ್ಲಿರಲು ಅಗತ್ಯವಾದ ಫೈಲ್‌ಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ.
  • ಫೋಲ್ಡರ್ client. ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು ಇಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ.

ಪರಿಣಾಮವಾಗಿ, ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಮುಖ್ಯ ಫೋಲ್ಡರ್‌ನ ವಿಷಯಗಳು ಈ ರೀತಿ ಇರಬೇಕು:

.
├── client/
├── docker-compose.yml
└── server/
2 directories, 1 file

▍2. ಸರ್ವರ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ

ಇಲ್ಲಿ, ಸರ್ವರ್ ರಚಿಸುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ, ಡಾಕರ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಕೆಲವು ಮೂಲಭೂತ ವಿಷಯಗಳನ್ನು ನಾವು ಸ್ಪರ್ಶಿಸುತ್ತೇವೆ.

2a. ಫೈಲ್ಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ

ಫೋಲ್ಡರ್‌ಗೆ ಹೋಗಿ server ಮತ್ತು ಅದರಲ್ಲಿ ಈ ಕೆಳಗಿನ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸಿ:

  • ಕಡತ server.py. ಇದು ಸರ್ವರ್ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ.
  • ಕಡತ index.html. ಈ ಫೈಲ್ ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ ಔಟ್‌ಪುಟ್ ಮಾಡಬೇಕಾದ ಪಠ್ಯದ ತುಂಡನ್ನು ಹೊಂದಿರುತ್ತದೆ.
  • ಕಡತ Dockerfile. ಇದು ಸರ್ವರ್ ಪರಿಸರವನ್ನು ರಚಿಸಲು ಅಗತ್ಯವಿರುವ ಸೂಚನೆಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಡಾಕರ್ ಫೈಲ್ ಆಗಿದೆ.

ನಿಮ್ಮ ಫೋಲ್ಡರ್‌ನ ವಿಷಯಗಳು ಹೀಗಿರಬೇಕು server/:

.
├── Dockerfile
├── index.html
└── server.py
0 directories, 3 files

2b. ಪೈಥಾನ್ ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಲಾಗುತ್ತಿದೆ.

ಫೈಲ್‌ಗೆ ಸೇರಿಸಿ server.py ಕೆಳಗಿನ ಕೋಡ್:

#!/usr/bin/env python3

# Импорт системных библиотек python.
# Эти библиотеки будут использоваться для создания веб-сервера.
# Вам не нужно устанавливать что-то особенное, эти библиотеки устанавливаются вместе с Python.

import http.server
import socketserver

# Эта переменная нужна для обработки запросов клиента к серверу.

handler = http.server.SimpleHTTPRequestHandler

# Тут мы указываем, что сервер мы хотим запустить на порте 1234. 
# Постарайтесь запомнить эти сведения, так как они нам очень пригодятся в дальнейшем, при работе с docker-compose.

with socketserver.TCPServer(("", 1234), handler) as httpd:

    # Благодаря этой команде сервер будет выполняться постоянно, ожидая запросов от клиента.

   httpd.serve_forever()

ಸರಳವಾದ ವೆಬ್ ಸರ್ವರ್ ಅನ್ನು ರಚಿಸಲು ಈ ಕೋಡ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅವರು ಗ್ರಾಹಕರಿಗೆ ಫೈಲ್ ನೀಡುತ್ತಾರೆ index.html, ಅದರ ವಿಷಯಗಳನ್ನು ನಂತರ ವೆಬ್ ಪುಟದಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ.

2c. HTML ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಲಾಗುತ್ತಿದೆ

ಕಡತಕ್ಕೆ index.html ಕೆಳಗಿನ ಪಠ್ಯವನ್ನು ಸೇರಿಸಿ:

Docker-Compose is magic!

ಈ ಪಠ್ಯವನ್ನು ಕ್ಲೈಂಟ್‌ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.

2ಡಿ. ಡಾಕರ್‌ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಲಾಗುತ್ತಿದೆ

ಈಗ ನಾವು ಸರಳವಾದ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ Dockerfile, ಪೈಥಾನ್ ಸರ್ವರ್‌ಗಾಗಿ ರನ್‌ಟೈಮ್ ಪರಿಸರವನ್ನು ಸಂಘಟಿಸಲು ಯಾರು ಜವಾಬ್ದಾರರಾಗಿರುತ್ತಾರೆ. ರಚಿಸಿದ ಚಿತ್ರಕ್ಕೆ ಆಧಾರವಾಗಿ, ನಾವು ಬಳಸುತ್ತೇವೆ ಅಧಿಕೃತ ರೀತಿಯಲ್ಲಿ, ಪೈಥಾನ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಚಲಾಯಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಡಾಕರ್‌ಫೈಲ್‌ನ ವಿಷಯ ಇಲ್ಲಿದೆ:

# На всякий случай напоминаю, что Dockerfile всегда должен начинаться с импорта базового образа.
# Для этого используется ключевое слово 'FROM'.
# Здесь нам нужно импортировать образ python (с DockerHub).
# В результате мы, в качестве имени образа, указываем 'python', а в качестве версии - 'latest'.

FROM python:latest

# Для того чтобы запустить в контейнере код, написанный на Python, нам нужно импортировать файлы 'server.py' и 'index.html'.
# Для того чтобы это сделать, мы используем ключевое слово 'ADD'.
# Первый параметр, 'server.py', представляет собой имя файла, хранящегося на компьютере.
# Второй параметр, '/server/', это путь, по которому нужно разместить указанный файл в образе.
# Здесь мы помещаем файл в папку образа '/server/'.

ADD server.py /server/
ADD index.html /server/

# Здесь мы воспользуемся командой 'WORKDIR', возможно, новой для вас.
# Она позволяет изменить рабочую директорию образа.
# В качестве такой директории, в которой будут выполняться все команды, мы устанавливаем '/server/'.

WORKDIR /server/

ಈಗ ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸೋಣ.

▍3. ಕ್ಲೈಂಟ್ ಅನ್ನು ರಚಿಸುವುದು

ನಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಕ್ಲೈಂಟ್ ಸೈಡ್ ಅನ್ನು ರಚಿಸುವಾಗ, ನಾವು ಕೆಲವು ಡಾಕರ್ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳುತ್ತೇವೆ.

3a. ಫೈಲ್ಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ

ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಫೋಲ್ಡರ್‌ಗೆ ಹೋಗಿ client ಮತ್ತು ಅದರಲ್ಲಿ ಈ ಕೆಳಗಿನ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸಿ:

  • ಕಡತ client.py. ಕ್ಲೈಂಟ್ ಕೋಡ್ ಅನ್ನು ಇಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ.
  • ಕಡತ Dockerfile. ಈ ಫೈಲ್ ಸರ್ವರ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿರುವ ಒಂದೇ ರೀತಿಯ ಫೈಲ್‌ನಂತೆಯೇ ಅದೇ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ. ಅವುಗಳೆಂದರೆ, ಕ್ಲೈಂಟ್ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪರಿಸರವನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಸೂಚನೆಗಳನ್ನು ಇದು ಒಳಗೊಂಡಿದೆ.

ಪರಿಣಾಮವಾಗಿ, ನಿಮ್ಮ ಫೋಲ್ಡರ್ client/ ಕೆಲಸದ ಈ ಹಂತದಲ್ಲಿ ಇದು ಈ ರೀತಿ ಇರಬೇಕು:

.
├── client.py
└── Dockerfile
0 directories, 2 files

3b. ಪೈಥಾನ್ ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಲಾಗುತ್ತಿದೆ

ಫೈಲ್‌ಗೆ ಸೇರಿಸಿ client.py ಕೆಳಗಿನ ಕೋಡ್:

#!/usr/bin/env python3

# Импортируем системную библиотеку Python.
# Она используется для загрузки файла 'index.html' с сервера.
# Ничего особенного устанавливать не нужно, эта библиотека устанавливается вместе с Python.

import urllib.request

# Эта переменная содержит запрос к 'http://localhost:1234/'.
# Возможно, сейчас вы задаётесь вопросом о том, что такое 'http://localhost:1234'.
# localhost указывает на то, что программа работает с локальным сервером.
# 1234 - это номер порта, который вам предлагалось запомнить при настройке серверного кода.

fp = urllib.request.urlopen("http://localhost:1234/")

# 'encodedContent' соответствует закодированному ответу сервера ('index.html').
# 'decodedContent' соответствует раскодированному ответу сервера (тут будет то, что мы хотим вывести на экран).

encodedContent = fp.read()
decodedContent = encodedContent.decode("utf8")

# Выводим содержимое файла, полученного с сервера ('index.html').

print(decodedContent)

# Закрываем соединение с сервером.

fp.close()

ಈ ಕೋಡ್‌ನೊಂದಿಗೆ, ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ ಸರ್ವರ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ಅದನ್ನು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಬಹುದು.

3c. ಡಾಕರ್‌ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಲಾಗುತ್ತಿದೆ

ಸರ್ವರ್‌ನಂತೆ, ನಾವು ಸರಳವನ್ನು ರಚಿಸುತ್ತೇವೆ Dockerfile, ಪೈಥಾನ್ ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ ರನ್ ಆಗುವ ಪರಿಸರವನ್ನು ರಚಿಸುವ ಜವಾಬ್ದಾರಿ. ಕ್ಲೈಂಟ್ ಕೋಡ್ ಇಲ್ಲಿದೆ Dockerfile:

# То же самое, что и в серверном Dockerfile.

FROM python:latest

# Импортируем 'client.py' в папку '/client/'.

ADD client.py /client/

# Устанавливаем в качестве рабочей директории '/client/'.

WORKDIR /client/

▍4. ಡಾಕರ್ ಸಂಯೋಜನೆ

ನೀವು ಗಮನಿಸಿದಂತೆ, ನಾವು ಎರಡು ವಿಭಿನ್ನ ಯೋಜನೆಗಳನ್ನು ರಚಿಸಿದ್ದೇವೆ: ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್. ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದೂ ತನ್ನದೇ ಆದ ಫೈಲ್ ಅನ್ನು ಹೊಂದಿದೆ Dockerfile. ಇಲ್ಲಿಯವರೆಗೆ, ಸಂಭವಿಸಿದ ಎಲ್ಲವೂ ಡಾಕರ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಮೀರಿ ಹೋಗಿಲ್ಲ. ಈಗ ನಾವು ಡಾಕರ್ ಸಂಯೋಜನೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ. ಇದನ್ನು ಮಾಡಲು, ನಾವು ಫೈಲ್ಗೆ ಹೋಗೋಣ docker-compose.yml, ಯೋಜನೆಯ ಮೂಲ ಫೋಲ್ಡರ್‌ನಲ್ಲಿದೆ.

ಇಲ್ಲಿ ನಾವು ಬಳಸಬಹುದಾದ ಎಲ್ಲಾ ಆಜ್ಞೆಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಒಳಗೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸುತ್ತಿಲ್ಲ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ docker-compose.yml. ಡಾಕರ್ ಕಂಪೋಸ್‌ನ ಮೂಲಭೂತ ಜ್ಞಾನವನ್ನು ನಿಮಗೆ ನೀಡುವ ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಯ ಮೂಲಕ ನಡೆಯುವುದು ನಮ್ಮ ಮುಖ್ಯ ಗುರಿಯಾಗಿದೆ.

ಫೈಲ್‌ನಲ್ಲಿ ಹಾಕಬೇಕಾದ ಕೋಡ್ ಇಲ್ಲಿದೆ docker-compose.yml:

# Файл docker-compose должен начинаться с тега версии.
# Мы используем "3" так как это - самая свежая версия на момент написания этого кода.

version: "3"

# Следует учитывать, что docker-composes работает с сервисами.
# 1 сервис = 1 контейнер.
# Сервисом может быть клиент, сервер, сервер баз данных...
# Раздел, в котором будут описаны сервисы, начинается с 'services'.

services:

  # Как уже было сказано, мы собираемся создать клиентское и серверное приложения.
  # Это означает, что нам нужно два сервиса.
  # Первый сервис (контейнер): сервер.
  # Назвать его можно так, как нужно разработчику.
  # Понятное название сервиса помогает определить его роль.
  # Здесь мы, для именования соответствующего сервиса, используем ключевое слово 'server'.

  server:
 
    # Ключевое слово "build" позволяет задать
    # путь к файлу Dockerfile, который нужно использовать для создания образа,
    # который позволит запустить сервис.
    # Здесь 'server/' соответствует пути к папке сервера,
    # которая содержит соответствующий Dockerfile.

    build: server/

    # Команда, которую нужно запустить после создания образа.
    # Следующая команда означает запуск "python ./server.py".

    command: python ./server.py

    # Вспомните о том, что в качестве порта в 'server/server.py' указан порт 1234.
    # Если мы хотим обратиться к серверу с нашего компьютера (находясь за пределами контейнера),
    # мы должны организовать перенаправление этого порта на порт компьютера.
    # Сделать это нам поможет ключевое слово 'ports'.
    # При его использовании применяется следующая конструкция: [порт компьютера]:[порт контейнера]
    # В нашем случае нужно использовать порт компьютера 1234 и организовать его связь с портом
    # 1234 контейнера (так как именно на этот порт сервер 
    # ожидает поступления запросов).

    ports:
      - 1234:1234

  # Второй сервис (контейнер): клиент.
  # Этот сервис назван 'client'.

  client:
    # Здесь 'client/ соответствует пути к папке, которая содержит
    # файл Dockerfile для клиентской части системы.

    build: client/

    # Команда, которую нужно запустить после создания образа.
    # Следующая команда означает запуск "python ./client.py".
 
    command: python ./client.py

    # Ключевое слово 'network_mode' используется для описания типа сети.
    # Тут мы указываем то, что контейнер может обращаться к 'localhost' компьютера.

    network_mode: host

    # Ключевое слово 'depends_on' позволяет указывать, должен ли сервис,
    # прежде чем запуститься, ждать, когда будут готовы к работе другие сервисы.
    # Нам нужно, чтобы сервис 'client' дождался бы готовности к работе сервиса 'server'.
 
    depends_on:
      - server

▍5. ಯೋಜನೆಯನ್ನು ನಿರ್ಮಿಸುವುದು

ಒಳಬಂದ ನಂತರ docker-compose.yml ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಸೂಚನೆಗಳನ್ನು ನಮೂದಿಸಲಾಗಿದೆ, ಯೋಜನೆಯನ್ನು ಜೋಡಿಸಬೇಕಾಗಿದೆ. ನಮ್ಮ ಕೆಲಸದ ಈ ಹಂತವು ಆಜ್ಞೆಯನ್ನು ಬಳಸುವುದಕ್ಕೆ ಹೋಲುತ್ತದೆ docker build, ಆದರೆ ಅನುಗುಣವಾದ ಆಜ್ಞೆಯು ಹಲವಾರು ಸೇವೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದೆ:

$ docker-compose build

▍6. ಯೋಜನೆಯ ಪ್ರಾರಂಭ

ಈಗ ಯೋಜನೆಯನ್ನು ಜೋಡಿಸಲಾಗಿದೆ, ಅದನ್ನು ಪ್ರಾರಂಭಿಸುವ ಸಮಯ. ನಮ್ಮ ಕೆಲಸದ ಈ ಹಂತವು ಹಂತಕ್ಕೆ ಅನುರೂಪವಾಗಿದೆ, ಇದರಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಕಂಟೇನರ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ docker run:

$ docker-compose up

ಈ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ, ಸರ್ವರ್‌ನಿಂದ ಕ್ಲೈಂಟ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಪಠ್ಯವು ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ಗೋಚರಿಸಬೇಕು: Docker-Compose is magic!.

ಈಗಾಗಲೇ ಹೇಳಿದಂತೆ, ಸರ್ವರ್ ಕಂಪ್ಯೂಟರ್ ಪೋರ್ಟ್ ಅನ್ನು ಬಳಸುತ್ತದೆ 1234 ಕ್ಲೈಂಟ್ ವಿನಂತಿಗಳನ್ನು ಪೂರೈಸಲು. ಆದ್ದರಿಂದ, ನೀವು ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿರುವ ವಿಳಾಸಕ್ಕೆ ಹೋದರೆ http://localhost:1234/, ಇದು ಪಠ್ಯದೊಂದಿಗೆ ಪುಟವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ Docker-Compose is magic!.

ಉಪಯುಕ್ತ ಆಜ್ಞೆಗಳು

ಡಾಕರ್ ಕಂಪೋಸ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ನಿಮಗೆ ಉಪಯುಕ್ತವಾದ ಕೆಲವು ಆಜ್ಞೆಗಳನ್ನು ನೋಡೋಣ.

ಈ ಆಜ್ಞೆಯು ಆಜ್ಞೆಯಿಂದ ರಚಿಸಲಾದ ಕಂಟೇನರ್‌ಗಳು ಮತ್ತು ಇತರ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿಲ್ಲಿಸಲು ಮತ್ತು ಅಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ docker-compose up:

$ docker-compose down

ಈ ಆಜ್ಞೆಯು ಸೇವಾ ದಾಖಲೆಗಳನ್ನು ಮುದ್ರಿಸುತ್ತದೆ:

$ docker-compose logs -f [service name]

ಉದಾಹರಣೆಗೆ, ನಮ್ಮ ಯೋಜನೆಯಲ್ಲಿ ಇದನ್ನು ಈ ರೂಪದಲ್ಲಿ ಬಳಸಬಹುದು: $ docker-compose logs -f [service name].

ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಕಂಟೇನರ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು:

$ docker-compose ps

ಚಾಲನೆಯಲ್ಲಿರುವ ಕಂಟೇನರ್‌ನಲ್ಲಿ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಈ ಆಜ್ಞೆಯು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:

$ docker-compose exec [service name] [command]

ಉದಾಹರಣೆಗೆ, ಇದು ಈ ರೀತಿ ಕಾಣಿಸಬಹುದು: docker-compose exec server ls.

ಈ ಆಜ್ಞೆಯು ಚಿತ್ರಗಳ ಪಟ್ಟಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:

$ docker-compose images

ಫಲಿತಾಂಶಗಳು

ಡಾಕರ್ ಕಂಪೋಸ್ ತಂತ್ರಜ್ಞಾನದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ನಾವು ನೋಡಿದ್ದೇವೆ, ಅದರ ಜ್ಞಾನವು ಈ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಬಯಸಿದಲ್ಲಿ, ಅದನ್ನು ಹೆಚ್ಚು ಆಳವಾಗಿ ಅಧ್ಯಯನ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿ. ಇಲ್ಲಿ ನಾವು ಇಲ್ಲಿ ನೋಡಿದ ಯೋಜನೆಯ ಕೋಡ್‌ನೊಂದಿಗೆ ರೆಪೊಸಿಟರಿ.

ಆತ್ಮೀಯ ಓದುಗರು! ನಿಮ್ಮ ಯೋಜನೆಗಳಲ್ಲಿ ನೀವು ಡಾಕರ್ ಸಂಯೋಜನೆಯನ್ನು ಬಳಸುತ್ತೀರಾ?

ಡಾಕರ್ ಕಂಪೋಸ್ ಮಾಡಲು ಒಂದು ಬಿಗಿನರ್ಸ್ ಗೈಡ್

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ