Ubuntu 24.04
Sponsored Link

Podman : Docker Compose का प्रयोग करें2024/05/05

 
Docker Compose को स्थापित करने के लिए, Docker एप्लिकेशन के रूप में एकाधिक कंटेनरों को कॉन्फ़िगर करना और चलाना आसान है।
Docker Compose Podman 3.0 या उसके बाद के संस्करण पर समर्थित है।
[1]
[2] Docker Compose इंस्टॉल करें।
root@dlp:~#
curl -L https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
root@dlp:~#
chmod 755 /usr/local/bin/docker-compose
root@dlp:~#
/usr/local/bin/docker-compose --version

Docker Compose version v2.27.0
[3] उदाहरण के लिए, Docker Compose के साथ एक एप्लिकेशन को कॉन्फ़िगर करें जिसमें वेब और DB सेवाएँ हैं।
# podman.socket प्रारंभ करें

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

root@dlp:~#
vi Dockerfile
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;"]

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

root@dlp:~#
vi docker-compose.yml
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
    user: 0:0
    privileged: true
    ports:
      - "3306:3306"
  web:
    build: .
    ports:
      - "80:80"
    volumes:
      - /var/lib/containers/disk02:/usr/share/nginx/html
    privileged: true

# बनाएं और चलाएं

root@dlp:~#
/usr/local/bin/docker-compose up -d

[+] Running 2/2
 ✓ Container root-web-1  Started                                           0.5s
 ✓ Container root-db-1   Started                                           0.5s

root@dlp:~#
podman ps

CONTAINER ID  IMAGE                                    COMMAND               CREATED             STATUS             PORTS                   NAMES
bfd4a69009e5  docker.io/moby/buildkit:buildx-stable-1                        4 minutes ago       Up 4 minutes                               buildx_buildkit_default
cd88fe33591a  docker.io/library/root-web:latest        /usr/sbin/nginx -...  About a minute ago  Up About a minute  0.0.0.0:80->80/tcp      root-web-1
2950f7b74af7  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      | 2950f7b74af7 |
+---------------+--------------+

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:~#
/usr/local/bin/docker-compose ps

NAME         IMAGE                               COMMAND                  SERVICE   CREATED         STATUS         PORTS
root-db-1    docker.io/library/mariadb:latest    "mariadbd"               db        7 seconds ago   Up 6 seconds   3306/tcp
root-web-1   docker.io/library/root-web:latest   "/usr/sbin/nginx -g …"   web       7 seconds ago   Up 6 seconds   80/tcp

# कंटेनरों के लॉग दिखाएं

root@dlp:~#
/usr/local/bin/docker-compose logs

db-1  | 2024-05-05 05:22:31+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.3.2+maria~ubu2204 started.
db-1  | 2024-05-05 05:22:31+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db-1  | 2024-05-05 05:22:31+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.3.2+maria~ubu2204 started.
db-1  | 2024-05-05 05:22:31+00:00 [Note] [Entrypoint]: MariaDB upgrade not required
.....
.....
db-1  | 2024-05-05  5:22:31 0 [Note] mariadbd: Event Scheduler: Loaded 0 events
db-1  | 2024-05-05  5:22:31 0 [Note] mariadbd: ready for connections.
db-1  | Version: '11.3.2-MariaDB-1:11.3.2+maria~ubu2204'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution

# किसी कंटेनर के अंदर कोई भी कमांड चलाएँ
# कंटेनर नाम [docker-compose.yml] में केवल एक सेट है

root@dlp:~#
/usr/local/bin/docker-compose exec db /bin/bash

root@142e39567911:/#

# एप्लिकेशन बंद करें और सभी कंटेनर भी बंद करें

root@dlp:~#
/usr/local/bin/docker-compose stop

[+] Stopping 2/2
 ✓ Container root-web-1  Stopped                                           0.2s
 ✓ Container root-db-1   Stopped                                           0.5s

# एप्लिकेशन में अकेले एक सेवा प्रारंभ करें
# यदि निर्भरता सेट की जाती है, तो अन्य कंटेनर प्रारंभ हो जाता है

root@dlp:~#
/usr/local/bin/docker-compose up -d web

[+] Running 1/1
 ✓ Container root-web-1  Started                                           0.1s

root@dlp:~#
/usr/local/bin/docker-compose ps

NAME         IMAGE                               COMMAND                  SERVICE   CREATED         STATUS          PORTS
root-web-1   docker.io/library/root-web:latest   "/usr/sbin/nginx -g …"   web       4 minutes ago   Up 27 seconds   80/tcp

# एप्लिकेशन में मौजूद सभी कंटेनर हटा दें
# यदि कोई कंटेनर चल रहा है, तो उसे हटाया नहीं जाएगा

root@dlp:~#
/usr/local/bin/docker-compose rm

[+] Removing 1/0e root-db-1 (y/N) y
 ✓ Container root-db-1  Removed
मिलान सामग्री