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