نکتههای جنگویی - داکر پرتوان
داکر؛ تو این مطلب خیلی خلاصه و جمعوجور، در مطلب کش کردن مجبور بودیم که memcahe رو بهصورت دستی بریم از سایتش دانلود کنیم و نصب کنیم یا از تو مخزن نصبش کنیم. یا در مطلب رسپی کرفس و جنگو مجبور بودیم RabbitMQ رو نصب کنیم.
حالا در این مطلب من داکر رو نصب کردم. شما هم نصب کنید. راه حل نصب؟ روی لینک زیر کلیک کنید :)
حالا که داکر نصب شده، اول memcache رو دانلود میکنم:
➜ ~ docker pull memcached
بعد یه Container ازش میسازم:
➜ ~ docker run -it -d memcached
اگر با موفقیت کانتینر ساخته شه، یه رشته رو بهم تو خروجی نشون میده:
92da2bf45553d4bb9bf7c98fa7d9776d79953337522f32049aad601cc3283aa4
حالا IPای که این کانتینر روش اجرا شده رو بدست میارم:
➜ ~ docker inspect 92da2bf45553d4bb9bf7c98fa7d9776d79953337522f32049aad601cc3283aa4
که یه خروجی JSON مانند داره. که یکی از کلیدهاش:
"IPAddress": "172.17.0.3",
هست. که نشون میده این کانتینر روی IP داخلی 172.17.0.3 در حال اجراست. برای اطمینان:
➜ ~ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 92da2bf45553 memcached "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 11211/tcp angry_edison
حالا یه کانتینر memcache دارم که روی پورت 11211 در حال اجراست. خب الان به A/settings.py پروژهم میرم و :
# Cache CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '172.17.0.3:11211', } }
تنظیم کش رو تغییر میدم :). به همین سادگی بهجای اینکه مجبور باشم خود memcache رو نصب کنم، میام از داکر استفاده میکنم.
نوبت به RabbitMQ میرسه، مراحل بالا رو برای RabbitMQ هم انجام میدم:
➜ ~ docker pull rabbitmq
ساخت کانتینر:
➜ ~ docker run -it -d rabbitmq
➜ ~ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 72a2d9cd8a41 rabbitmq "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp sharp_darwin 92da2bf45553 memcached "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 11211/tcp
اگر inspect بگیرم:
➜ ~ docker inspect 72a2d9cd8a41
میبینم که IP اجرایی RabbitMQ:
"IPAddress": "172.17.0.4",
هست. الان، هم IP رو دارم و هم PORT دوباره به A/settings.py میرم و:
# CELERY CONFIGURATIONS CELERY_BROKER_URL = 'amqp://guest:guest@172.17.0.4:5672'
کانفیگ مربوط به سلری رو تغییر میدم. حالا اگر پروژهی جنگو و سلری رو دوباره اجرا کنم میبینم پروژه بهخوبی کار میکنه.
سادهترین استفاده از داکر پرتوان برای این ناتوان همین بود =).
و پایان./