Docker Troubleshooting

از ویکی پارس پویش
پرش به: ناوبری, جستجو

محتویات

Docker

Docker Troubleshooting

دستورات مفید برای مدیریت docker-compose


برای خاموش کردن سرورها.

  docker-compose  stop   


برای روشن کردن سرورها.


  docker-compose  start   
برای اجرای سرورها (معادل run در docker)
  docker-compose  up -d   
برای اجرای حذف سرورها (معادل rm در docker).
  docker-compose  down  


برای مشاهده سرورهای موجود

  docker-compose  ps   


برای مشاهده میزان بارسرورها


  ddocker-compose  top   

برای انجام عملیات فوق بر روی یک سرور خاص از دستور زیر استفاده میکنیم

  docker-compose  start core   


برای اتصال به docker از دستور زیر استفاده مینماییم


  (docker attach (docker name   


این دستور باعث میشود شما به شل docker متصل شود.

برای نمایش لیست کانتینر های اجرای موجود از دستور زیر استفاده میکند


  Docker ps    

برای نمایش تمام کانتینر ها از دستور زیراستفاده میشود.

  Docker ps -a   

نکته مهم:

برای خروج از سرور attach شده از کلید ctl + p + q استفاده نمایید. در صورت استفاده از کلید ctl+d با دستور exit ممکن است سرور stop شود. (در صورتی که کانتینر را با -d اجرا کرده باشید, stop نمیشود).


نحوه راه اندازی سرور registry hub

برای راه اندازی سرور ریجستری لوکال لازم است دستور زیر را وارد نماییم

docker run -d -p 5000:5000 --restart=always --name registry registry:2 

در این صورت سرور registry اجرا شده است. برای استفاده از این سرور لازم است ایمیج مورد نظر تگ زده شود.

docker tag debian:ibs 5.202.129.64:5000/debian:IBSng 

دستور بالا image به نام debian:ibs را به صورت زیر تگ میزند

5.202.129.64:5000/debian:IBSng 

حال در هر جایی که از این image استفاده شود, ایمیج مورد نظر دانلود میشود.برای مثال:

docker run 5.202.129.64:5000/debian:IBSng
  • تنظیمات سمت سرور :

برای راه اندازی docker registry ابتدا سرور debian و docker را بر روی سرور نصب می نماییم سپس برای اجرای برنامه ریجستری دستور زیر را اجرا میکنیم برای راه اندازی docker registry ابتدا سرور debian و docker را بر روی سرور نصب می نماییم سپس برای اجرای برنامه ریجستری دستور زیر را اجرا میکنیم

docker run -d -p 5000:5000 --restart=always --name registry registry:2 

دستور بالا image به نام registry:2 را دانلود و اجرا کرده. این ایمیج برای راه اندازی docker repository (docker reistry) استفاده میشود.

توجه نمایید که پورت ۵۰۰۰ در هاست باز است.


  • تگ گذاری ایمیج های  :

برای بارگذاری ایمیج های docker بر روی registry hub لازم است ابتدا باید ایمیج مورد نظر را تگ بزنیم. برای این کار از دستور زیر استفاده میکنیم:

docker tag debian:ibs 5.202.129.64:5000/debian:IBSng 

این دستور به ایمیج به نام debian:ibs تگ به صورت 5.202.129.64:5000/debian:IBSng اختصاص میدهد. قسمت اول این تگ نشانی اینترنتی (IP) سرور است و قسمت دوم نشانی ایمیج اصلی تگ مورد است (debian). در نهایت IBSng که نشان دهنده نام ایمیج است, نشان داده شده است.

  • تنظیمات سمت کلاینت  :

برای استفاده از ایمیج موجود در روی سرور لازم است به سادگی ایمیج موجود را با دستور زیر pull نمایید.

docker  pull 5.202.129.64:5000/debian:IBSng 

در صورتی که سرور را بدون certificate کانفیگ کرده باشید, لازم است کانفیگ زیر را در فایل vim /etc/docker/daemon.json وارد نماییم

{
"insecure-registries": ["5.202.129.64:5000"]
}

و سپس سرویس docker را ریست نمایید

service docker restart 

این مورد باعث میشود که کلاینت شما بتواند به سرور docker registry بدون https متصل شود.


  • عیب یابی شبکه :

از آنجا که داکر از iptable برای اتصال به شبکه استفاده میکند. مهمترین دستور در عیب یابی شبکه چک کردن IP tables است. دستور زیر برای چک کردن IPtables استفاده میشود.

 iptables -t nat -nvL 

خروجی زیر مشاهده میشود

0   0 DNAT    udp  --  !br-600b9c816e99 *  0.0.0.0/0    0.0.0.0/0   udp dpt:1812 to:192.168.50.11:1812 

این نمونه از خروجی نشان میدهد که پروتکل udp از همه سورسها با پرت 1812 برای مقصد 192.168.50.11:1812 باز شده است.

خطایابی: در صورتی که پورت خاصی لازم دارید باید پرت باز باشد. در صورتی که لازم دارید پرت خاصی برای داکر باز نمایید. باید رول مورد نظر را در iptable وارد نمایید. برای مثال اینجا پرت ۹۵۹۵ را برای دسترسی به یک کانتینر باز مینماییم.

از دستور زیر استفاده نمایید.

iptables -t nat -A POSTROUTING -s 192.168.20.10/32 -d 192.168.20.10/32 -p tcp -m tcp --dport 9595 -j MASQUERADE 
iptables -t nat -A DOCKER ! -i br-600b9c816e99 -p udp -m udp --dport 9595 -j DNAT --to-destination 192.168.50.11:9595 

برای ساده شدن کار میتواند ابتدا دستور زیر را وارد نمایید و سپس خروجی را ویرایش کرده و port خود را وارد نمایید.

iptables -t nat -S 

خروجی به صورت زیر است:

-A POSTROUTING -s 192.168.50.11/32 -d 192.168.50.11/32 -p tcp -m tcp --dport 8080 -j MASQUERADE 
-A DOCKER ! -i br-600b9c816e99 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.50.11:8080 

حال کافی است پورت ها را به پورت دلخواه وارد کرده و در ابتدای عبارت زیر را وارد کرده

“iptables -t nat” 

مثلا برای تبدیل پورت 9595 به 22 به دو دستور زیر را اجرا میکنیم

iptables -t nat -A DOCKER ! -i br-b10d536b1f47 -p tcp -m tcp --dport 9595 -j DNAT --to-destination 192.168.50.11:22 
iptables -t nat -A DOCKER ! -i br-b10d536b1f47 -p tcp -m tcp --dport 9595 -j DNAT --to-destination 192.168.50.11:22 
  • عیب یابی containers :

برای مشاهده status از دستور زیر استفاده میکنیم

docker-compose ps 

پس از اجرای دستور زیر انتظار میرود که موارد شمابه زیر نمایش داده شود:

D3.png


دستور نمایش میدهد که هر دو سرور به درستی up شده است و تمامی پرت ها به سمت کانتینر ها باز است. در صورتی که یکی از سرورها down یا stop است با دستور زیر میتوان آن را UP کرد

docker-compose start <server name> 

که در آن <server name> نام سروری است که قرار است up شود.


  • مشاهده docker log :

برای مشاهده log هر داکر از دستور زیر استفاده میشود.

<docker logs <dockername 

همچنین درصورت استفاده از docker compose لازم است دستور زیر را وارد نمایید

docker-compose logs 

ابزارهای شخصی

گویش‌ها
فضاهای نام
عملکردها
گشتن
جعبه‌ابزار