Podman : Docker Compose का प्रयोग करें2023/09/04 |
Docker Compose को स्थापित करने के लिए, Docker एप्लिकेशन के रूप में एकाधिक कंटेनरों को कॉन्फ़िगर करना और चलाना आसान है।
Docker Compose Podman 3.0 या उसके बाद के संस्करण पर समर्थित है। |
|
[1] | |
[2] | Docker Compose इंस्टॉल करें। |
root@dlp:~#
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
root@dlp:~#
chmod 755 /usr/local/bin/docker-compose
root@dlp:~#
root@dlp:~# docker-compose --version docker-compose version 1.29.2, build 5becea4c podman version Version: 3.4.4 API Version: 3.4.4 Go Version: go1.17.3 Built: Thu Jan 1 00:00:00 1970 OS/Arch: linux/amd64 |
[3] | उदाहरण के लिए, Docker Compose के साथ एक एप्लिकेशन को कॉन्फ़िगर करें जिसमें वेब और DB सेवाएँ हैं। |
FROM ubuntu MAINTAINER ServerWorld <admin@srv.world> RUN apt-get update RUN apt-get -y install nginx RUN echo "Compose Test on Nginx" > /var/www/html/index.html EXPOSE 80 CMD ["/usr/sbin/nginx", "-g", "daemon off;"] version: '3' services: db: image: docker.io/library/mariadb volumes: - /var/lib/containers/disk01:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_USER: ubuntu MYSQL_PASSWORD: password MYSQL_DATABASE: ubuntu_db ports: - "3306:3306" web: build: . ports: - "80:80" volumes: - /var/lib/containers/disk02:/usr/share/nginx/html # बनाएं और चलाएं root@dlp:~# docker-compose up -d Creating network "root_default" with the default driver Building web Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. STEP 1/7: FROM ubuntu STEP 2/7: MAINTAINER ServerWorld <admin@srv.world> --> Using cache b51cc134aaf4cc8417d597b728187776ae8e480ae9a5231f662df47aae099735 --> b51cc134aaf STEP 3/7: RUN apt-get update ..... ..... Creating root_web_1 ... done Creating root_db_1 ... doneroot@dlp:~# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 337ca00a77c6 localhost/root_web:latest /usr/sbin/nginx -... About a minute ago Up About a minute ago 0.0.0.0:80->80/tcp root_web_1 d2b9f660161d docker.io/library/mariadb:latest mariadbd About a minute ago Up About a minute ago 0.0.0.0:3306->3306/tcp root_db_1 # पहुंच सत्यापित करें root@dlp:~# mysql -h 127.0.0.1 -u root -p -e "show variables like 'hostname';" Enter password: +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | hostname | d2b9f660161d | +---------------+--------------+root@dlp:~# mysql -h 127.0.0.1 -u ubuntu -p -e "show databases;" Enter password: +--------------------+ | Database | +--------------------+ | information_schema | | ubuntu_db | +--------------------+root@dlp:~# curl 127.0.0.1 Compose Test on Nginx |
[4] | Docker Compose के अन्य बुनियादी संचालन इस प्रकार हैं। |
# कंटेनरों की स्थिति सत्यापित करें root@dlp:~# docker-compose ps Name Command State Ports --------------------------------------------------------------------- root_db_1 docker-entrypoint.sh mariadbd Up :3306->3306/tcp root_web_1 /usr/sbin/nginx -g daemon off; Up :80->80/tcp # कंटेनरों के लॉग दिखाएं root@dlp:~# docker-compose logs Attaching to root_web_1, root_db_1 db_1 | 2022-04-28 06:47:01+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.7.3+maria~focal started. db_1 | 2022-04-28 06:47:01+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' db_1 | 2022-04-28 06:47:01+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.7.3+maria~focal started. db_1 | 2022-04-28 06:47:01+00:00 [Note] [Entrypoint]: Initializing database files ..... ..... db_1 | 2022-04-28 6:47:11 0 [Note] Server socket created on IP: '::'. db_1 | 2022-04-28 6:47:11 0 [Note] mariadbd: ready for connections. db_1 | Version: '10.7.3-MariaDB-1:10.7.3+maria~focal' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution # किसी कंटेनर के अंदर कोई भी कमांड चलाएँ # कंटेनर नाम [docker-compose.yml] में केवल एक सेट है root@dlp:~# docker-compose exec db /bin/bash Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. root@d2b9f660161d:/# # एप्लिकेशन बंद करें और सभी कंटेनर भी बंद करें root@dlp:~# docker-compose stop Stopping root_web_1 ... done Stopping root_db_1 ... done # एप्लिकेशन में अकेले एक सेवा प्रारंभ करें # यदि निर्भरता सेट की जाती है, तो अन्य कंटेनर प्रारंभ हो जाता है root@dlp:~# docker-compose up -d web Starting root_web_1 ... doneroot@dlp:~# docker-compose ps Name Command State Ports ---------------------------------------------------------------------- root_db_1 docker-entrypoint.sh mariadbd Exit 0 :3306->3306/tcp root_web_1 /usr/sbin/nginx -g daemon off; Up :80->80/tcp # एप्लिकेशन में मौजूद सभी कंटेनर हटा दें # यदि कोई कंटेनर चल रहा है, तो उसे हटाया नहीं जाएगा root@dlp:~# docker-compose rm
Going to remove root_db_1
Are you sure? [yN] y
Removing root_db_1 ... done
|
Sponsored Link |