ඩොකර් හි නිරන්තර ගබඩා කිරීම (උදා: දත්ත සමුදායන්) සමඟ කටයුතු කරන්නේ කෙසේද


999

ඔබගේ ඩෝකර් බහාලුම් සඳහා මිනිසුන් නිරන්තරයෙන් ගබඩා කිරීම සමඟ කටයුතු කරන්නේ කෙසේද?

මම දැනට මෙම ප්‍රවේශය භාවිතා කරමි: රූපය ගොඩනඟන්න, උදා: PostgreSQL සඳහා, ඉන්පසු කන්ටේනරය ආරම්භ කරන්න

docker run --volumes-from c0dbc34fd631 -d app_name/postgres

IMHO, එහි අඩුපාඩුවක් ඇත, මම කිසි විටෙකත් (අහම්බෙන්) "c0dbc34fd631" බහාලුම මකා නොදැමිය යුතුය.

තවත් අදහසක් වනුයේ ධාරක පරිමාවන් "-v" කන්ටේනරය තුළට සවි කිරීමයි, කෙසේ වෙතත්, කන්ටේනරය තුළ ඇති පරිශීලක පරිශීලකයා අනිවාර්යයෙන්ම ධාරකයෙන් පරිශීලකයට නොගැලපේ , එවිට අවසර අවුල් විය හැක.

සටහන: දත්ත වෙනුවට බහාලුමක් සඳහා ඔබ පවරා ඇති නමක් කොතැනද යන්න --volumes-from 'cryptic_id'භාවිතා කළ හැකිය , උදා (පිළිගත් පිළිතුර බලන්න)--volumes-from my-data-containermy-data-containerdocker run --name my-data-container ...


කණගාටුයි, මම එය වැරදියට අර්ථකථනය කළෙමි, මා අදහස් කළේ: එම රූපයෙන් මගේ අනාගත සිදුවීම් සියල්ලම එම බහාලුම මත රඳා පවතී. මම එම කන්ටේනරය අහම්බෙන් මකා දැමුවහොත්, මට කරදරයක් වේ.
juwalter

@AntonStrogonoff - ඔව්, දෝෂයක් ගලපා ගනු - මම කියන්න අදහස්: පසුව සඳහන 'නිරන්තර' ගබඩා ද ගොස් ඇත නිසා මම වග බලා ගන්න මම කවදාවත් (බොහෝවිට) පැරණි රුවනයකි ඉවත් වන්නේ නැත ගැනීම සඳහා ඔබට අවශ්ය
juwalter

එය විය යුතුය --name. ඔබට තිබේ-name
ෂම්මෙල් ලී

Answers:


988

ඩෝකර් 1.9.0 සහ ඊට වැඩි

වෙළුම් API භාවිතා කරන්න

docker volume create --name hello
docker run -d -v hello:/container/path/for/volume container_image my_command

මෙයින් අදහස් කරන්නේ නව වෙළුම් සඳහා දත්ත පමණක් බහාලුම් රටාව අතහැර දැමිය යුතු බවයි.

ඇත්ත වශයෙන්ම පරිමාව API යනු දත්ත-බහාලුම් රටාව සාක්ෂාත් කර ගැනීමට වඩා හොඳ ක්‍රමයක් පමණි.

ඔබ -v volume_name:/container/fs/pathඩෝකර් සමඟ කන්ටේනරයක් සාදන්නේ නම්, ඔබට ස්වයංක්‍රීයව නම් කළ පරිමාවක් නිර්මාණය කළ හැකිය:

  1. හරහා ලැයිස්තුගත වන්න docker volume ls
  2. හරහා හඳුනා ගන්න docker volume inspect volume_name
  3. සාමාන්‍ය නාමාවලියක් ලෙස උපස්ථ වේ
  4. --volumes-fromසම්බන්ධතාවයක් හරහා පෙර මෙන් උපස්ථ කර ඇත

නව වෙළුම් API මඟින් ප්‍රයෝජනවත් විධානයක් එක් කරන අතර එය අනතුරුදායක වෙළුම් හඳුනා ගැනීමට ඉඩ දෙයි:

docker volume ls -f dangling=true

ඉන්පසු එහි නමෙන් එය ඉවත් කරන්න:

docker volume rm <volume name>

අදහස් @mpugach අවධාරනය ලෙස, ඔබට හොඳ එකක් ලයිනර් සමඟ සියලු කලිසමකින් වෙළුම් මිදෙන්නට හැක:

docker volume rm $(docker volume ls -f dangling=true -q)
# Or using 1.13.x
docker volume prune

ඩෝකර් 1.8.x සහ ඊට පහළ

නිෂ්පාදනය සඳහා වඩාත් සුදුසු යැයි පෙනෙන ප්‍රවේශය වන්නේ දත්ත පමණක් බහාලුමක් භාවිතා කිරීමයි .

දත්ත පමණක් බහාලුම ක්‍රියාත්මක වන්නේ හිස් රූපයක් මත වන අතර ඇත්ත වශයෙන්ම දත්ත පරිමාවක් නිරාවරණය කිරීම හැර වෙන කිසිවක් නොකරයි.

දත්ත බහාලුම් පරිමාවට ප්‍රවේශ වීම සඳහා ඔබට වෙනත් ඕනෑම බහාලුමක් ධාවනය කළ හැකිය:

docker run --volumes-from data-container some-other-container command-to-execute
  • විවිධ බහාලුම් සකස් කරන්නේ කෙසේද යන්න පිළිබඳ හොඳ පින්තූරයක් මෙහි ඔබට ලබා ගත හැකිය.
  • වෙළුම් ක්‍රියා කරන ආකාරය පිළිබඳ හොඳ අවබෝධයක් මෙහි ඇත.

දී බ්ලොග් ඊනියා හොඳ විස්තරයක් තිබෙනවා පරිමාව රටාවක් ලෙස රුවනයකි තිබීමේ ප්රධාන කරුණ වඩාත් පැහැදිලි කර ඇති කන්ටේනර් පමණක් දත්ත .

ඩෝකර් ලියකියවිලි දැන් කන්ටේනරය පරිමාව / රටාව ලෙස අර්ථ දක්වා ඇත.

පහත දැක්වෙන්නේ ඩොකර් 1.8.x සහ ඊට පහළ උපස්ථ / ප්‍රතිස්ථාපන ක්‍රියාවලියයි.

උපස්ථ:

sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
  • --rm: කන්ටේනරය පිටවන විට එය ඉවත් කරන්න
  • --volumes-from DATA: DATA බහාලුම විසින් බෙදා ගන්නා ලද වෙළුම් වලට අමුණන්න
  • -v $ (pwd): / උපස්ථ: බන්ධනය වත්මන් නාමාවලිය බහාලුමට සවි කරන්න; තාර ගොනුව ලිවීමට
  • කාර්යබහුල පෙට්ටිය: කුඩා සරල රූපයක් - ඉක්මන් නඩත්තු කිරීම සඳහා හොඳයි
  • tar cvf /backup/backup.tar / data: / දත්ත නාමාවලියෙහි ඇති සියලුම ලිපිගොනු වල සම්පීඩිත නොවන තාර ගොනුවක් සාදයි.

ප්‍රතිස්ථාපනය කරන්න:

# Create a new data container
$ sudo docker run -v /data -name DATA2 busybox true
# untar the backup files into the new container᾿s data volume
$ sudo docker run --rm --volumes-from DATA2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
data/
data/sven.txt
# Compare to the original container
$ sudo docker run --rm --volumes-from DATA -v `pwd`:/backup busybox ls /data
sven.txt

කන්ටේනරයක් සහ දත්ත බහාලුමක් සඳහා එකම රූපය භාවිතා කිරීම හොඳ ඇයිදැයි පැහැදිලි කරන විශිෂ්ට බ්‍රයන් ගොෆ්ගේ ලස්සන ලිපියක් මෙන්න .


8
එය වෙනස් අවශ්‍යතාවයක් සඳහා වෙනස් මෙවලමකි. --volumes-fromඔබට සේවා බෙදා ගැනීමට ඉඩ --linkසලසයි.
ටොමසොප්

3
මේ ආකාරයේ දෙයක් සඳහා විශේෂයෙන් අදහස් කරන තවත් ව්‍යාපෘතියක් තිබේ, සමහර විට එය නැරඹීමට යොමු කිරීමක් ලෙස මෙම පිළිතුරට එකතු කළ හැකිද? github.com/ClusterHQ/flocker
ඇන්ඩ්‍රේ

9
දත්ත බහාලුම්වල කිසිදු අර්ථයක් නොමැති අතර එය නරක අදහසකි! බහාලුම් යන්නෙන් අදහස් කරන්නේ යම් ක්‍රියාවලියක් ක්‍රියාත්මක වන විට පමණි, එසේ නොමැතිනම් එය ධාරක ගොනු පද්ධතියේ කොටසක් පමණි. ඔබට එකම හා හොඳම විකල්පය වන -v සමඟ පරිමාවක් සවි කළ හැකිය. ඔබ භාවිතා කරන ගොනු පද්ධතිය සහ භෞතික තැටිය පාලනය කිරීමට ඔබට හැකිය.
බොයිනක්ස්

11
ඔව්, ඩොකර් 1.9 වන විට, වෙළුම් API ( docker volume create --name mydata) සමඟ නම් කරන ලද වෙළුම් සෑදීම දත්ත වෙළුම් බහාලුමකට වඩා කැමති වේ. ඩොකර් හි සිටින අයම යෝජනා කරන්නේ දත්ත පරිමාව බහාලුම් “ තවදුරටත් නිර්දේශිත රටාවක් ලෙස නොසැලකෙන ” බවත්, “ නම් කරන ලද වෙළුම් වලට බොහෝ අවස්ථාවන්හිදී දත්ත පමණක් පරිමාවන් ආදේශ කිරීමට හැකි විය යුතු බවත් ” සහ “ මට භාවිතා කිරීමට කිසිදු හේතුවක් නැත දත්ත පමණක් බහාලුම් . ”
ක්වින් කොමෙන්ඩන්ට්

8
od කේතීකරණය, ඔබ කණගාටුයි, ඔබ වසර 3 ක ප්‍රමාදයකින් පිළිතුරු විනිශ්චය කරන නිසාත්, අර්ධ වශයෙන් පිළිතුර ඉතිහාසයේ සැලකිය යුතු ලෙස නිවැරදි නිසාත්. ඔබට කිසියම් උපදෙසක් ඇත්නම් අදහස් දැක්වීමට නිදහස්ව සිටින්න එවිට මට පිළිතුර ඒකාබද්ධ කර මිනිසුන්ට දුක් නොවීමට උදව් කළ හැකිය
tommasop

77

දී Docker නිදහස් v1.0 , සත්කාරක යන්ත්රය මත ගොනුවට හෝ ඩිරෙක්ටරියට ක සවි බන්ධන දී ඇති විධාන මගින් සිදු කළ හැක:

$ docker run -v /host:/container ...

ඉහත පරිමාව ධාරක ධාවනය වන ඩෝකර් හි ස්ථිර ගබඩාවක් ලෙස භාවිතා කළ හැකිය.


3
මේ මොහොතේ වැඩි ඡන්ද ප්‍රමාණයක් ඇති පරිමාව-බහාලුම් ප්‍රවේශයට වඩා බෙහෙවින් අඩු බැවින් මෙය නිර්දේශිත පිළිතුර විය යුතුය
insitusec

2
මෙම වෙළුම් සවිකිරීමේ විධානය භාවිතා කරන විට ධාරක- uid: container-uid සහ host-gid: container-gid සිතියම්ගත කිරීම සඳහා ධජයක් තිබෙන්නට ඇතැයි මම සිතමි.
රැම්පියන්

35

ඩෝකර් රචනා 1.6 වන විට, ඩෝකර් රචනා තුළ දත්ත පරිමාවන් සඳහා වැඩි දියුණු කළ සහයෝගයක් දැන් තිබේ. පහත සඳහන් රචනා ගොනුව මඟින් දත්ත රූපයක් නිර්මාණය කරනු ඇති අතර එය මව් බහාලුම් නැවත ආරම්භ කිරීම (හෝ ඉවත් කිරීම) අතර පවතිනු ඇත:

මෙන්න බ්ලොග් නිවේදනය: රචනා 1.6: ජාල සහ වෙළුම් නිර්වචනය කිරීම සඳහා නව රචනා ගොනුව

මෙන්න රචනා ගොනුවක්:

version: "2"

services:
  db:
    restart: on-failure:10
    image: postgres:9.4
    volumes:
      - "db-data:/var/lib/postgresql/data"
  web:
    restart: on-failure:10
    build: .
    command: gunicorn mypythonapp.wsgi:application -b :8000 --reload
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db

volumes:
  db-data:

මට තේරුම් ගත හැකි තාක් දුරට: මෙය දත්ත පරිමාව සහිත බහාලුමක් ( db_data) නැවත ආරම්භ කිරීම අතර පවතිනු ඇත.

ඔබ ධාවනය කරන්නේ නම්: docker volume lsඔබේ පරිමාව ලැයිස්තුගත කර ඇති ආකාරය ඔබ දැකගත යුතුය:

local               mypthonapp_db-data
...

දත්ත පරිමාව පිළිබඳ තවත් විස්තර ඔබට ලබා ගත හැකිය:

docker volume inspect mypthonapp_db-data
[
  {
    "Name": "mypthonapp_db-data",
    "Driver": "local",
    "Mountpoint": "/mnt/sda1/var/lib/docker/volumes/mypthonapp_db-data/_data"
  }
]

සමහර පරීක්ෂණ:

# Start the containers
docker-compose up -d

# .. input some data into the database
docker-compose run --rm web python manage.py migrate
docker-compose run --rm web python manage.py createsuperuser
...

# Stop and remove the containers:
docker-compose stop
docker-compose rm -f

# Start it back up again
docker-compose up -d

# Verify the data is still there
...
(it is)

# Stop and remove with the -v (volumes) tag:

docker-compose stop
docker=compose rm -f -v

# Up again ..
docker-compose up -d

# Check the data is still there:
...
(it is).

සටහන්:

  • ඔබට volumesබ්ලොක් එකේ විවිධ ධාවක නියම කළ හැකිය . උදාහරණයක් ලෙස, ඔබට db_data සඳහා ෆ්ලෝකර් ධාවකය නියම කළ හැකිය:

    volumes:
      db-data:
        driver: flocker
    
  • ඔවුන් ඩෝකර් රංචුව සහ ඩෝකර් රචනා අතර ඒකාබද්ධතාවය වැඩි දියුණු කරන විට (සහ ෆ්ලෝකර් ඩොකර් පරිසර පද්ධතියට ඒකාබද්ධ කිරීම ආරම්භ කළ හැකිය (ඩෝකර් ෆ්ලෝකර් මිලදී ගත් බවට කටකතාවක් මට ඇසුණි), මෙම ප්‍රවේශය වඩ වඩාත් බලවත් විය යුතු යැයි මම සිතමි.

වියාචනය: මෙම ප්‍රවේශය යහපත්ය, මම එය සංවර්ධන පරිසරයක සාර්ථකව භාවිතා කරමි. මෙය තවමත් නිෂ්පාදනයේදී භාවිතා කිරීමට මා බිය වනු ඇත!


Flocker වී ඇත ෂට් ඩවුන් සහ එහි ක්රියා සඳහා ගොඩක් නොවේ github ණයකට
ක්රිෂ්ණා

17

ඩොකර් 1.9 හි තෝරාගත් පිළිතුරේ 5 වන යාවත්කාලීනයෙන් එය පැහැදිලි නැතිනම්, ඔබට විශේෂිත බහාලුමක් සමඟ සම්බන්ධ නොවී පැවතිය හැකි වෙළුම් නිර්මාණය කළ හැකි අතර එමඟින් “දත්ත පමණක් බහාලුම්” රටාව යල් පැන යයි.

ඩොකර් 1.9.0 සමඟ යල්පැන ඇති දත්ත පමණක් බහාලුම් බලන්න ? # 17798 .

මම හිතන්නේ ඩොකර් නඩත්තු කරන්නන් දත්ත පමණක් බහාලුම් රටාව නිර්මාණ සුවඳක් බව වටහා ගත් අතර පරිමාව සම්බන්ධිත බහාලුමක් නොමැතිව පැවතිය හැකි වෙනම වස්තුවක් බවට පත් කිරීමට තීරණය කළහ.


13

මෙය තවමත් ඩොකර්හි යම් කාර්යයක් අවශ්‍ය වන අතර , ඔබ පරිමාව ඩොකර්ෆයිල් හි VOLUME උපදෙස් සමඟ දැමිය යුතුය, එවිට ඔබට වෙනත් බහාලුමකින් වෙළුම් පිටපත් කිරීමට අවශ්‍ය නොවේ.

එමඟින් ඔබේ බහාලුම් අන්තර්-යැපීම අඩු වන අතර එක් බහාලුමක් මකා දැමීම ගැන කරදර විය යුතු නැත.


ෆ්ලිප්-සයිඩ් තර්කය නම්, “දත්ත පමණක්” බහාලුම් දත්ත පරිමාවට අවසාන වරට යොමු වීමයි (ඩොකර් විසින් එම පරිමාව ඉවත් කළ අවසන් බහාලුම ඉවත් කළ පසු දත්ත පරිමාවන් විනාශ කරයි docker rm)
වයින්සෝක්ඩ්

2
ඩෝකර්ගේ මෙම තාවකාලික මාර්ගෝපදේශය වෙනත් ආකාරයකින් යෝජනා කරයි: docs.docker.com/userguide/dockervolumes/… "දත්ත පරිමාවන් නිර්මාණය කර ඇත්තේ බහාලුම්වල ජීවන චක්‍රයෙන් ස්වාධීනව දත්ත පවත්වා ගෙන යාම සඳහා ය. එබැවින් ඔබ කන්ටේනරයක් ඉවත් කරන විට ඩොකර් කිසි විටෙකත් ස්වයංක්‍රීයව පරිමාවන් මකා නොදමනු ඇත. “කසළ එකතු කිරීම” තවදුරටත් බහාලුමක් මගින් යොමු නොකෙරේ.
ඇලෙක්ස්

12

ඩෝකර් රචනා භාවිතා කරන විට , නම් කළ පරිමාවක් අමුණන්න, උදාහරණයක් ලෙස:

version: '2'
services:
  db:
    image: mysql:5.6
    volumes:
      - db_data:/var/lib/mysql:rw
    environment:
      MYSQL_ROOT_PASSWORD: root
volumes:
  db_data:

9

@ ටොමසොප්ගේ පිළිතුර හොඳයි, දත්ත පමණක් බහාලුම් භාවිතා කිරීමේ සමහර යාන්ත්‍රණයන් පැහැදිලි කරයි. නමුත් ධාරකයට පරිමාවක් සවි කළ හැකි විට දත්ත බහාලුම් මෝඩ යැයි මුලින් සිතූ අයෙකු ලෙස (වෙනත් පිළිතුරු කිහිපයකින් යෝජනා කර ඇති පරිදි), නමුත් ඇත්ත වශයෙන්ම දත්ත පමණක් බහාලුම් ඉතා පිළිවෙලට ඇති බව මට වැටහී ඇති හෙයින්, මට මගේම යෝජනා කළ හැකිය මෙම මාතෘකාව පිළිබඳ බ්ලොග් සටහන: ඩොකර් දත්ත බහාලුම් (වෙළුම්!) හොඳ ඇයි

මෙයද බලන්න: " ඩෝකර් හවුල් වෙළුම් සඳහා අවසර කළමනාකරණය කිරීමට (හොඳම) ක්‍රමය කුමක්ද? " යන ප්‍රශ්නයට මගේ පිළිතුර. , ධාරක සමඟ අවසර සහ යූඩ් / ගිඩ් සිතියම්කරණය වැනි ගැටළු වළක්වා ගැනීම සඳහා දත්ත බහාලුම් භාවිතා කරන්නේ කෙසේද යන්න පිළිබඳ උදාහරණයක් සඳහා.

OP හි මුල් ගැටළු වලින් එකක් විසඳීම සඳහා: දත්ත බහාලුම මකා නොදැමිය යුතුය. දත්ත බහාලුම මකා දැමුවද, ඕනෑම බහාලුමකට එම පරිමාව ගැන සඳහනක් ඇති තාක් කල් දත්ත නැති වී නොයනු ඇත --volumes-from. එබැවින් අදාළ සියලු බහාලුම් නවතා මකා දැමුවේ නැත්නම් (මෙය අහම්බයකට සමාන යැයි කෙනෙකුට සිතිය හැකිය rm -fr /) දත්ත ආරක්ෂිතයි. --volumes-fromඑම පරිමාවට යොමු දැක්වීමක් ඇති ඕනෑම බහාලුමක් කිරීමෙන් ඔබට සෑම විටම දත්ත බහාලුම ප්‍රතිනිර්මාණය කළ හැකිය .

සෑම විටම මෙන්, උපස්ථ සාදන්න!

යාවත්කාලීන කිරීම: ඩෝකර් සතුව දැන් බහාලුම් වලින් ස්වාධීනව කළමනාකරණය කළ හැකි වෙළුම් ඇත, මෙය තවදුරටත් කළමනාකරණය කිරීම පහසු කරයි.


9

ඔබගේ අවශ්‍යතා මත පදනම්ව අඛණ්ඩ දත්ත කළමනාකරණය කිරීමේ මට්ටම් කිහිපයක් තිබේ:

  • එය ඔබගේ ධාරකයේ ගබඩා කරන්න
    • ධජය භාවිතා කරන්න -v host-path:container-pathධාරක නාමාවලියකට බහාලුම් නාමාවලි දත්ත දිගටම පවත්වා .
    • එකම බහලුමකට සවි කර ඇති උපස්ථ / ප්‍රතිස්ථාපන බහාලුමක් (ටූටම් ක්ලවුඩ් / ඩොක්අප් වැනි) ධාවනය කිරීමෙන් උපස්ථ / ප්‍රතිස්ථාපනය සිදු වේ.
  • දත්ත බහාලුමක් සාදා එහි පරිමාව ඔබේ යෙදුම් බහාලුමට සවි කරන්න
    • දත්ත පරිමාවක් අපනයනය කරන බහාලුමක් සාදන්න, භාවිතා කරන්න --volumes-from එම දත්ත ඔබේ යෙදුම් බහාලුමට සවි කිරීමට කරන්න.
    • ඉහත විසඳුම මෙන් උපස්ථ / ප්‍රතිස්ථාපනය කරන්න.
  • බාහිර / තෙවන පාර්ශවීය සේවාවක් සඳහා සහාය වන ඩෝකර් පරිමාව ප්ලගිනයක් භාවිතා කරන්න
    • ඩොකර් පරිමාව ප්ලගීන මඟින් ඔබේ දත්ත ප්‍රභවය ඕනෑම තැනකින් පැමිණීමට ඉඩ දෙයි - NFS, AWS (S3, EFS, සහ EBS)
    • ප්ලගිනය / සේවාව මත පදනම්ව, ඔබට තනි හෝ බහු බහාලුම් තනි පරිමාවකට ඇමිණිය හැකිය.
    • සේවාව මත පදනම්ව, උපස්ථ / ප්‍රතිස්ථාපන ඔබ වෙනුවෙන් ස්වයංක්‍රීය කළ හැකිය.
    • මෙය අතින් කිරීමට අපහසු විය හැකි නමුත්, සමහර වාද්‍ය වෘන්ද විසඳුම් - රැන්චර් වැනි - එය සහ භාවිතා කිරීම පහසුය.
    • මෙය අතින් සිදු කිරීම සඳහා පහසුම විසඳුම Convoy වේ.

8

ඔබේ වෙළුම් ඔබ වටා ගෙනයාමට අවශ්‍ය නම් ෆ්ලෝකර් දෙසද බලන්න .

README වෙතින්:

ෆ්ලෝකර් යනු දත්ත පරිමාව කළමණාකරුවෙකු සහ බහු සත්කාරක ඩෝකර් පොකුරු කළමනාකරණ මෙවලමකි. ලිනක්ස් හි ZFS හි බලය උපයෝගී කර ගැනීමෙන් ඔබගේ අස්ථායි යෙදුම් සඳහා ඔබ භාවිතා කරන මෙවලම් භාවිතා කරමින් ඔබේ දත්ත පාලනය කළ හැකිය.

මෙයින් අදහස් කරන්නේ ඔබට ඩොකර් හි ඔබේ දත්ත සමුදායන්, පෝලිම් සහ යතුරු-වටිනාකමින් යුත් වෙළඳසැල් ධාවනය කළ හැකි අතර ඔබේ යෙදුමේ ඉතිරි කොටස මෙන් ඒවා පහසුවෙන් ගෙන යා හැකි බවයි.


1
ස්තූතියි ජොහාන්. මම ClusterHQ හි සේවය කරන අතර මට අවශ්‍ය වූයේ අප ZFS මත පදනම් වූ ගබඩාවෙන් ඔබ්බට ගිය බවයි. ඔබට දැන් ඇමසන් ඊබීඑස් හෝ ගූගල් පර්සිස්ට් ඩිස්ක් වැනි ගබඩා සහිත ෆ්ලෝකර් භාවිතා කළ හැකිය. මෙන්න සම්පූර්ණ ගබඩා විකල්ප ලැයිස්තුවක්: docs.clusterhq.com/en/latest/supported/…
ferrantim

1
ෆ්ලෝකර් නතර කර ඇති අතර එය භාවිතා නොකළ යුතුය portworx.com/…
jesugmz

5

එය ඔබගේ තත්වය මත රඳා පවතී (මෙය නිෂ්පාදන පරිසරයකට සැබවින්ම සුදුසු නොවේ), නමුත් මෙන්න එක් ක්‍රමයක්:

MySQL ඩොකර් බහාලුමක් නිර්මාණය කිරීම

එහි සාරාංශය වන්නේ දත්ත නොනැසී පැවතීම සඳහා ඔබේ සත්කාරකයේ නාමාවලියක් භාවිතා කිරීමයි.


6
ස්තූතියි බෙන්, කෙසේ වෙතත් - මෙම ප්‍රවේශය සමඟ මට දැකිය හැකි ගැටළු වලින් එකක්: ගොනු පද්ධති සම්පත (නාමාවලිය, ලිපිගොනු) ඩොකර් / එල්එක්ස් කන්ටේනරයේ (ආගන්තුක) ඇතුළත සිට යූඅයිඩීයකට අයත් වනු ඇත - එය යූඅයිඩී සමඟ ගැටීමට ඉඩ ඇත. සත්කාරකයේ ...
ජූල්ටර්

1
මම සිතන්නේ එය මූලයෙන් ක්‍රියාත්මක වන බැවින් ඔබ තරමක් ආරක්‍ෂිත බවයි, නමුත් එය අනවසරයෙන් සිදුවන එකක් බව මම එකඟ වෙමි. මෙය නියත වශයෙන්ම මම තවත් රටාවන් / සිතුවිලි මතුවීමට කැමති ප්‍රදේශයකි. ඔබ මෙම ප්‍රශ්නය ඩොකර්-ඩිව් ගූගල් කණ්ඩායමට පරීක්ෂා කර බැලිය යුතුය
බෙන් ෂ්වාට්ස්

බෙන්, මෙම විසඳුමට ස්තූතියි! මම එය හැක් ලෙස නොකියමි, එය පරිමාව ලෙස බහාලුමට වඩා විශ්වාසදායක බව පෙනේ . කන්ටේනරයෙන් පමණක් දත්ත භාවිතා කරන විට ඔබට යම් අඩුපාඩු තිබේද? (මෙම නඩුවේ UID ප්‍රශ්නයක් නැත)
johndodo

3

විභව විසඳුමක් සහ තාක්‍ෂණය නිරූපණය කරන යෙදුමක් ගැන මම මෑතකදී ලිවීය. සංවර්ධනයේදී සහ නිෂ්පාදනයේදී එය ඉතා කාර්යක්ෂම බව මට පෙනේ. එය සමහර අදහස් වලට උපකාරී වේ යැයි සිතයි.

Repo: https://github.com/LevInteractive/docker-nodejs-example
ලිපිය: http://lev-interactive.com/2015/03/30/docker-load-balanced-mongodb-persistence/


1

PostgreSQL සඳහා දත්ත දිගටම පවත්වා ගැනීම සඳහා මම ධාරකයේ පූර්ව නිශ්චිත නාමාවලියක් භාවිතා කරමි. එසේම, මේ ආකාරයෙන් දැනට පවතින PostgreSQL ස්ථාපනයන් පහසුවෙන් ඩෝකර් බහාලුම් වෙත සංක්‍රමණය කළ හැකිය: https://crondev.com/persistent-postgresql-inside-docker/


0

මගේ විසඳුම වන්නේ docker cpබහාලුම් වලින් දත්ත පිටපත් කිරීමට දැන් හැකියාව ඇති නව ඒවා භාවිතා කිරීමයි , එය ක්‍රියාත්මක වන්නේද නැද්ද යන්න ප්‍රශ්නයක් නොවේ. දත්ත සමුදා යෙදුම එහි දත්ත සමුදා ගොනු බහාලුම තුළ නිර්මාණය කරන ස්ථානයට එම ධාරක පරිමාව බෙදා ගන්න. . මෙම ද්විත්ව විසඳුම මුල් දත්ත සමුදා බහාලුමෙන් කෙළින්ම දත්ත පමණක් සහිත බහාලුමක් නොමැතිව ක්‍රියා කරයි.

එබැවින් මගේ systemd init ස්ක්‍රිප්ට් මඟින් දත්ත සමුදාය උපස්ථ කිරීමේ කාර්යය ධාරකයේ ලේඛනාගාරයකට ගෙන යයි. කිසි විටෙකත් ගොනුවක් නැවත ලිවීමට මම ගොනු නාමයේ කාලරාමුව තැබුවෙමි.

එය කරන්නේ ExecStartPre හි ය:

ExecStartPre=-/usr/bin/docker cp lanti-debian-mariadb:/var/lib/mysql /home/core/sql
ExecStartPre=-/bin/bash -c '/usr/bin/tar -zcvf /home/core/sql/sqlbackup_$$(date +%%Y-%%m-%%d_%%H-%%M-%%S)_ExecStartPre.tar.gz /home/core/sql/mysql --remove-files'

එය ExecStopPost හි ද එකම දේ කරයි:

ExecStopPost=-/usr/bin/docker cp lanti-debian-mariadb:/var/lib/mysql /home/core/sql
ExecStopPost=-/bin/bash -c 'tar -zcvf /home/core/sql/sqlbackup_$$(date +%%Y-%%m-%%d_%%H-%%M-%%S)_ExecStopPost.tar.gz /home/core/sql/mysql --remove-files'

ප්ලස් මම ධාරකයේ සිට ෆෝල්ඩරයක් පරිමාවක් ලෙස දත්ත සමුදාය ගබඩා කර ඇති ස්ථානයට නිරාවරණය කළෙමි:

mariadb:
  build: ./mariadb
  volumes:
    - $HOME/server/mysql/:/var/lib/mysql/:rw

එය මගේ වීඑම් මත ඉතා හොඳින් ක්‍රියා කරයි (මම මා වෙනුවෙන් ලෙම්ප් තොගයක් සාදමි): https://github.com/DJviolin/LEMP

නමුත් ඔබේ ජීවිතය ඇත්ත වශයෙන්ම එය මත රඳා පවතින විට එය “වෙඩි නොවදින” විසඳුමක් දැයි මම නොදනිමි (නිදසුනක් වශයෙන්, හැකි ඕනෑම මිලි තත්පරයක ගනුදෙනු සහිත වෙබ් සාප්පුව)?

මෙම නිල ඩෝකර් ප්‍රධාන වීඩියෝවෙන් තත්පර 20 තත්පර 20 කදී, ඉදිරිපත් කරන්නා දත්ත සමුදාය සමඟ එකම දේ කරයි:

ඩෝකර් සමඟ ආරම්භ කිරීම

"දත්ත සමුදාය සඳහා අපට පරිමාවක් ඇත. එබැවින් දත්ත සමුදාය ඉහළට හා පහළට යන විට දත්ත සමුදා බහාලුම නැවැත්වූ විට අපි දත්ත ලිහිල් නොකරන බවට වග බලා ගත හැකිය."


"... භාවිතා කරන්න ..." යන්නෙන් ඔබ අදහස් කරන්නේ කුමක්ද? සහ "... හැකි ඕනෑම මිලි තත්පරයක ගනුදෙනු" ?
පීටර් මෝර්ටෙන්සන්

0

ඩොකර් බහාලුම් කළමනාකරණය සහ උපලේඛනගත කිරීමේ මෙවලමක් වන කුබර්නෙටෙස් වෙතින් නිරන්තර වෙළුම් හිමිකම් (පීවීසී) භාවිතා කරන්න:

නිරන්තර වෙළුම්

මේ සඳහා කුබර්නෙට්ස් භාවිතා කිරීමේ වාසි වන්නේ:

  • ඔබට එන්එෆ්එස් හෝ වෙනත් ආචයනය වැනි ඕනෑම ගබඩාවක් භාවිතා කළ හැකි අතර, නෝඩය අක්‍රිය වූ විට පවා ගබඩාව අවශ්‍ය නොවේ.
  • එපමණක් නොව, එවැනි වෙළුම්වල ඇති දත්ත කන්ටේනරය විනාශ වූ පසුව පවා රඳවා තබා ගැනීමට වින්‍යාසගත කළ හැකිය - එවිට අවශ්‍ය නම් වෙනත් බහාලුමක් මගින් එය නැවත ලබා ගත හැකිය.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.