كيفية تثبيت Docker Container على نظام Linux؟ (Ubuntu و CentOS)
نشرت: 2019-08-01 لا شك أن Docker هو أفضل نظام أساسي Container Management Platform
مؤسستك و / أو مشروعك الشخصي.
لماذا نحتاج Docker؟
ضع في اعتبارك هذا السيناريو البسيط لمشروعك.
- لديك تطبيق Java Enterprise معقد يحتوي على أكثر من 50 من التبعيات المخضرمة.
- لديك القليل من تبعيات الخدمات المحلية.
- لديك مثيل قاعدة البيانات الخاص بك قيد التشغيل محليًا.
- لديك أكثر من 10 برامج نصية مخصصة للقشرة وهو مطلوب لإعداد بيئتك.
- لديك ~ 5 متغيرات البيئة.
- لديك حوالي 5 برامج نصية لبدء التشغيل التلقائي.
- وما إلى ذلك وهلم جرا…
حسنًا ، عندما تريد شحن كل ما سبق إلى عميلك ، فهذه خطوات كثيرة. أليس كذلك؟
هذا هو المكان الذي يأتي فيه Docker إلى الصورة.
بساطة:
ماذا عن بناء وتجميع كل ما سبق في single docker image
وشحن تلك الصورة إلى عميلك؟ إنها مجرد single step install
العميل get ready within few minutes
.
سننتقل في هذا البرنامج التعليمي إلى خطوات حول كيفية install Docker on Linux
وجميع الخطوات المطلوبة.
هيا بنا نبدأ:
الخطوة 1. قم بتسجيل الدخول إلى مضيف Linux وتحقق من المتطلبات المسبقة
يأتي دوكر بثلاث نكهات:
- محرك Docker - المجتمع
- محرك Docker - المؤسسة
- شركة Docker
سننتقل في هذا البرنامج التعليمي إلى خطوات تثبيت Docker Community Edition
.
1.1) قم بتسجيل الدخول إلى مضيف Linux الخاص بك.
أنا أستخدم قطرة المحيط الرقمي كمضيف لينكس الخاص بي.
1 2 3 |
bash - 3.2 $ ssh root @ 45.56.94.4 root @ 45.56.94.4 ' s password : Welcome to Ubuntu 19.04 ( GNU / Linux 5.0.0 - 13 - generic x86_64 ) |
1.2) التحقق من بنية نظام التشغيل Linux:
أنت بحاجة إلى بنية 64-bit
.
1 2 3 |
root @ localhost : ~ # arch x86_64 |
1.3) تحقق من Linux OS Kernel Level:
يجب أن يكون مستوى Kernel أكبر من 3.0.
1 2 3 |
root @ localhost : ~ # uname -r 5.0.0 - 13 - generic |
الخطوة 2. قم بتثبيت Docker Community Edition
2.1) تأكد من إضافة مفتاح Docker الرسمي PGP إلى نظامك.
1 2 3 4 |
root @ localhost : ~ # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - OK root @ localhost : ~ # |
2.2) تأكد من حصولك على مفتاح PGP الصحيح:
1 2 3 4 |
root @ localhost : ~ # sudo apt-key fingerprint 0EBFCD88 | grep 5822 Warning : apt - key output should not be parsed ( stdout is not a terminal ) 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 |
2.3) تأكد من تثبيت نظام التشغيل Ubuntu OS الخاص بك على أحدث إصدار
Command:
sudo apt-get update
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
root @ localhost : ~ # sudo apt-get update Hit : 1 http : //mirrors.linode.com/ubuntu disco InRelease Get : 2 http : //mirrors.linode.com/ubuntu disco-updates InRelease [97.5 kB] Get : 3 http : //mirrors.linode.com/ubuntu disco-backports InRelease [88.8 kB] Hit : 4 https : //download.docker.com/linux/ubuntu disco InRelease Get : 5 http : //mirrors.linode.com/ubuntu disco-updates/main amd64 Packages [226 kB] Get : 6 http : //security.ubuntu.com/ubuntu disco-security InRelease [97.5 kB] Get : 7 http : //mirrors.linode.com/ubuntu disco-updates/main i386 Packages [194 kB] Get : 8 http : //mirrors.linode.com/ubuntu disco-updates/universe i386 Packages [252 kB] Get : 9 http : //mirrors.linode.com/ubuntu disco-updates/universe amd64 Packages [254 kB] Get : 10 http : //mirrors.linode.com/ubuntu disco-updates/universe Translation-en [80.1 kB] Get : 11 http : //security.ubuntu.com/ubuntu disco-security/main i386 Packages [144 kB] Get : 12 http : //security.ubuntu.com/ubuntu disco-security/main amd64 Packages [173 kB] Get : 13 http : //security.ubuntu.com/ubuntu disco-security/universe amd64 Packages [220 kB] Get : 14 http : //security.ubuntu.com/ubuntu disco-security/universe i386 Packages [217 kB] Get : 15 http : //security.ubuntu.com/ubuntu disco-security/universe Translation-en [55.4 kB] Fetched 2 , 098 kB in 2s ( 1 , 188 kB / s ) Reading package lists . . . Done |
2.4) قم بإعداد أحدث مستودع Docker ثابت
Command:
sudo add-apt-repository "deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) مستقر"
1 2 3 4 5 6 7 8 |
root @ localhost : ~ # sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" Hit : 1 http : //mirrors.linode.com/ubuntu disco InRelease Hit : 2 http : //mirrors.linode.com/ubuntu disco-updates InRelease Hit : 3 http : //mirrors.linode.com/ubuntu disco-backports InRelease Hit : 4 https : //download.docker.com/linux/ubuntu disco InRelease Hit : 5 http : //security.ubuntu.com/ubuntu disco-security InRelease Reading package lists . . . Done |
2.5) قم بتثبيت Docker
Command:
sudo apt-get install docker-ce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
root @ localhost : ~ # sudo apt-get install docker-ce Reading package lists . . . Done Building dependency tree Reading state information . . . Done The following packages were automatically installed and are no longer required : bridge - utils dns - root - data dnsmasq - base ubuntu - fan Use 'sudo apt autoremove' to remove them . The following additional packages will be installed : aufs - tools containerd . io docker - ce - cli libltdl7 The following packages will be REMOVED : containerd docker . io runc The following NEW packages will be installed : aufs - tools containerd . io docker - ce docker - ce - cli libltdl7 0 upgraded , 5 newly installed , 3 to remove and 101 not upgraded . Need to get 87.9 MB of archives . After this operation , 133 MB of additional disk space will be used . Do you want to continue ? [ Y / n ] Y Get : 1 http : //mirrors.linode.com/ubuntu disco/universe amd64 aufs-tools amd64 1:4.9+20170918-2 [104 kB] Get : 2 http : //mirrors.linode.com/ubuntu disco/main amd64 libltdl7 amd64 2.4.6-10 [38.3 kB] Get : 3 https : //download.docker.com/linux/ubuntu disco/stable amd64 containerd.io amd64 1.2.6-3 [22.6 MB] Get : 4 https : //download.docker.com/linux/ubuntu disco/stable amd64 docker-ce-cli amd64 5:19.03.1~3-0~ubuntu-disco [42.5 MB] Get : 5 https : //download.docker.com/linux/ubuntu disco/stable amd64 docker-ce amd64 5:19.03.1~3-0~ubuntu-disco [22.7 MB] Fetched 87.9 MB in 3s ( 34.9 MB / s ) ( Reading database . . . 83080 files and directories currently installed . ) Removing docker . io ( 18.09.5 - 0ubuntu1 ) . . . '/usr/share/docker.io/contrib/nuke-graph-directory.sh' - > '/var/lib/docker/nuke-graph-directory.sh' Removing containerd ( 1.2.6 - 0ubuntu1 ) . . . Removing runc ( 1.0.0 ~ rc7 + git20190403 . 029124da - 0ubuntu1 ) . . . Selecting previously unselected package aufs - tools . ( Reading database . . . 82836 files and directories currently installed . ) Preparing to unpack . . . / aufs - tools_1 % 3a4.9 + 20170918 - 2_amd64.deb . . . Unpacking aufs - tools ( 1 : 4.9 + 20170918 - 2 ) . . . Selecting previously unselected package containerd . io . Preparing to unpack . . . / containerd . io_1 . 2.6 - 3_amd64.deb . . . Unpacking containerd . io ( 1.2.6 - 3 ) . . . Selecting previously unselected package docker - ce - cli . Preparing to unpack . . . / docker - ce - cli_5 % 3a19.03.1 ~ 3 - 0 ~ ubuntu - disco_amd64 . deb . . . Unpacking docker - ce - cli ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Selecting previously unselected package docker - ce . Preparing to unpack . . . / docker - ce_5 % 3a19.03.1 ~ 3 - 0 ~ ubuntu - disco_amd64 . deb . . . Unpacking docker - ce ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Selecting previously unselected package libltdl7 : amd64 . Preparing to unpack . . . / libltdl7_2 . 4.6 - 10_amd64.deb . . . Unpacking libltdl7 : amd64 ( 2.4.6 - 10 ) . . . Setting up aufs - tools ( 1 : 4.9 + 20170918 - 2 ) . . . Setting up containerd . io ( 1.2.6 - 3 ) . . . Setting up libltdl7 : amd64 ( 2.4.6 - 10 ) . . . Setting up docker - ce - cli ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Setting up docker - ce ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Installing new version of config file / etc / init . d / docker . . . Installing new version of config file / etc / init / docker . conf . . . Created symlink / etc / systemd / system / multi - user . target . wants / docker . service → / lib / systemd / system / docker . service . Processing triggers for systemd ( 240 - 6ubuntu5 ) . . . Processing triggers for man - db ( 2.8.5 - 2 ) . . . Processing triggers for libc - bin ( 2.29 - 0ubuntu2 ) . . . |

2.6) تحقق من إصدار Docker
1 2 |
root @ localhost : ~ # docker -v Docker version 19.03.1 , build 74b1e89 |
الخطوه 3. ابدأ تشغيل Docker وقم بتشغيل Hello World
3.1) أمر بسيط لتشغيل Docker على Linux
كما ترى أعلاه أثناء التثبيت ، يسجل Docker نفسه كخدمة نظام: /lib/systemd/system/docker.service
.
1 |
root @ localhost : ~ # sudo systemctl start docker |
3.2) دعنا نسحب Hello World Docker ونجري
Command:
sudo docker run hello-world
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
root @ localhost : ~ # sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest : Pulling from library / hello - world 1b930d010525 : Pull complete Digest : sha256 : 6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f Status : Downloaded newer image for hello - world : latest Hello from Docker ! This message shows that your installation appears to be working correctly . To generate this message , Docker took the following steps : 1. The Docker client contacted the Docker daemon . 2. The Docker daemon pulled the "hello-world" image from the Docker Hub . ( amd64 ) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading . 4. The Docker daemon streamed that output to the Docker client , which sent it to your terminal . To try something more ambitious , you can run an Ubuntu container with : $ docker run - it ubuntu bash Share images , automate workflows , and more with a free Docker ID : https : //hub.docker.com/ For more examples and ideas , visit : https : //docs.docker.com/get-started/ root @ localhost : ~ # |
سيؤدي الأمر أعلاه إلى سحب صورة عامل الإرساء وستكون قادرًا على تشغيل تطبيق Docker Hello World.
الخطوة 4. كيفية التحقق من مستودعات / صور Docker؟
قبل تشغيل تطبيق Hello World:
1 2 3 4 5 6 |
root @ localhost : ~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE keyansoftwares / logviewersvc latest 04612d6a457d 2 months ago 144MB keyansoftwares / logreadagent latest 0385a757deb5 2 months ago 138MB keyansoftwares / logreadagent < none > d75a02abb278 2 months ago 369MB grafana / grafana latest f96bf1723e2a 3 months ago 245MB |
بعد تشغيل تطبيق Hello World:
كما ترى هنا - سترى مستودعًا جديدًا مرحبًا بالعالم أدناه
1 2 3 4 5 6 7 |
root @ localhost : ~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE keyansoftwares / logviewersvc latest 04612d6a457d 2 months ago 144MB keyansoftwares / logreadagent latest 0385a757deb5 2 months ago 138MB keyansoftwares / logreadagent < none > d75a02abb278 2 months ago 369MB grafana / grafana latest f96bf1723e2a 3 months ago 245MB hello - world latest fce289e99eb9 7 months ago 1.84kB |
تهانينا. أنت كل مجموعة. لقد قمت بإعداد بيئة Linux الخاصة بك لـ Docker ، وقم بتثبيت Docker وقمت بتشغيل تطبيق Docker الأول أيضًا.
خطوة اضافية:
نوصيك باتباع خطوات ما بعد التثبيت هذه.
كيفية بدء تشغيل Docker تلقائيًا بعد إعادة تشغيل VM؟
Command:
sudo systemctl قم بتمكين عامل الإرساء
1 2 3 4 |
root @ localhost : ~ # sudo systemctl enable docker Synchronizing state of docker . service with SysV service script with / lib / systemd / systemd - sysv - install . Executing : / lib / systemd / systemd - sysv - install enable docker |
ما عليك سوى تنفيذ الأمر أعلاه وسيبدأ عامل الإرساء تلقائيًا في المرة التالية التي تعيد فيها تشغيل الجهاز الظاهري / المضيف.
اسمحوا لي أن أعرف إذا كنت تواجه أي مشكلة في تشغيل الأوامر أعلاه وأي مشكلة في Docker.
هل تريد تثبيت Docker على CentOS؟
فقط استبدل Step-2
أعلاه بالخطوات التالية:
1 2 3 4 5 6 7 8 9 |
root @ localhost : ~ # sudo yum install -y yum-utils device-mapper-persistent-data lvm2 root @ localhost : ~ # sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo root @ localhost : ~ # sudo yum install docker-ce docker-ce-cli containerd.io root @ localhost : ~ # sudo systemctl start docker root @ localhost : ~ # sudo docker run hello-world |