نحوه نصب و استفاده از Docker در اوبونتو 20.04
Docker برنامه اي است كه پروسه مديريت فرآيندهاي برنامه را در كانتينرها را ساده مي كند. كانتينرها به شما امكان مي دهند برنامه هاي خود را در فرآيندهاي جدا از منابع اجرا كنيد. آنها شبيه به ماشين هاي مجازي هستند ، اما كانتينرها قابل حمل تر، سازگارتر با منابع و وابسته تر به سيستم عامل هاست هستند.
براي آشنايي دقيق با مؤلفه هاي مختلف يك كانتينر Docker ، اكوسيستم Docker: مقدمه اي براي مولفه هاي مشترك را بررسي كنيد.
در اين آموزش ، Docker Community Edition (CE) را در اوبونتو 20.04 نصب و استفاده خواهيد كرد. شما خود Docker را نصب خواهيد كرد ، با كانتينرها و تصاوير كار مي كنيد و يك تصوير را به مخزن Docker وارد مي كنيد.
پيش نيازها
براي دنبال كردن اين آموزش به موارد زير نياز داريد:
• يك سرور مجازي Ubuntu 20.04 با پيروي از راهنماي تنظيم اوليه سرور مجازي Ubuntu 20.04 ، از جمله يك كاربر sudo غير ريشه و فايروال راه اندازي شده.
• اگر مي خواهيد تصاوير خود را ايجاد كنيد و آنها را به سمت Docker Hub هدايت كنيد ، همانطور كه در مراحل 7 و 8 نشان داده شده است ، يك حساب كاربري در Docker Hub ايجاد كنيد.
مرحله 1 – نصب Docker
بسته نصب Docker موجود در مخزن رسمي اوبونتو ممكن است آخرين نسخه نباشد. براي اطمينان از آخرين نسخه ، Docker را از مخزن رسمي Docker نصب خواهيم كرد. براي انجام اين كار ، يك منبع جديد بسته اضافه خواهيم كرد ، تا اطمينان حاصل شود كه دانلودها معتبر هستند ، كليد GPG را از Docker اضافه كرده و سپس بسته را نصب كنيد.
ابتدا ليست بسته هاي موجود را به روز كنيد:
⦁ $ sudo apt update
⦁
در مرحله بعد ، چند بسته پيش نياز را نصب كنيد كه اجازه استفاده از بسته ها را از طريق HTTPS به apt بدهد:
⦁ $ sudo apt install apt-transport-https ca-certificates curl software-properties-common
⦁
سپس كليد GPG را براي مخزن رسمي Docker به سيستم خود اضافه كنيد:
⦁ $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
⦁
مخزن Docker را به منابع APT اضافه كنيد:
⦁ $ sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable”
⦁
در مرحله بعد ، پايگاه داده بسته را با بسته هاي Docker از repo كه تازه اضافه شده به روز كنيد:
⦁ $ sudo apt update
⦁
مطمئن شويد كه به جاي repo پيش فرض اوبونتو قصد داريد از repo Docker نصب را انجام دهيد:
⦁ $ apt-cache policy docker-ce
⦁
خروجي مشابه اين را خواهيد ديد ، اگرچه ممكن است شماره نسخه Docker متفاوت باشد:
Output of apt-cache policy docker-ce
docker-ce:
Installed: (none)
Candidate: 5:19.03.9~3-0~ubuntu-focal
Version table:
5:19.03.9~3-0~ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
توجه كنيد كه docker-ce نصب نشده است ، اما نامزد نصب، از مخزن Docker براي اوبونتو 20.04 است (focal).
در آخر ، Docker را نصب كنيد:
⦁ $ sudo apt install docker-ce
⦁
اكنون بايد Docker نصب شود ، Daemon شروع به كار كند و روند قادر به شروع در زمان بوت ميشود. بررسي كنيد كه در حال اجرا است:
⦁ $ sudo systemctl status docker
⦁
خروجي بايد مانند موارد زير باشد ، نشان مي دهد كه اين سرويس فعال و در حال اجرا است:
Output
● docker.service – Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 24321 (dockerd)
Tasks: 8
Memory: 46.4M
CGroup: /system.slice/docker.service
└─24321 /usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock
نصب Docker اكنون نه تنها سرويس Docker (Daemon) بلكه ابزار خط فرمان docker يا همان كلاينت Docker را به شما مي دهد. ما نحوه استفاده از دستور docker را بعدا در اين آموزش بررسي خواهيم كرد.
مرحله 2 – اجراي فرمان Docker بدون sudo (اختياري)
به طور پيش فرض ، دستور docker فقط مي تواند توسط كاربر root يا توسط يك كاربر در گروه docker اجرا شود ، كه به طور خودكار در طي مراحل نصب Docker ايجاد مي شود. اگر سعي كنيد فرمان docker را بدون پيشوند آن با sudo يا بدون حضور در گروه docker اجرا كنيد ، خروجي مانند اين را دريافت خواهيد كرد:
Output
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See ‘docker run –help’.
اگر مي خواهيد از تايپ كردن sudo اجتناب كنيد ، هر زمان كه دستور docker را اجرا كرديد ، نام كاربري خود را به گروه docker اضافه كنيد:
⦁ $ sudo usermod -aG docker ${USER}
⦁
براي اعمال عضويت در گروه جديد ، از سرور مجازي خارج شويد و دوباره وارد سيستم شويد يا دستور زير را تايپ كنيد:
⦁ $ su – ${USER}
⦁
براي ادامه از شما خواسته مي شود رمزعبور كاربري خود را وارد كنيد.
با تايپ كردن دستور زير تأييد كنيد كه كاربر شما اكنون به گروه docker اضافه شده است:
⦁ $ id -nG
⦁
Output
sammy sudo docker
اگر نياز داريد كه يك كاربر را به گروه docker اضافه كنيد كه با آن وارد نشده ايد ، آن نام كاربري را به صراحت اعلام كنيد:
⦁ $ sudo usermod -aG docker username
⦁
بقيه اين مقاله فرض مي كنيد كه شما دستور docker را به عنوان كاربر در گروه docker اجرا مي كنيد. اگر اين انتخاب را نكرديد ، لطفاً دستورات را با sudo وارد كنيد.
بياييد دستور docker را بررسي كنيم.
مرحله 3 – استفاده از دستور Docker
استفاده از docker شامل عبور از آن زنجيره اي گزينه ها و دستورات است كه پس از آن آرگومان ها قرار مي گيرند. تركيب دستور به اين شكل است:
⦁ $ docker [option] [command] [arguments]
⦁
براي مشاهده همه دستورات فرعي، تايپ كنيد:
⦁ $ docker
⦁
در مورد Docker 19 ، ليست كاملي از زيرفرمان هاي موجود شامل موارد زير است:
Output
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container’s changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container’s filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container’s filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource uغير مجاز مي باشدe statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
براي مشاهده گزينه هاي موجود براي يك دستور خاص ، تايپ كنيد:
⦁ $ docker docker-subcommand –help
⦁
براي مشاهده اطلاعات گسترده سيستم درباره Docker ، از دستور زير استفاده كنيد:
⦁ $ docker info
⦁
بياييد برخي از اين دستورات را بررسي كنيم. ما با كار با تصاوير شروع خواهيم كرد.
مرحله 4 – كار با تصاوير Docker
كانتينرهاي Docker از تصاوير Docker ساخته شده اند. به طور پيش فرض ، Docker اين تصاوير را از Docker Hub دريافت ميكند ، يك رجيستري Docker كه توسط Docker ، يعني شركت پشتيبان پروژه Docker اداره مي شود. هر كسي مي تواند تصاوير Docker خود را در Docker Hub ميزباني كند ، بنابراين بيشتر برنامه ها و توزيع هاي لينوكس مورد نياز شما داراي تصاوير ميزباني شده در آنجا خواهند بود.
براي بررسي اينكه آيا مي توانيد به تصاوير در Docker Hub دسترسي پيدا كرده و آن ها دانلود كنيد ، اين دستور را تايپ كنيد:
⦁ $ docker run hello-world
⦁
خروجي نشان مي دهد كه Docker به درستي كار ميكند:
Output
Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c
8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This mesغير مجاز مي باشدe shows that your installation appears to be working correctly.
…
Docker در ابتدا قادر نبود تصوير hello world را به صورت لوكال پيدا كند ، بنابراين تصوير را از Docker Hub دانلود ميكرد ، كه مخزن پيش فرض ميباشد. پس از دانلود تصوير ، Docker يك كانتينر از تصوير و برنامه موجود در داخل كانتينر را اجرا كرده و پيام را نمايش داد.
با استفاده از دستور docker با زيرفرمان search مي توانيد تصاوير موجود در Docker Hub را جستجو كنيد. به عنوان مثال ، براي جستجوي تصوير اوبونتو ، تايپ كنيد:
⦁ $ docker search ubuntu
⦁
اسكريپت Docker Hub را خزش كرده و ليستي از تمام تصويرهايي را كه نام آنها با رشته جستجو مطابقت دارد ، برمي گرداند. در اين مورد، خروجي مشابه اين خواهد بود:
Output
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 10908 [OK]
dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 428 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 244 [OK]
consol/ubuntu-xfce-vnc Ubuntu container with “headless” VNC session… 218 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 108 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with
…
در ستون OFFICIAL ، ok ، تصويري را بيان ميكند كه توسط شركت پشتيبان پروژه ساخته و پشتيباني ميشود. هنگامي كه تصويري را كه مي خواهيد از آن استفاده كنيد مشخص كرديد ، مي توانيد آن را با استفاده از زيرفرمان pull در رايانه خود دانلود كنيد.
دستور زير را براي دانلود تصوير رسمي اوبونتو در رايانه خود اجرا كنيد:
⦁ $ docker pull ubuntu
⦁
خروجي زير را مشاهده خواهيد كرد:
Output
Using default tag: latest
latest: Pulling from library/ubuntu
d51af753c3d3: Pull complete
fc878cd0a91c: Pull complete
6154df8ff988: Pull complete
fee5db0ff82f: Pull complete
Digest: sha256:747d2dbbaaee995098c9792d99b
d333c6783ce56150d1b11e333bbceed5c54d7
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
پس از دانلود يك تصوير ، مي توانيد يك كانتينر را با استفاده از تصوير دانلود شده با زيرفرمان run اجرا كنيد. همانطور كه با مثال hello world مشاهده كرديد ، اگر هنگام اجراي docker با زيرفرمان run ، تصويري دانلود نشده است ، كلاينت Docker ابتدا تصوير را دانلود مي كند ، سپس يك كانتينر را با استفاده از آن اجرا مي كنيد.
براي ديدن تصاويري كه در رايانه شما دانلود شده است ، اين دستور را تايپ كنيد:
⦁ $ docker images
⦁
خروجي شبيه به زير خواهد بود:
Output
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB
همانطور كه بعداً در اين آموزش مشاهده خواهيد كرد ، تصاويري كه شما براي اجراي كانتينرها از آنها استفاده مي كنيد قابل تغيير است و از آنها براي توليد تصاوير جديد استفاده مي شود ، كه ممكن است بعدا در Docker Hub يا ساير رجيستري هاي Docker آپلود شود (اصطلاح فني آنpushed است).
بياييد ببينيم كه چگونه كانتينرها را با جزئيات بيشتري اجرا كنيم.
مرحله 5 – اجراي يك كانتينر Docker
كانتينر hello-world شما كه در مرحله قبل اجرا شد نمونه اي از كانتينري است كه پس از انتشار يك پيام آزمايشي اجرا و ارائه مي شود. كانتينرها مي توانند بسيار مفيدتر از آن باشند و مي توانند تعاملي باشند. از اين گذشته ، آنها شبيه به ماشين هاي مجازي هستند ، فقط با منابع سازگار تر هستند.
به عنوان نمونه ، بگذاريد كانتينري را با استفاده از آخرين تصوير اوبونتو اجرا كنيم. تركيبي از سوئيچ هاي -i و -t به شما امكان دسترسي پوسته تعاملي به داخل كانتينرها را مي دهد:
⦁ $ docker run -it ubuntu
⦁
اعلان فرمان شما بايد تغيير كند تا منعكس كننده اين واقعيت باشد كه اكنون در داخل كانتينر كار مي كنيد و بايد به شكل درآيد:
Output
root@d9b100f2f636:/#
به شناسه كانتينر را در اعلان فرمان توجه داشته باشيد. در اين مثال d9b100f2f636 است. بعداً به آن شناسه كانتينر احتياج داريد تا بتوانيد كانتينر آن را حذف كنيد.
اكنون مي توانيد هر دستوري را درون كانتينر اجرا كنيد. به عنوان مثال ، بياييد پايگاه داده بسته را درون كانتينر به روز كنيم. لازم نيست كه هر دستور را با sudo تنظيم كنيد ، زيرا به عنوان كاربر اصلي در داخل كانتينر كار مي كنيد:
⦁ root@d9b100f2f636:/# apt update
⦁
سپس هر برنامه اي را در آن نصب كنيد. بگذاريد Node.js را نصب كنيم:
⦁ root@d9b100f2f636:/# apt install nodejs
⦁
اين Node.js را در مخزن از مخزن رسمي اوبونتو نصب مي كند. پس از اتمام نصب ، تأييد كنيد كه Node.js نصب شده است:
⦁ root@d9b100f2f636:/# node -v
⦁
شماره نسخه نمايش داده شده در ترمينال خود را مشاهده خواهيد كرد:
Output
v10.19.0
هرگونه تغيير در داخل كانتينر فقط براي آن كانتينر اعمال مي شود.
براي خروج از كانتينر ، exit را در اعلان تايپ كنيد.
بياييد نگاهي به مديريت كانتينرهاي موجود در سيستم خود بيندازيم.
مرحله 6 – مديريت كانتينرهاي Docker
پس از مدتي استفاده از Docker ، بسياري از كانتينرهاي فعال (در حال اجرا) و غيرفعال را در رايانه خود خواهيد داشت. براي مشاهده موارد فعال ، از دستور زير استفاده كنيد:
⦁ $ docker ps
⦁
خروجي مشابه زير را مشاهده خواهيد كرد:
Output
CONTAINER ID IMAGE COMMAND CREATED
در اين آموزش ، دو كانتينر را شروع كرديد. يكي از تصوير hello world و ديگري از تصوير ubuntu. هر دو كانتينرديگر در حال اجرا نيستند ، اما هنوز هم در سيستم شما وجود دارند.
براي مشاهده همه كانتينرها – فعال و غيرفعال ، docker ps را با كليد -a اجرا كنيد:
⦁ $ docker ps -a
⦁
خروجي مشابه اين را مشاهده خواهيد كرد:
1c08a7a0d0e4 ubuntu “/bin/bash” 2 minutes ago Exited (0) 8 seconds ago quizzical_mcnulty
a707221a5f6c hello-world “/hello” 6 minutes ago Exited (0) 6 minutes ago youthful_curie
براي مشاهده جديدترين كانتينري كه ايجاد كرده ايد ، سوئيچ -l را از آن عبور دهيد:
⦁ $ docker ps -l
$ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ 1c08a7a0d0e4 ubuntu “/bin/bash” 2 minutes ago Exited (0) 40 seconds ago quizzical_mcnulty
$
براي شروع يك كانتينر متوقف شده ، از docker start استفاده كنيد ، به دنبال آن شناسه كانتينر يا نام كانتينر مي آيد. بياييد كانتينر مستقر در اوبونتو را با شناسه 1c08a7a0d0e4 شروع كنيم:
⦁ $ docker start 1c08a7a0d0e4
⦁
كانتينر شروع مي شود و مي توانيد از docker ps براي ديدن وضعيت آن استفاده كنيد:
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c08a7a0d0e4 ubuntu “/bin/bash” 3 minutes ago Up 5 seconds quizzical_mcnulty
براي متوقف كردن يك كانتينر در حال اجرا ، از docker stop استفاده كنيد ، به دنبال آن شناسه يا نام كانتينر درج ميشود. اين بار ، ما از اسمي استفاده مي كنيم كه Docker به كانتينر اختصاص داده است ، و quizzical_mcnulty ميباشد:
⦁ $ docker stop quizzical_mcnulty
⦁
وقتي تصميم گرفتيد كه ديگر نيازي به كانتينر نداشته باشيد ، آنرا با دستور docker rm ، دوباره با استفاده از شناسه كانتينر يا نام آن جدا كنيد. از دستور docker ps -a براي يافتن شناسه يا نام كانتينر مربوط به تصوير مربوط به hello world استفاده كنيد و آن را حذف كنيد.
⦁ $ docker rm youthful_curie
⦁
مي توانيد كانتينر جديدي را راه اندازي كرده و با استفاده از سوئيچ –name آن را نامگذاري كنيد. همچنين مي توانيد براي ايجاد يك كانتينر در صورت متوقف شدن ، از كليد سوئيچ –rm استفاده كنيد. براي اطلاعات بيشتر در مورد اين گزينه ها و ساير موارد ، به فرمان docker run help مراجعه كنيد.
كانتينرها را مي توان به تصاويري تبديل كرد كه مي توانيد از آنها براي ساخت كانتينرهاي جديد استفاده كنيد. بياييد ببينيم كه چگونه اين كار مي كند.
مرحله 7 – انجام تغييرات در يك كانتينر روي يك تصوير Docker
هنگامي كه يك تصوير Docker را راه اندازي مي كنيد ، مي توانيد درست مانند يك ماشين مجازي ، فايل ها را ايجاد ، اصلاح و حذف كنيد. تغييراتي كه ايجاد مي كنيد فقط در مورد آن كانتينر اعمال مي شود. مي توانيد آن را شروع و متوقف كنيد ، اما هنگامي كه آن را با دستور docker rm از بين ميبريد ، تغييرات به راحتي از بين مي روند.
در اين بخش نحوه ذخيره حالت يك كانتينر به عنوان تصوير جديد Docker به شما نشان داده مي شود.
پس از نصب Node.js در داخل كانتينر اوبونتو ، اكنون يك كانتينر در حال متوقف كردن تصوير وجود دارد ، اما اين كانتينر با كانتينري كه براي ايجاد تصوير استفاده كرديد، فرق مي كند. اما ممكن است بخواهيد بعداً از اين كانتينرهايNode.js به عنوان پايه اي براي تصاوير جديد استفاده كنيد.
سپس با استفاده از دستور زير تغييرات را به عنوان نمونه جديد Docker انجام دهيد.
⦁ $ docker commit -m “What you did to the image” -a “Author Name” container_id repository/new_image_name
⦁
سوئيچ -m f براي پيام تعهدي است كه به شما و ديگران كمك مي كند بدانند چه تغييراتي ايجاد كرده ايد ، در حالي كه -a براي مشخص كردن نويسنده استفاده مي شود. bowl_id همان چيزي است كه شما در ابتداي آموزش هنگام ذكر جلسه تعاملي Docker يادداشت كرديد. مخزن معمولاً نام كاربري Docker Hub شماست، مگر اينكه مخازن اضافي را در Docker Hub ايجاد كرده باشيد.
به عنوان مثال ، براي كاربر sammy ، با شناسه كانتينر d9b100f2f636 ، دستور زير را خواهيم داشت:
⦁ $ docker commit -m “added Node.js” -a “sammy” d9b100f2f636 sammy/ubuntu-nodejs
⦁
وقتي يك تصوير را ارائه مي كنيد ، تصوير جديد به صورت محلي در رايانه شما ذخيره مي شود. بعداً در اين آموزش ، ياد مي گيريد كه چگونه يك تصوير را به رجيستري Docker مانند Docker Hub وارد كنيد تا ديگران بتوانند به آن دسترسي پيدا كنند.
دوباره ليست كردن تصاوير Docker ، تصوير جديد و همچنين قديمي كه از آن گرفته شده است را نشان مي دهد:
⦁ $ docker images
⦁
خروجي مانند اين را خواهيد ديد:
Output
REPOSITORY TAG IMAGE ID CREATED SIZE
sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB
…
در اين مثال ، ubuntu-nodejs تصوير جديد است كه از تصوير موجود اوبونتو از Docker Hub گرفته شده است. تفاوت اندازه نشان دهنده تغييراتي است كه ايجاد شده است. و در اين مثال ، تغيير در نصب NodeJS بود. بنابراين دفعه ديگر كه بايد با استفاده از اوبونتو با پيش نصب NodeJS يك كانتينر را اجرا كنيد ، مي توانيد از تصوير جديد استفاده كنيد.
همچنين مي توانيد تصاوير را از يك Dockerfile بسازيد ، كه به شما امكان مي دهد نصب نرم افزار را در يك تصوير جديد خودكار كنيد. با اين حال ، اين مسئله خارج از محدوده اين آموزش است.
حال بگذاريد تصوير جديد را با ديگران به اشتراك بگذاريم تا بتوانند كانتينرها را از آن ايجاد كنيم.
مرحله 8 – وارد كردن تصاوير Docker به مخزن Docker
مرحله منطقي بعدي پس از ايجاد يك تصوير جديد از يك تصوير موجود ، به اشتراك گذاري آن با چند نفر از دوستانتان ، كل جهان موجود در Docker Hub يا ساير رجيستري هاي Docker است كه به آن دسترسي داريد. براي وارد كردن يك تصوير به Docker هاب يا هر رجيستري ديگر Docker ، بايد در آنجا يك حساب كاربري داشته باشيد.
در اين بخش نحوه ورود تصوير Docker به Docker Hub به شما نشان داده مي شود. براي يادگيري نحوه ايجاد رجيستري خصوصي Docker خود ، مقاله نحوه تنظيم يك رجيستري Docker خصوصي در اوبونتو 14.04 را بررسي كنيد.
براي وارد كردن تصوير ، ابتدا وارد Docker Hub شويد.
⦁ $ docker login -u docker-registry-username
⦁
از شما خواسته مي شود با استفاده از گذرواژه Docker Hub اعتبار خود را تأييد كنيد. اگر گذرواژه صحيح را وارد كنيد ، تأييد اعتبار بايد موفق آميز باشد.
توجه: اگر نام كاربري رجيستري Docker شما با نام كاربري محلي كه براي ايجاد تصوير از آن استفاده كرده ايد متفاوت است ، بايد تصوير خود را با نام كاربري رجيستري خود تگ كنيد. براي مثالي كه در مرحله آخر آورده شده است ، بايد تايپ كنيد:
⦁ $ docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs
⦁
سپس مي توانيد با استفاده از دستور زير تصوير را وارد كنيد:
براي وارد كردن تصوير ubuntu-nodejs به مخزن sammy ، اين دستور عبارت است از:
⦁ $ docker push sammy/ubuntu-nodejs
⦁
ممكن است اين فرآيند آپلود كردن تصاوير مدتي طول بكشد ، اما پس از اتمام ، خروجي به اين صورت خواهد بود:
Output
The push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed
…
پس از وارد كردن تصوير به رجيستري ، بايد مانند صفحه نمايش تصوير زير ، در داشبورد حساب شما فهرست شود.
اگر تلاش براي وارد كردن تصوير منجر به خطايي از اين دست شود ، احتمالاً log in نشده ايد:
Output
The push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Preparing
5f70bf18a086: Preparing
a3b5c80a4eba: Preparing
7f18b442972b: Preparing
3ce512daaf78: Preparing
7aae4540b42d: Waiting
unauthorized: authentication required
با docker login وارد شويد و تلاش براي ورود را تكرار كنيد. سپس تأييد كنيد كه در صفحه مخزن Docker Hub شما وجود دارد.
اكنون مي توانيد با استفاده از docker pull sammy / ubuntu-nodejs ، تصوير را به دستگاه جديد وارد كنيد و از آن براي اجراي يك كانتينر جديد استفاده كنيد.
نتيجه
در اين آموزش Docker را نصب كرده ايد ، با تصاوير و كانتينرها كار كرده ايد و يك تصوير اصلاح شده را به Docker Hub وارد كرده ايد.
برچسب: ،