ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ื“ืึทืงืขืจ ืกื˜ืึธืจื™ื“ื–ืฉ ืžื™ื’ืจืึทื˜ื™ืึธืŸ ืคึผืจืึธื‘ืœืขื (ื“ืึธืงืงืขืจ ื•ื•ืึธืจืฆืœ)

ื ื™ื˜ ืžืขืจ ื•ื•ื™ ืึท ืคึผืึธืจ ืคื•ืŸ ื˜ืขื’ ืฆื•ืจื™ืง, ืขืก ืื™ื– ื‘ืึทืฉืœืึธืกืŸ ืื•ื™ืฃ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจืก ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ืึธืงืงืขืจ ืกื˜ืึธืจื™ื“ื–ืฉ (ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื•ื•ื• ื“ืึธืงืงืขืจ ืกื˜ืึธืจื– ืึทืœืข ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ื‘ื™ืœื“ ื˜ืขืงืขืก) ืฆื• ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’, ื•ื•ืึธืก
ื’ืขื”ื ื˜ ื ื’ืจืขืืขืจ ืข ืคืขืื™ืงืฒื˜ . ื“ื™ ืึทืจื‘ืขื˜ ื”ืึธื˜ ืื•ื™ืกื’ืขื–ืขืŸ ื ื™ืฉื˜ื™ืง ืื•ืŸ ื”ืึธื˜ ื ื™ืฉื˜ ืคืึธืจืื•ื™ืกื’ืขื•ื•ื™ื–ืŸ ืงื™ื™ืŸ ืฆืจื•ืช...

ืœืืžื™ืจ ืื ื”ื™ื™ื‘ืขืŸ:

1. ื”ืึทืœื˜ืŸ ืื•ืŸ ื˜ื™ื™ื˜ืŸ ืึทืœืข ืงืึทื ื˜ื™ื™ื ืขืจื– ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ:

docker-compose down

ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ื–ื™ื™ ื–ืขื ืขืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื—ื™ื‘ื•ืจื™ื, ืื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ื“ืึธืก:

docker rm -f $(docker ps -q)

2. ื”ืึทืœื˜ืŸ ื“ื™ ื“ืึธืงืงืขืจ ื“ื™ื™ืžืึทืŸ:

systemctl stop docker

3. ืžืึทืš ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืฆื• ื“ื™ ื’ืขื‘ืขื˜ืŸ ืึธืจื˜:

cp -r /var/lib/docker /docker/data/storage

4. ืžื™ืจ ื–ืึธื’ืŸ ื“ื™ ื“ืึธืงืงืขืจ ื“ื™ื™ืžืึทืŸ ืฆื• ืงื•ืงืŸ ืื™ืŸ ื“ื™ ื ื™ื™ึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ืึธืคึผืฆื™ืขืก: ืึธื“ืขืจ ื ื•ืฆืŸ ื“ื™ -g ืคืึธืŸ ืฆื• ืคื•ื ื˜ ื“ื™ ื“ื™ื™ืžืึทืŸ ืฆื• ืึท ื ื™ื™ึทืข ื•ื•ืขื’, ืึธื“ืขืจ ืกื™ืกื˜ืขื ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–, ื•ื•ืึธืก ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜. ืึธื“ืขืจ ืึท ืกื™ืžืœื™ื ืง. ืื™ืš ื•ื•ืขืœ ื ื™ืฉื˜ ื’ื™ื™ืŸ ืื™ืŸ ืฆื• ืคื™ืœ ื“ืขื˜ืึทืœ ื•ื•ืขื’ืŸ ื“ืขื, ืขืก ืื™ื– ืื•ื™ืฃ ื“ืขืจ ืื™ื ื˜ืขืจื ืขืฅ. ืคื•ืœ ืžืึทื ื™ื•ืึทืœื– ืื•ื™ืฃ ืžืึธื•ื•ื™ื ื’ ื“ืึธืงืงืขืจ ื•ื•ืึธืจืฆืœ ืฆื• ืึท ื ื™ื™ึท ืึธืจื˜.

5. ืึธื ื”ื™ื™ื‘ ื“ื™ ื“ืึธืงืงืขืจ ื“ื™ื™ืžืึทืŸ ืื•ืŸ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืขืก ืงื•ืงื˜ ืื™ืŸ ื“ื™ ืจืขื›ื˜ ืึธืจื˜:

systemctl status docker

ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงืฆื™ืข ืฉื•ืจื•ืช ืžื™ืจ ื–ืึธืœ ื–ืขืŸ:

โ”œโ”€19493 /usr/bin/dockerd --data-root=/docker/data/storage

ืžื™ืจ ื”ืึธื‘ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ื™ ืึธืคึผืฆื™ืข ืื™ื– ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ืฆื• ื“ื™ ื“ื™ื™ืžืึทืŸ, ืื™ืฆื˜ ืœืึธืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืฆื™ ืขืก ืื™ื– ื’ืขื•ื•ืขื ื“ื˜ (ื“ืึทื ืง inkvizitor68sl)!

docker info | awk '/Root Dir/ {print $NF}' 

6. ืœืึธืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ:

docker-compose up -d

7. ืงื•ืง

ืื•ืŸ ื“ืึธ ื“ื™ ืฉืคึผืึทืก ื”ื™ื™ื‘ื˜, DBMS, MQ, ืึทืœืฅ ืื™ื– ืคื™ื™ึทืŸ! ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ื‘ืขืฉืึธืœืขื, ืึทืœืฅ ืึทืจื‘ืขื˜ ... ืึทื—ื•ืฅ ื ื’ื™ื ืงืก. ืžื™ืจ ื”ืึธื‘ืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข Nginx ื‘ื•ื™ืขืŸ ืžื™ื˜ Kerberos ืื•ืŸ ืงืึธื•ืจื˜ื™ื–ืึทื ืก. ืื•ืŸ ื•ื•ื™ื•ื™ื ื’ ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจ ืœืึธื’ืก ืื ื’ืขื•ื•ื™ื–ืŸ ืึทื– ืขืก ืงืขืŸ ื ื™ืฉื˜ ืฉืจื™ื™ึทื‘ืŸ ืฆื• /var/tmp - ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื’ืขืœื™ื™ืงื ื˜. ืื™ืš ื ื™ื“ ื“ื™ ื˜ืขืžืคืœืขืŸ ืžื™ื˜ ื“ื™ ืคื™ื ื’ืขืจ ืื•ืŸ ืคืจื•ื‘ื™ืจื˜ ืฆื• ืื ืืœื™ื–ื™ืจืŸ ื“ื™ ืžืฆื‘... ื•ื•ื™ ืื™ื– ื“ืืก ืžืขื’ืœืขืš? ื“ื™ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ ื”ืื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ. ืžื™ืจ ื ืึธืจ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืขืก ื”ืื˜ ืฉื˜ืขื ื“ื™ืง ื’ืขืืจื‘ืขื˜, ืื•ืŸ ื“ืึธ ืขืก ืื™ื– ืคึฟืึทืจ ืื™ืจ... ืคึฟืึทืจ ื“ื™ ืขืงืกืคึผืขืจื™ืžืขื ื˜, ืื™ืš ื’ืขื’ืื ื’ืขืŸ ืื™ืŸ ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจ ืžื™ื˜ ื“ื™ ื”ืขื ื˜ ืื•ืŸ ื’ืขื‘ื™ื˜ืŸ ื“ื™ ืจืขื›ื˜ ืฆื• ื“ืขื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ, ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ื•ื•ืึธืจืฆืœ, ื•ื•ืึธืจืฆืœ 755, ื’ืขื’ืขื‘ืŸ ื•ื•ืึธืจืฆืœ, ื•ื•ืึธืจืฆืœ 777. ืื•ืŸ ืึทืœืฅ ื”ืึธื˜ ื–ื™ืš ืึธื ื’ืขื”ื•ื™ื‘ืŸ... ืึท ื’ืขื“ืึทื ืง ื”ืึธื˜ ื–ื™ืš ืึธื ื’ืขื”ืฑื‘ืŸ ืื™ืŸ ืžื™ืจ ืื™ืŸ ืงืึธืคึผ โ€• ืึท ืžื™ืŸ ืฉื˜ื•ืชื™ื... ืื™ืš ื”ืึธื‘ ื’ืขื˜ืจืึทื›ื˜, ื ื•, ืืคึฟืฉืจ ื”ืึธื‘ ืื™ืš ืขืคึผืขืก ื ื™ืฉื˜ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ...

ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืึทื– ืžื™ืจ ื’ืขืคืืœืŸ ืื™ืŸ ืœื™ื‘ืข ืžื™ื˜ ื“ื™ ืึทืงืกืขืก ืจืขื›ื˜ ืฆื• ื“ื™ ื˜ืขืงืขืก ื‘ืขืฉืึทืก ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ. ืžื™ืจ ืคืืจืฉื˜ืืคื˜ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ื“ื™ ื“ืึธืงืงืขืจ ื“ื™ื™ืžืึทืŸ, ืื•ื™ืกื’ืขืžืขืงื˜ ื“ื™ ื ื™ื™ึทืข ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื•ืŸ ืงืึทืคึผื™ื“ ื“ื™ /var/lib/docker ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื ื™ืฆืŸ rsync -a.

ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืึทืœืฅ ืื™ื– ื’ื•ื˜ ืื™ืฆื˜, ืœืึธื–ืŸ ืื•ื ื“ื– ื›ืึทืคึผืŸ ื“ื™ ื“ืึธืงืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

ืึทืึทืึทืึทื ื“... ื“ื™ ืคึผืจืึธื‘ืœืขื ืื™ื– ื’ืขื‘ืœื™ื‘ืŸ... ืžืฒึทืŸ ืืฑื’ ื”ืึธื˜ ื–ื™ืš ื’ืขืฆื™ื˜ืขืจื˜. ืื™ืš ืจืึทืฉื˜ ืฆื• ื“ื™ ืงืึทื ืกืึธื•ืœ ืคื•ืŸ ืžื™ื™ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ, ื•ื•ื• ืื™ืš ืœื•ื™ืคืŸ ืคืึทืจืฉื™ื“ืŸ ื˜ืขืกืฅ, ืื™ืš ื’ืขื”ืื˜ ื“ืขื nginx ื‘ื™ืœื“, ืื•ืŸ ืื™ืš ืงืœื™ื™ืžื“ ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ, ืื•ืŸ ื“ืึธ ื“ื™ ืจืขื›ื˜ ืฆื• ื“ื™ /var/tmp ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื–ืขื ืขืŸ ื•ื•ืึธืจืฆืœ, ื•ื•ืึธืจืฆืœ 777. ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ ืื™ืš ื”ืื˜ ืฆื• ืฉื˜ืขืœืŸ ืžืึทื ื™ื•ืึทืœื™. ืื‘ืขืจ ื“ื™ ื‘ื™ืœื“ืขืจ ื–ืขื ืขืŸ ื™ื™ื“ืขื ื™ืงืึทืœ!

ื“ื™ xfs ื˜ืขืงืข ืกื™ืกื˜ืขื ืื™ื– ื’ืขื ื™ืฆื˜ ืื•ืžืขื˜ื•ื.

ืื™ืš ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ื“ืขื ื‘ืึทืคึฟืขืœ

docker inspect my-nginx:12345

ืึทืœืข ื”ืึทืฉืขืก ื–ืขื ืขืŸ ื™ื™ื“ืขื ื™ืงืึทืœ, ืึทืœืข ืื™ื™ืŸ ืฆื• ืื™ื™ืŸ. ื‘ื™ื™ื“ืข ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืื•ื™ืฃ ืžื™ื™ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ. ืื™ืš ืื•ื™ืกื’ืขืžืขืงื˜ ื“ื™ ื”ื™ื’ืข nginx ื‘ื™ืœื“ ืื•ืŸ ืคึผื•ืœื“ ืขืก ื•ื•ื™ื“ืขืจ ืคื•ืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™, ื•ื•ืึธืก ืคึฟืึทืจ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืกื™ื‘ื•ืช ืื™ื– ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžืึทืฉื™ืŸ. ืื•ืŸ ื“ื™ ืคืจืื‘ืœืขื ืื™ื– ื“ื™ ื–ืขืœื‘ืข... ื™ืขืฆื˜ ืฆื™ื˜ ื–ื™ืš ืžื™ื™ืŸ ืฆื•ื•ื™ื™ื˜ืข ืื•ื™ื’.

ืื™ืš ื ื™ื˜ ืžืขืจ ื’ืขื“ืขื ืงืขืŸ ื•ื•ืึธืก ื’ืขื“ืื ืงืขืŸ ื’ืขื•ื•ืขืŸ ืื™ืŸ ืžื™ื™ืŸ ืงืึธืคึผ, ืึทื—ื•ืฅ ืฉืึทื•ื˜ื™ื ื’ "AAAAAAAAAA" ืื•ืŸ ืื ื“ืขืจืข ื–ืื›ืŸ. ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ 4 ืึทื–ื™ื™ื’ืขืจ ืื™ืŸ ื“ืขืจ ืžืึธืจื’ืŸ, ืื•ืŸ ื“ื™ ื“ืึธืงืงืขืจ ืžืงื•ืจ ืงืึธื“ ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ืขื ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ื›ืึทืฉื™ื ื’ ื‘ื™ืœื“ ืœื™ื™ึทืขืจืก. ื’ืขืขืคื ื˜ ื“ื™ ื“ืจื™ื˜ ืงืขื ืขืŸ ืคื•ืŸ ืขื ืขืจื’ื™ืข ื˜ืจื™ื ืงืขืŸ. ืื•ืŸ ืฆื•ื ืกื•ืฃ ืื™ื– ืžื™ืจ ืื™ื™ื ื’ืขืคืืœืŸ ืื– ื”ืืฉื™ื ื’ ื ืขืžื˜ ื ืืจ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ื™ ืคื™ื™ืœ, ืื™ืจ ืื™ื ื”ืืœื˜, ืื‘ืขืจ ื ื™ื˜ ืึทืงืกืขืก ืจืขื›ื˜! ื“ืึธืก ืื™ื–, ืื™ืŸ ืขื˜ืœืขื›ืข ืžื™ืกื˜ืขืจื™ืขื– ื•ื•ืขื’ ืื•ื ื“ื–ืขืจ ืจืขื›ื˜ ื–ืขื ืขืŸ ืคืึทืจืคืึทืœืŸ, ืกืขืœื™ื ื•ืงืก ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜, ืึทืงืœ ืื™ื– ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜, ืื•ืŸ ืขืก ืื™ื– ืงื™ื™ืŸ ืงืœืขืคึผื™ืง ื‘ื™ืกืœ.

ืื™ืš ืื•ื™ืกื’ืขืžืขืงื˜ ื“ื™ ื”ื™ื’ืข ื‘ื™ืœื“, ืื•ื™ืš ืื•ื™ืกื’ืขืžืขืงื˜ ื“ื™ ื‘ื™ืœื“ ืคื•ืŸ ื“ื™ ื“ืึธืงืงืขืจ ืจืขื’ื™ืกื˜ืจื™ ืื•ืŸ ืคึผื•ืฉื˜ ืขืก ื•ื•ื™ื“ืขืจ. ืื•ืŸ ืึทืœืฅ ื’ืขืืจื‘ืขื˜. ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ื‘ืขืฉืึทืก ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ืจืขื›ื˜ ื–ืขื ืขืŸ ืคืึทืจืคืึทืœืŸ, ื‘ื™ื™ื“ืข ืื™ืŸ ื“ื™ ื”ื™ื’ืข ื‘ื™ืœื“ ืื•ืŸ ืื™ืŸ ื“ื™ ื‘ื™ืœื“ ืœื™ื’ื ืขืจื™ืฉ ืื™ืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™. ื•ื•ื™ ืื™ืš ืฉื•ื™ืŸ ื’ืขื–ืื’ื˜, ืคึฟืึทืจ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืกื™ื‘ื•ืช ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืœื™ื’ืŸ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžืึทืฉื™ืŸ. ืื•ืŸ ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืื™ืŸ ืื™ื™ืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ /var/lib/docker.

ืื•ืŸ ืึทื ื˜ื™ืกืึทืคึผื™ื™ื˜ื™ื ื’ ื“ื™ ืงืฉื™ื ืฆื™ ื–ื™ื™ ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ืฆื•ืจื™ืงืงื•ืžืขืŸ ื“ืขื ื“ืึธืงืงืขืจ ืก ืึธื ืงื•ืงืŸ ืฆื• ื“ื™ ืึทืœื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ - ื ื™ื™ืŸ, ื–ื™ื™ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืคึผืจื•ื‘ื™ืจืŸ, ื•ื•ื™ื™, ื“ื™ ืฆื•ืฉื˜ืื ื“ืŸ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืœืึธื–ืŸ ืขืก. ื™ื, ืื•ืŸ ืื™ืš ื˜ืึทืงืข ื’ืขื•ื•ืืœื˜ ืฆื• ืจืขื›ืขื ืขืŸ ืขืก ืื•ื™ืก.

ื ืึธืš ืฉืจื™ื™ื‘ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ื“ื™ ืœื™ื™ื–ื•ื ื’ ืฆื• ื“ืขื ืคึผืจืึธื‘ืœืขื ืžื™ื™ื ื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืคึฟืึทืจ ืžื™ืจ, ืึธื‘ืขืจ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ืึทื ืึทืœื™ืกื™ืก ืขืก ื”ืื˜ ื ื™ืฉื˜ ื•ื™ืกืงื•ืžืขืŸ ืึทื–ื•ื™. ื”ืึธื ืขืกื˜ืœื™, ืื™ืš ื’ื•ื’ืœ ืื•ืŸ ื”ืื˜ ื ื™ื˜ ื’ืขืคึฟื™ื ืขืŸ ืขื ืœืขืš ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก.

ืจืขื–ื•ืœื˜ืึทื˜: ืื™ืš ืกืึทืœื•ื•ื“ ื“ื™ ืคึผืจืึธื‘ืœืขื, ืื™ืš ื ืึธืš ื˜ืึธืŸ ื ื™ื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ืกื™ื‘ื” =(

ืื•ื™ื‘ ื•ื•ืขืจ ืขืก ื™ื– ื•ื•ื™ื™ืกื˜, ื’ืขืกื™ื–, ื”ืื˜ ืึท ื–ืขืื•ื ื’ ื•ื•ืขื’ืŸ ื“ื™ ืžืขื’ืœืขืš ืกื™ื‘ื•ืช ืคื•ืŸ ื“ืขื ืคึผืจืึธื‘ืœืขื, ืื™ืš ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืึธืจ ืฆื•ืคืจื™ื“ืŸ ืฆื• ื”ืขืจืŸ ืคื•ืŸ ืื™ืจ ืื™ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’