Fedora 38
Sponsored Link

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] उदाहरण के लिए, एक एप्लिकेशन को कॉन्फ़िगर करें जिसमें डॉकर कंपोज़ के साथ वेब और डीबी सेवाएं हैं।
# पॉडमैन.सॉकेट प्रारंभ करें

[root@dlp ~]#
systemctl start podman.socket
# वेब सेवा कंटेनर को परिभाषित करें

[root@dlp ~]#
vi Dockerfile
FROM fedora
MAINTAINER ServerWorld <admin@srv.world>

RUN dnf -y install nginx

EXPOSE 80
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]

# एप्लिकेशन कॉन्फ़िगरेशन को परिभाषित करें

[root@dlp ~]#
vi docker-compose.yml
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
मिलान सामग्री