نصب داکر بر روی لینوکس
مقدمه
داکر Docker یک برنامه کاربردی است که فرآیند مدیریت پردازش های برنامه ها را توسط مخزن ها Containers راحت تر می کند. مخزن ها منابع ایزوله شده ای هستند که اجازه می دهند پردازش برنامه های شما در آن محیط ها انجام شوند. آن ها بسیار شبیه به ماشین ها مجازی هستند ، اما مخزن ها قابل حمل (Portable) هستند و همچنین منابع سازگار بیشتری دارند وبه سیستم عامل میزبان وابسته هستند. در این آموزش نسخه عمومی Docker Community Edition (CE) را نصب و استفاده می کنیم. خودتان Docker را نصب می کنید و با مخزن ها Containers و منبع ها Images کار می کنید ، و یک منبع image را به منابع Docker اضافه می کنید.
پیش نیاز ها
در این آموزش به موارد زیر نیاز دارید :
- یک سرور مجازی Ubuntu 18..04 با دسترسی یک کاربر غیر ریشه non-root و عضو sudoer همراه با یک دیوار آتش Firewall.
- یک حساب کاربری در Docker Hube ، البته اگر می خواهید که یک image برای خودتان بسازید و طبق راهنمای مرحله ۷ و ۸ آن را در Docker Hub قرار دهید.
- قبل از شروع مراحل لازم است آی پی شکن را در DNS سیستم اوبونتو اضافه کنیم که بتواند با سایت داکر در ارتباط باشیم.
مرحله اول – نصب Docker
بسته (package) نصب داکر در منابع رسمی اوبونتو موجود می باشد ولی ممکن است که آخرین نسخه در این منابع موجود نباشد برای همین آخرین نسخه را از منابع رسمی Docker نصب می کنیم. برای این کار منبع بسته (package source) جدید را به سیستم اضافه می کنیم و برای اطمینان از معتبر بودن دانلود بسته کلید GPG را اضافه می کنیم ، سپس بسته را نصب می کنیم.
ابتدا لیست بسته های موجود را نصب می کنیم :
sudo apt-get update
سپس ، تعدادی از بسته های پیش نیاز را با 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 bionic stable"
سپس دیتابیس بسته ها را منابع جدید Docker که اضافه کردیم را به روز رسانی می کنیم :
sudo apt update
در ادامه باید از اینکه نصب از منابع Docker به جای منابع پیش فرض Ubuntu انجام می شود مطمئن شویم :
apt-cache policy docker-ce
خروجی باید شبیه به این باشد ، ولی ممکن است که نسخه Docker متفاوت باشد :
docker-ce:
Installed: (none)
Candidate: 18.03.1~ce~3-0~ubuntu
Version table:
18.03.1~ce~3-0~ubuntu 500
500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
دقت کنید که docker-ce هنوز نصب نشده ولی برای نصب از منبع Docker بر روی Ubuntu 18.04 (bionic) انتخاب شده است.
در نهایت ، با دستور زیر Docker را نصب می کنیم :
sudo apt install docker-ce
اکنون Docker باید بر روی سیستم شما نصب شده باشد ، سرویس daemon آن اجرا شده باشد و هنگام راه اندازی مجدد سیستم (reboot) برای اجرای خودکار ، فعال (enable) شده باشد.
sudo systemctl status docker
خروجی این دستور باید مشابه زیر و نشان دهد که سرویس Docker در حال اجرا و فعال است :
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-07-05 15:08:39 UTC; 2min 55s ago
Docs: https://docs.docker.com
Main PID: 10096 (dockerd)
Tasks: 16
CGroup: /system.slice/docker.service
├─10096 /usr/bin/dockerd -H fd://
└─10113 docker-containerd --config /var/run/docker/containerd/containerd.toml
نصب کردن Docker فقط سرویس آن را در اخیتار شما قرار نمی دهد بلکه ابزار خط فرمان docker یا Docker Client نیز در اختیار شما هستند. بعدا در این آموزش درباره خط فرمان docker توضیح خواهیم داد.
مرحله دوم – اجرای دستور Docker بدون Sudo ( اختیاری )
به صورت پیش فرض دستور docker فقط با کاربر root در گروه docker که به صورت خودکار هنگام فرآیند نصب Docker ایجاد شده ، اجرا می شود. اگر بخواهید که دستور docker را بدون استفاده از sudo یا گروه docker اجرا کنید خروجی مشابه به این را مشاهده خواهید کرد :
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
اگر به هر دلیلی می خواهید که هنگام اجرای دستور docker از sudo استفاده نکنید ، باید نام کاربریتان را به گروه docker اضافه کنید :
sudo usermod -aG docker ${USER}
برای اعمال تغییرات برای عضو جدید گروه ، یک بار از سرور خارج شوید (logout) و مجددا وارد شوید و دستور زیر را وارد کنید :
su - ${USER}
در ادامه کار از شما خواسته خواهد شد که رمز عبور این کاربر را وارد کنید.
با دستور زیر مشاهده می کنید که نام کاربریتان در گروه docker اضافه شده است :
id -nG
Output
sammy sudo docker
اگر می خواهید کاربری را که با آن وارد سیستم نشده اید به گروه docker اضافه کنید ، با دستور زیر کاربر را به صورت مستقیم عضو گروه کنید :
sudo usermod -aG docker username
در ادامه آموزش فرض می کنیم که شما دستور docker را با یک کاربر عضو گروه docker اجرا می کنید اگر به هر دلیل نمی خواهید این کار را انجام دهید از sudo استفاده کنید.
در ادامه به توضیح دستور docker می پردازیم.
مرحله سوم – استفاده از دستور docker
دستور docker شامل زنجیره ای از گزینه ها (options) و دستوراتی است که دارای آرگومان و ورودی می باشد. قالب دستوری آن به این صورت می باشد :
docker [option] [command] [arguments]
برای دیدن تمامی دستورات زیر مجموعه ، دستور زیر را وارد کنید :
Docker
در Docker 18 لیست کامل دستورات زیر مجموعه به این صورت است :
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 usage 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
برای مشاهده گزینه های (options) قابل استفاده برای یک دستور زیر مجموعه ، دستور زیر را وارد کنید :
docker docker-subcommand –help
برای مشاهده اطلاعات کاملی از Docker ، دستور زیر را استفاده کنید :
docker info
در ادامه برخی از این دستورات را بررسی می کنیم. برای شروع از کار کردن با منبع (image) شروع می کنیم.
مرحله چهارم – کارکردن با Docker Images
مخزن های Docker containers از منبع های داکر Docker images ساخته شده اند و به صورت پیش فرض ، Docker این image ها را از Docker Hub دریافت می کند ، که توسط شرکت Docker که تامین کننده آن نیز هست ، مدیریت می شود. هر کسی می تواند Docker images های خود را در Docker Hub قرار دهد ، بنابراین image بیشتر برنامه ها و توزیع های لینوکس که به آن نیاز دارید در آنجا وجود خواهند داشت.
برای بررسی امکان دسترسی و دانلود از Docker Hub ، دستور زیر را وارد کنید :
docker run hello-world
این خروجی نشان می دهد که Docker به درستی کار می کند :
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef2718514bcec35d
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
در ابتدا Docker قادر به پیدا کردن hello-world به صورت محلی (locally) نبوده ، سپس این image را که یک مخزن (container)پیش فرض است را از Docker Hub دانلود می کند. Docker به محض دانلود کردن image ، یک مخزن از آن ایجاد می کند و برنامه اجرا شده داخل مخزن ، پیغامی را نمایش می دهد.
با استفاده زیر دستور search با دستور docker می توانید image های قابل دسترس در Docker Hub را پیدا کنید. برای مثال برای پیدا کردن Ubuntu image ، دستور زیر را وارد کنید :
docker search ubuntu
این اسکریپت Docker Hub را جستجو کرده و لیستی از image های موجود را که نام آن ها با رشته ای که وارد کرده اید ، مطابقت داشته را نمایش می دهد. در این جا خروجی شما باید مشابه به این باشد :
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 7917 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 193 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 156 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 93 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 87 [OK]
neurodebian NeuroDebian provides neuroscience research s… 50 [OK]
ubuntu-debootstrap debootstrap --variant=minbase --components=m… 38 [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 36 [OK]
nuagebec/ubuntu Simple always updated Ubuntu docker images w… 23 [OK]
tutum/ubuntu Simple Ubuntu docker images with SSH access 18
i386/ubuntu Ubuntu is a Debian-based Linux operating sys… 13
ppc64le/ubuntu Ubuntu is a Debian-based Linux operating sys… 12
1and1internet/ubuntu-16-apache-php-7.0 ubuntu-16-apache-php-7.0 10 [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10 ubuntu-16-nginx-php-phpmyadmin-mariadb-10 6 [OK]
eclipse/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 6 [OK]
codenvy/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 4 [OK]
darksheer/ubuntu Base Ubuntu Image -- Updated hourly 4 [OK]
1and1internet/ubuntu-16-apache ubuntu-16-apache 3 [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4 ubuntu-16-nginx-php-5.6-wordpress-4 3 [OK]
1and1internet/ubuntu-16-sshd ubuntu-16-sshd 1 [OK]
pivotaldata/ubuntu A quick freshening-up of the base Ubuntu doc… 1
1and1internet/ubuntu-16-healthcheck ubuntu-16-healthcheck 0 [OK]
pivotaldata/ubuntu-gpdb-dev Ubuntu images for GPDB development 0
smartentry/ubuntu ubuntu with smartentry 0 [OK]
ossobv/ubuntu
...
در ستون OFFICIAL ، مقدار OK نشان دهنده این است که این image توسط شرکت تامین کننده آن پشتیبانی می شود. هر زمان image ای را که دوست داشتید پیدا کردید برای دانلود آن بر روی سیستم خودتان از زیر دستور pull استفاده کنید.
با استفاده از دستور زیر image رسمی ubuntu را بر کامپیوتر خود دانلود کنید :
docker pull Ubuntu
خروجی مشابه این را خواهید دید :
Using default tag: latest
latest: Pulling from library/ubuntu
6b98dfc16071: Pull complete
4001a1209541: Pull complete
6319fc68c576: Pull complete
b24603670dc3: Pull complete
97f170c87c6f: Pull complete
Digest: sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d
Status: Downloaded newer image for ubuntu:latest
بعد از دانلود image ، می توانید مخزن (container) را با استفاده از image دانلود شده و با زیر دستور run اجرا کنید. البته همانطور که در مثال hello-world دیدیم ، زمانی که دستور docker را با زیر دستور run اجرا شود و image مورد نظر دانلود نشده باشد ، Docker client آن را ابتدا دانلود کرده و سپس اجرا می کند.
برای مشاهده image های دانلود شده در کامپیوترتان دستور زیر را وارد کنید :
docker images
خروجی این دستور مشابه زیر است :
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 113a43faa138 4 weeks ago 81.2MB
hello-world latest e38bc07ac18e 2 months ago 1.85kB
همانطور که در ادامه این آموزش خواهیم دید ، می توانید image هایی که در مخزن ها (containers) اجرا کردید را ویرایش کرده و image جدید تولید کنید و آن ها را در Docker Hub آپلود کنید.
در ادامه چگونگی اجرای مخزن ها را بیشتر بررسی می کنیم.
مرحله پنجم – اجرا کردن یک Docker Container
مخرن hello-wolrd که در مرحله قبل اجرا کردیم ، یک مثال از اجرای یک مخزن (container) و خارج شدن از آن پس از نمایش یک پیام آزمایشی است. مخزن ها شبیه به ماشین های مجازی هستند ، با کمی منابع سازگار تر و می توانند در تعامل و ارتباط ( با کاربر یا منابع دیگر) باشند و استفاده از آن ها بیش از آن چیزی است که دیدیم.
به عنوان مثال یک مخزن را با Ubuntu image اجرا می کنیم. استفاده از ترکیب گزینه های i- و t- دسترسی به پوسته (shell) در مخزن را به شما می دهد :
docker run -it Ubuntu
خط فرمان شما تغییر می کند و این نشانگر این است که در محیط خط فرمان مخزن هستید و شکل آن شبیه به این است :
root@d9b100f2f636:/#
در خط فرمان جدید شماره id مخزن (container) نمایش داده می شود که در این مثال d9b100f2f636 است. بعدا اگر لازم بود که این مخزن را حذف کنید به این شماره نیاز دارید.
اکنون هر دستوری را می توانید در مخزن اجرا کنید. برای مثال دیتابیس بسته های درون مخزن را به روز رسانی می کنیم. برای اجرای هیچکدام از دستورات نیاز نیست که از پیشوند sudo استفاده کنید ، زیرا شما در مخزن به عنوان کاربر root هستید.
root@d9b100f2f636:/# sudo apt update
سپس می توانید هر برنامه ای را که بخواهید در مخزن نصب کنید. برای مثال Node.js را نصب می کنیم :
root@d9b100f2f636:/#apt install nodejs
نصب Node.js از منابع رسمی Ubuntu انجام می شود. پس از نصب ، صحت نصب برنامه را بررسی می کنیم :
root@d9b100f2f636:/# node -v
نسخه برنامه نصب شده نمایش داده می شود :
v8.10.0
هر تغییری که در داخل مخزن (container) انجام دهید بر روی مخزن اعمال می شود.
برای خروج دستور exit را وارد کنید.
در ادامه به بررسی مدیریت مخازن موجود در سیستم می پردازیم.
مرحله ششم – مدیریت مخازن داکر – Managing Docker Containers
پس از مدتی استفاده از Docker ، مخزن های زیادی را به صورت فعال و غیر فعال در سیستم خود خواهید داشت. برای دیدن مخزن ها فعال از دستور زیر استفاده کنید :
docker apt
خروجی مشابه به این را مشاهده می کنید :
CONTAINER ID IMAGE COMMAND CREATED
تا اینجا در این آموزش از دو مخزن (container) استفاده کردیم که یکی از hello-world image و دیگری از ubuntu image استفاده می کنند. هر دو این مخزن ها الان روی سیستم شما فعال نیستند ولی در سیستم وجود دارند.
برای دیدن همه مخزن های فعال و غیر فعال دستور docker ps را با گزینه a- وارد کنید :
docker ps –a
خروج شبیه به این را مشاهده می کنید :
d9b100f2f636 ubuntu "/bin/bash" About an hour ago Exited (0) 8 minutes ago sharp_volhard
01c950718166 hello-world "/hello" About an hour ago Exited (0) About an hour ago festive_williams
برای دیدن آخرین مخزن ای که ایجاد کردید از l- استفاده کنید :
docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9b100f2f636 ubuntu "/bin/bash" About an hour ago Exited (0) 10 minutes ago sharp_volhard
برای اجرای یک مخزن (container) ای که متوقف شده است از docker start با شماره id مخزن مورد نظر یا نام مخزن استفاده کنید. در اینجا مخزن Ubuntu-base را با شماره ID آن d9b100f2f636 اجرا می کنیم :
docker start d9b100f2f636
مخزن مورد نظر مجددا اجرا شده و با دستور docker ps می توانید وضعیت آن را مشاهده کنید :
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9b100f2f636 ubuntu "/bin/bash" About an hour ago Up 8 seconds sharp_volhard
برای متوقف کردن یک مخزن (container) از دستور docker stop با شماره ID آن مخزن یا نام آن مخزن استفاده کنید. در اینجا از نام sharp_volhard که Docker به مخزن داده است استفاده می کنیم :
docker stop sharp_volhard
هر زمان که به یک مخزن نیاز نداشتید می توانید آن را با دستور docker rm حذف کنید ، و در اینجا هم از نام یا شماره ID مخزن استفاده کنید. از دستور docker ps -a برای پیدا کردن شماره ID یا نام اختصاص داده شده به مخزنی که از hello-world image ایجاد شده ، استفاده می کنیم و آن را حذف می کنیم.
docker rm festive_williams
می توانید با استفاده از گزینه name– با اجرا کردن مخزن جدید نام آن را مشاهده کنید. همچنین با استفاده از گزینه rm– مخزن جدید را اجرا کنید ، که بعد از متوقف کردن مخزن ، به صورت خودکار حذف می شود. با استفاده از دستور docker run help لیست کامل گزینه های موجود را به همراه توضیحات می توانید مطالعه کنید.
می توانید container ها را به image تبدیل کرده و container جدیدی را با استفاده از آن image اجرا کنید. در ادامه به توضیح این کار می پردازیم.
مرحله هفتم – اعمال تغییرات یک Container به یک Docker Image
وقتی که یک docker image را اجرا می کنید ، مانند یک ماشین مجازی می توانید فایل هایی را ایجاد ، حذف یا تغییر دهید. همه تغییراتی که انجام می دهید بر روی مخزن (container) اعمال می شود و همچنین می توانید آن را متوقف و اجرا کنید ، ولی با حذف مخزن با استفاده از دستور docker rm همه چیز از بین خواهد رفت.
در این مرحله خواهیم گفت که چطور وضعیت یک مخزن را ذخیره کرده و یک image جدید بسازید. بعد از نصب Node.js در اوبونتو ، در واقع یک مخزنی دارید که از یک image اجرا شده که الان این مخزن متفاوت از آن image ای است که در ابتدا مخزن را با آن اجرا کردید. و ممکن است که بعدا از مخزن Node.js به عنوان یک image پایه استفاده کنید.
این دستور تغییرات مخزن را به یک image جدید اعمال می کند :
docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs
وقتی که یک image را commit می کنید ، image جدید به صورت محلی بر روی سیستم شما ذخیره می شود. در مرحله بعد خواهیم گفت که چطور یک image را در Docker ثبت کنید تا دیگران نیز بتوانند به آن دسترسی داشته باشند.
اگر مجددا image های موجود را بررسی کنید ، image جدید و image قدیم را که از آن گرفته شده است را مشاهده خواهید کرد :
docker image
خروجی شبیه این است :
REPOSITORY TAG IMAGE ID CREATED SIZE
sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB
ubuntu latest 113a43faa138 4 weeks ago 81.2MB
hello-world latest e38bc07ac18e 2 months ago 1.85kB
در این مثال ubuntu-nodejs یک image جدید است که از ubuntu image متعلق به Docker Hub گرفته شده است. تفاوت اندازه نیز این مطلب را تایید می کند. و در اینجا تغییرات Node.js نیز نصب شده است. بنابراین اگر مجددا نیاز داشتید که از Ubuntu همراه با NodeJS استفاده کنید ، فقط کافی است که از این image استفاده کنید.
همچنین با استفاده از Dockerfile می توانید به صورت خودکار نرم افزار را در یک image جدید نصب کنید. که در این آموزش به این مطلب نمی پردازیم.
در ادامه image جدید را با دیگران به اشتراک می گذاریم تا آنها نیز بتوانند از آن یک مخزن (container) ایجاد کنند.
مرحله هشتم – قرار دادن Docker Image در منابع Docker
اقدام منطقی بعد از ایجاد image جدید این است که این image را با برخی از دوستان خود یا در کل جهان با Docker Hub و یا Docker های دیگر که به آنها دسترسی دارید ، به اشتراک بگذارید. برای قرار دادن image در Docker Hub یا هر Docker دیگر باید یک حساب کاربر در آن جا داشته باشید.
در این جا یک image را در Docker Hub قرار می دهیم. برای اینکه یک Docker اختصاصی برای خودتان ایجاد کنید این مطلب را مطالعه کنید :
How To Set Up a Private Docker Registry on Ubuntu 14.04
برای قرار دادن image ابتدا وارد Docker Hub شوید :
docker login -u docker-registry-username
برای احراز هویت رمز عبور از شما درخواست می شود که باید رمز عبور Docker Hub را وارد کنید. بعد از وارد کردن رمز صحیح و هویت شما تایید می شود.
نکته : اگر نام کاربری Docker شما با نام کاربری سیستم محلی شما که با آن image جدید را ایجاد کردید متفاوت است ، باید برچسب (tag) با نام کاربری ثبت شده در Docker بزنید. برای آخرین مثالی که زدیم به این صورت باید عمل کنید :
docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs
سپس می توانید image خود را قرار دهید :
docker push docker-registry-username/docker-image-name
شکل دستوری برای قرار دادن ubuntu-nodejs image به صورت زیر خواهد بود :
docker push sammy/ubuntu-nodejs
ممکن است که روند آپلود image کمی زمانبر باشد ، ولی بعد از اتمام آپلود خروجی مشابه به زیر خواهد بود :
The push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed
...
بعد از قرار دادن یک image ، باید در داشبورد حساب کاربری شما نمایش داده شود.
اگر با خطایی مشابه خطایی که در زیر نمایش داده شده مواجه شدید ، به این معنی است که شما به درستی وارد نشده اید :
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 وارد شوید و عملیات قرار دادن image را تکرار کنید. سپس بررسی کنید که image در صفحه منابع Docker Hub موجود باشد.
اکنون می توانید از docker pull sammy/ubuntu-nodejs برای قرار دادن image در ماشین جدید استفاده کنید و با آن یک مخزن (container) جدید ایجاد کنید.
نمونه ای از ایمیج های کاربردی داکر را می توانید از طریق دستورهای ذیل بر روی سیستم خود منتقل نمائيد.
نصب ایمیج داکر nginx
docker pull nginx
نصب ایمیج داکر mongodb
docker pull mongodb
نصب جدیدترین ایمیج داکر apache
docker pull httpd
نصب جدیدترین ایمیج داکر node.js
docker pull node
نصب جدیدترین ایمیج داکر tomcat
docker pull tomcat
نصب جدیدترین ایمیج داکر ruby
docker pull ruby
نصب جدیدترین ایمیج داکر java
docker pull java:openjdk-8u102-jdk