Podman : Docker Compose का प्रयोग करें2023/10/13 |
Docker Compose इंस्टॉल करने के लिए, Docker एप्लिकेशन के रूप में एकाधिक कंटेनरों को कॉन्फ़िगर करना और चलाना आसान है।
Docker Compose Podman 3.0 या उसके बाद के संस्करण पर समर्थित है। |
|
[1] | |
[2] | Docker Compose स्थापित करें। |
[root@dlp ~]# dnf --enablerepo=updates-testing -y install docker-compose
|
[3] | उदाहरण के लिए, एक एप्लिकेशन को कॉन्फ़िगर करें जिसमें डॉकर कंपोज़ के साथ वेब और डीबी सेवाएं हैं। |
FROM fedora MAINTAINER ServerWorld <admin@srv.world> RUN dnf -y install nginx 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: fedora MYSQL_PASSWORD: password MYSQL_DATABASE: fedora_db user: 0:0 ports: - "3306:3306" web: build: . ports: - "80:80" volumes: - /var/lib/containers/disk02:/usr/share/nginx/html # बनाएं और चलाएं [root@dlp ~]# docker-compose up -d Building web Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. STEP 1/5: FROM fedora STEP 2/5: MAINTAINER ServerWorld <admin@srv.world> ..... ..... Creating root_web_1 ... done Creating root_db_1 ... done[root@dlp ~]# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4a0339d835ed localhost/root_web:latest /usr/sbin/nginx -... About a minute ago Up About a minute 0.0.0.0:80->80/tcp root_web_1 bdf33110a8ed docker.io/library/mariadb:latest mariadbd About a minute ago Up About a minute 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 | bdf33110a8ed | +---------------+--------------+[root@dlp ~]# mysql -h 127.0.0.1 -u fedora -p -e "show databases;" Enter password: +--------------------+ | Database | +--------------------+ | fedora_db | | information_schema | +--------------------+[root@dlp ~]# echo "Hello Docker Compose World" > /var/lib/containers/disk02/index.html [root@dlp ~]# curl 127.0.0.1 Hello Docker Compose World |
[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 | 2023-04-26 04:24:08+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.11.2+maria~ubu2204 started. db_1 | 2023-04-26 04:24:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' db_1 | 2023-04-26 04:24:08+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.11.2+maria~ubu2204 started. db_1 | 2023-04-26 04:24:08+00:00 [Note] [Entrypoint]: MariaDB upgrade not required ..... ..... db_1 | 2023-04-26 4:24:08 0 [Note] Server socket created on IP: '::'. db_1 | 2023-04-26 4:24:08 0 [Note] mariadbd: ready for connections. db_1 | Version: '10.11.2-MariaDB-1:10.11.2+maria~ubu2204' 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@bdf33110a8ed:/# # एप्लिकेशन बंद करें और सभी कंटेनर भी बंद करें [root@dlp ~]# docker-compose stop Stopping root_db_1 ... Stopping root_web_1 ... Stopping root_web_1 ... done Stopping root_db_1 ... done # एप्लिकेशन में अकेले एक सेवा प्रारंभ करें # यदि निर्भरता सेट की जाती है, तो अन्य कंटेनर प्रारंभ हो जाता है [root@dlp ~]# docker-compose up -d web Starting root_web_1 ... done[root@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 |