استفاده از فضای دخیره سازی خارجی در Docker

در این مقاله به آموزش استفاده از فضای دخیره سازی خارجی در Docker می پردازیم.

زمانی که ما یک container را در داکر پاگ میکنیم همه اطلاعات آنهم پاک میشود . گاهی اوقات نیاز داریم که این اطلاعات را در جایی ذخیره و در آینده ار آنها استفاده کنیم. برای همین منظور در docker قابلیتی وجود دارد که این امکان را به ما میدهد که یک فضای ذخیره سازی خارجی را برای به container خود متصل کنیم.

در این مقاله به آموزش این کار خواهیم پرداخت.

برای این منظور ابتدا یک Container که برای سرویس دهی همین فضای ذخیره سازی است با استفاده از busybox (یک توزیع لینوکس بسیار سبک) می پردازیم.

ابتدا یک dockerfile به نام busybox میسازیم و اطلاعاتی مانند زیر را در آن کپی میکنیم .

vi busybox

FROM busybox
MAINTAINER nowlearn.ir
VOLUME /storage
CMD /bin/sh

سپس با دستور زیر آن را بالا می آوریم

docker build -t storage .

بعد از اینکه container بالا آمد با استفاده از دستور docker image بررسی میکنیم ببنیم آیا کارهایی که انجام داده ایم درست است یا خیر .اگر خروجی مانند زیر دیدی کارهایی که انجام داده اید درست بوده است.

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
storage latest 65c5cce81114 20 seconds ago 1.113 MB
docker.io/centos latest 14dab3d40372 6 days ago 194.7 MB
docker.io/busybox latest fc0db02f3072 13 days ago 1.113 MB

حالا که storage را بالا آورده ایم نوبت به آن میرسد که از آن در containerهای خود استفاده کنیم .

برای این منظور بصورت زیر عمل میکنیم .

docker run -i -t –name centos_server –volumes-from storage_server centos /bin/bash

با اچرای دستور بالا به docker می گوییم که یک ماسین به اسم centos بالا بیاورد و سپس storage ی که ساختیم را به عنوان یک volume به آن وصل کند و در آخر با bash به آن Container لاگین کند.

حالا اگر در container ی که ساختیم df -hT بگیریم باید خروجی مانند زیر را ببینیم.

Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/docker-253:0-67164897-….. ext4 99G 266M 94G 1% /
tmpfs tmpfs 2.0G 0 2.0G 0% /dev
shm tmpfs 64M 0 64M 0% /dev/shm
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 27G 3.2G 24G 13% /storage
tmpfs tmpfs 2.0G 0 2.0G 0% /run/secrets

همانطور که میبینید /storage بر روی Container ما از روی busybox که ساختیم وصل شده . برای امتحان کردن اینکه آیا درست کار میکند یا خیر یک فایل در آن میسازیم.

echo “persistent storage” >> /storage/testfile.txt

سپس از کانتینر centos خارج می شویم و به کانتینر busybox متصل میشویم.

docker start storage_server
docker attach storage_server

و در آخر از فایل testfile.txt برای اطمینان cat میگیریم. اگر خروجی مانند زیر را دیدید کارها دزست انجام شده است.

cat /storage/testfile.txt
persistent storage

توجه: برای خواندن آموزش های داکر به این صفحه مراجعه کنید.

برای خواندن آموزش network در docker به اینجا مراجعه کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *