Docker Compose: ਬੁਨਿਆਦ ਅਤੇ ਵਰਤੋਂ

Docker Compose 'ਤੇ ਆਧਾਰਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਅਤੇ ਤੈਨਾਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਅਤੇ ਪ੍ਰਸਿੱਧ ਟੂਲ ਹੈ Docker । Docker ਇਹ ਤੁਹਾਨੂੰ ਇੱਕ ਸਿੰਗਲ ਪ੍ਰੋਜੈਕਟ ਦੇ ਤੌਰ 'ਤੇ ਮਲਟੀਪਲ ਕੰਟੇਨਰਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ, ਸੰਰਚਿਤ ਕਰਨ ਅਤੇ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਐਪਲੀਕੇਸ਼ਨ ਡਿਪਲਾਇਮੈਂਟ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਵਿਕਾਸ ਅਤੇ ਉਤਪਾਦਨ ਦੇ ਵਾਤਾਵਰਣਾਂ ਵਿਚਕਾਰ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।

ਹੇਠਾਂ ਕੁਝ ਧਾਰਨਾਵਾਂ ਅਤੇ ਉਦਾਹਰਣਾਂ ਹਨ Docker Compose:

docker-compose.yml ਫਾਈਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ

ਫਾਈਲ ਵਿੱਚ docker-compose.yml, ਤੁਸੀਂ ਆਪਣੀ ਅਰਜ਼ੀ ਲਈ ਲੋੜੀਂਦੀਆਂ ਸੇਵਾਵਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ। ਉਦਾਹਰਨ ਲਈ, ਇੱਕ MySQL ਡੇਟਾਬੇਸ ਦੇ ਨਾਲ ਇੱਕ PHP ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਤੈਨਾਤ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਦੋ ਸੇਵਾਵਾਂ ਨੂੰ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

ਉਪਰੋਕਤ ਕੋਡ ਸਨਿੱਪਟ ਵਿੱਚ, ਅਸੀਂ ਦੋ ਸੇਵਾਵਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਾਂ: web ਅਤੇ db. ਸੇਵਾ web PHP 7.4 image ਦੀ ਵਰਤੋਂ ਕਰੇਗੀ Apache, ਪੋਰਟ 80 'ਤੇ ਸੁਣੋ, ਅਤੇ ./app ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਹੋਸਟ ਤੋਂ /var/www/html ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਮਾਊਂਟ ਕਰੇਗੀ container । ਸੇਵਾ db MySQL 5.7 ਦੀ ਵਰਤੋਂ ਕਰੇਗੀ image ਅਤੇ ਡੇਟਾਬੇਸ ਲਈ ਲੋੜੀਂਦੇ ਕੁਝ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਸੈੱਟ ਕਰੇਗੀ।

 

Docker Compose ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ

ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਫਾਈਲ ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਲੈਂਦੇ ਹੋ docker-compose.yml, ਤਾਂ ਤੁਸੀਂ Docker Compose ਸੇਵਾਵਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਕਮਾਂਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।

  • ਪ੍ਰੋਜੈਕਟ ਸ਼ੁਰੂ ਕਰੋ: docker-compose up

    ਇਹ ਕਮਾਂਡ ਫਾਈਲ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਸੇਵਾਵਾਂ ਲਈ ਕੰਟੇਨਰਾਂ ਨੂੰ ਸ਼ੁਰੂ ਕਰੇਗੀ docker-compose.yml

  • ਡੱਬਿਆਂ ਨੂੰ ਰੋਕੋ ਅਤੇ ਹਟਾਓ: docker-compose down

    ਇਹ ਕਮਾਂਡ ਪ੍ਰੋਜੈਕਟ ਨਾਲ ਸਬੰਧਤ ਸਾਰੇ ਕੰਟੇਨਰਾਂ ਨੂੰ ਰੋਕਦੀ ਹੈ ਅਤੇ ਹਟਾ ਦਿੰਦੀ ਹੈ।

  • ਚੱਲ ਰਹੇ ਕੰਟੇਨਰਾਂ ਦੀ ਸੂਚੀ ਬਣਾਓ: docker-compose ps

    ਇਹ ਕਮਾਂਡ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਕੰਟੇਨਰਾਂ ਦੀ ਸਥਿਤੀ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੇਗੀ.

  • ਸੇਵਾ ਲੌਗ ਵੇਖੋ: docker-compose logs

    ਇਹ ਕਮਾਂਡ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਸੇਵਾਵਾਂ ਦੇ ਲੌਗਸ ਨੂੰ ਦਿਖਾਉਂਦਾ ਹੈ।

 

ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਅਤੇ ਅਨੁਕੂਲਤਾ

Docker Compose ਤੁਹਾਨੂੰ ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣਾਂ, ਜਿਵੇਂ ਕਿ ਵਿਕਾਸ ਅਤੇ ਉਤਪਾਦਨ ਲਈ ਸੰਰਚਨਾ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਲਈ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਤੁਸੀਂ docker-compose.yml ਫਾਈਲ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਸੰਬੰਧਿਤ .env ਫਾਈਲਾਂ ਵਿੱਚ ਉਹਨਾਂ ਦੇ ਮੁੱਲਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ।

ਉਦਾਹਰਨ ਲਈ, ਜੇ ਤੁਸੀਂ web ਸੇਵਾ ਦੇ ਪੋਰਟ ਲਈ ਇੱਕ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ .env ਇਸ ਤਰ੍ਹਾਂ ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਲਾਈਨ ਜੋੜ ਸਕਦੇ ਹੋ:

WEB_PORT=8080

ਫਿਰ, docker-compose.yml ਫਾਈਲ ਵਿੱਚ, ਤੁਸੀਂ ਇਸ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਵਰਤ ਸਕਦੇ ਹੋ:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

ਕਮਾਂਡ ਚਲਾਉਣ ਵੇਲੇ docker-compose up, web ਸੇਵਾ ਪੋਰਟ 80 ਦੀ ਬਜਾਏ ਪੋਰਟ 8080 'ਤੇ ਸੁਣੇਗੀ।

 

Docker ਸਵੈਮ ਨਾਲ ਏਕੀਕਰਨ

ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਕਈ ਨੋਡਾਂ ਦੇ ਨਾਲ ਵੰਡੇ ਵਾਤਾਵਰਨ 'ਤੇ ਤੈਨਾਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ Docker Compose ਨਾਲ ਏਕੀਕ੍ਰਿਤ ਕਰ ਸਕਦੇ ਹੋ Docker Swarm । Docker ਇਹ ਤੁਹਾਨੂੰ ਇੱਕ ਕਲੱਸਟਰ ਵਿੱਚ ਕਈ ਨੋਡਾਂ ਵਿੱਚ ਸੇਵਾਵਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ।

ਇਸ ਏਕੀਕਰਣ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਵਾਤਾਵਰਣ ਵਿੱਚ ਚੱਲਦੇ ਸਮੇਂ ਜਾਂ ਕਮਾਂਡਾਂ ਨੂੰ --orchestrate ਜਾਂ ਵਿਕਲਪ ਜੋੜਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। --with-registry-auth docker stack deploy docker-compose up Swarm

 

Docker Compose ਆਸਾਨ ਅਤੇ ਕੁਸ਼ਲ ਐਪਲੀਕੇਸ਼ਨ ਵਿਕਾਸ, ਟੈਸਟਿੰਗ, ਅਤੇ ਤੈਨਾਤੀ ਲਈ ਇੱਕ ਉਪਯੋਗੀ ਸੰਦ ਹੈ। ਇਹ ਵਿਕਾਸ ਅਤੇ ਉਤਪਾਦਨ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਅੰਤਰ ਨੂੰ ਘੱਟ ਕਰਦਾ ਹੈ, ਸਾਫਟਵੇਅਰ ਵਿਕਾਸ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਵਿਕਾਸ ਟੀਮਾਂ ਦੀ ਉਤਪਾਦਕਤਾ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।