• 0

كيف أنشئ Docker images وأرفعها إلى Docker Hub؟

أريد إنشاء تطبيق PHP بسيط على EC2 instance لإنشاء Docker images لتقوم بتشغيل الحاويات الافتراضية على الـ Cluster كيف أقوم بذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

لإنشاء Docker images لتطبيق PHP ثم رفعها إلى Docker Hub:

1- قم بتنصيب git وذلك لاستنساخ تطبيق PHP بسيط من  Amazon GitHub repository إلى نظام التشغيل الخاص بك.

    a- تثبيت git:

    

[ec2-user ~]$ sudo yum install -y git

    b- استنساخ تطبيق PHP إلى نظام التشغيل الخاص بك:

[ec2-user ~]$ git clone https://github.com/awslabs/ecs-demo-php-simple-app

2- تغيير الـ directories إلى المجلد ecs-demo-php-simple-app

 

[ec2-user ~]$ cd ecs-demo-php-simple-app

3- اختبر الملف Dockerfile في هذا المجلد (ملف Dockerfile هو عبارة عن manifest يصف ما هي الصورة image التي تريدها وما الذي تريد تنصيبه وتشغيله عليها).

تستخدم ECS task definition صور الحاويات Doker images لتشغيل الحاويات Containers على الحاويات الافتراضية في الكتلة Cluster الخاصة بك.

[ec2-user ecs-demo-php-simple-app]$ cat Dockerfile
FROM ubuntu:12.04

# Install dependencies
RUN apt-get update -y
RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql

# Install app
RUN rm -rf /var/www/*
ADD src /var/www

# Configure apache
RUN a2enmod rewrite
RUN chown -R www-data:www-data /var/www
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D",  "FOREGROUND"]

4- قم بعمل Build لـ Docker image من DockerFile واستبدل الاسم my-dockerhub-username باسم مستخدم Docker Hub الخاص بك.

[ec2-user ecs-demo-php-simple-app]$ docker build -t my-dockerhub-username/amazon-ecs-sample .

5- شغّل docker images للتحقّق من أنه تم إنشاء الصورة بشكل صحيح وأن اسم الصورة يحتوى على المستودع repository الذي يمكنك إضافة اسم مستخدم Docker Hub الخاص بك.

[ec2-user ecs-demo-php-simple-app]$ docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
my-dockerhub-username/amazon-ecs-sample   latest              43c52559a0a1        12 minutes ago      258.1 MB
ubuntu                                    12.04               78cef618c77e        3 weeks ago         133.7 MB

6-  قم بتشغيل الصورة التي بنيت حديثًا:

[ec2-user ecs-demo-php-simple-app]$ docker run -p 80:80 my-dockerhub-username/amazon-ecs-sample

7- افتح المتصفح وقم بالإشارة إلى الخادوم الذي يشغّل Docker ويستضيف الحاوية الخاصة بك.

إن كنت تستخدم EC2 instance ستكون هذه قيمة DNS العامة للخادوم. والذي هو العنوان نفسه الذي تستخدمه للاتصال بالنسخة instance مع SSH.

  • تأكد من أن مجموعة الأمان لديك تسمح بحركة المرور الواردة على المنفذ 80.
  • إن كنت تقوم بتشغيل Docker محليًا على جهاز لينكس أشر متصفحك إلى http://localhost/
  • إن كنت تستخدم boot2docker على جهاز ويندوز أو ماك فقم بإيجاد عنوان IP لـ VirtualBox VM التي تستضيف Docker.
$ boot2docker ip
192.168.59.103

Simple_PHP_App.thumb.png.55709d89e161bd4

8- قم بإيقاف حاوية Docker بكتابة Ctrl + C

9- لرفع Docker image إلى حساب Docker Hub الخاص بك:

a- سجل الدخول إلى حساب Docker الخاص بك.

[ec2-user ecs-demo-php-simple-app]$ docker login

b- تحقق من أنك قد قمت بتسجيل الدخول بشكل صحيح.

[ec2-user ecs-demo-php-simple-app]$ docker info

يجب أن يظهر لك "Username: my-dockerhub-username" في الخرج output

c- عمل push للصورة image

[ec2-user ecs-demo-php-simple-app]$ docker push my-dockerhub-username/amazon-ecs-sample

ملاحظة: إن تلقيت خطأ "FATA[0012] Error pushing to registry: Authentication is required" تحقق من أنك تستخدم المستودع الذي يملك صلاحيات أو أذونات تسمح لك بعمل Push.

كيف أنشئ Docker images وأرفعها إلى Docker Hub؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن