ඩොකර් ෆයිල් එකක ඇති 'කෝපි' සහ 'ඇඩ්ඩී' විධානයන් අතර වෙනස කුමක්ද?


2210

ඩොකර් ෆයිල් එකක COPYසහ ADDවිධාන අතර ඇති වෙනස කුමක්ද? මම එකකට වඩා එකක් භාවිතා කරන්නේ කවදාද?

COPY <src> <dest>

COPY උපදෙස් මඟින් නව ලිපිගොනු පිටපත් කර <src>ඒවා බහාලුම් ගොනු පද්ධතියට එක් කරයි<dest>

ADD <src> <dest>

ADD උපදෙස් මඟින් නව ලිපිගොනු පිටපත් කර <src>ඒවා කන්ටේනරයේ ගොනු පද්ධතියට එක් කරයි <dest>.


11
හොඳම භාවිතයන් බලන්න: docs.docker.com/engine/userguide/eng-image/…
එරික්සොනරන්

9
2018 ජුනි මස වන විට සඳහනට අනුව ADD රූපයට (එනම් ස්ථිතික ගොනුවක්) එකතු කරන අතර COPY බහාලුමට එකතු කරයි (එනම් රූපයේ ධාවන කාල අවස්ථාව). නිසැකවම මෙයින් ගම්‍ය වන්නේ රූපය ඩෝකර් ධාවනය වන සෑම අවස්ථාවකම COPY ක්‍රියාත්මක වන බවයි, එසේත් නැතිනම් මෙය හුදෙක් නොගැලපෙන පාරිභාෂිතයේ අවස්ථාවක් විය හැකිද?
ක්‍රිස් රොබින්සන්

14
මම හිතන්නේ එය නොගැලපෙන පාරිභාෂිතය
ඩැනියෙල් ස්ටීවන්ස්

6
H ක්‍රිස් රොබින්සන්, එය COPYක්‍රියාත්මක වන සෑම අවස්ථාවකම ක්‍රියාත්මක කිරීමට නොහැකි වනු ඇත , මන්දයත් අන්තර්ගතය උදුරා ගැනීමට මුල් සන්දර්භයට ප්‍රවේශය අවශ්‍ය නොවන බැවිනි.
කෙන් විලියම්ස්

Answers:


2182

ඔවුන්ගේ හැසිරීම් පිළිබඳ වඩාත් සවිස්තරාත්මක විස්තරයක් සඳහා ඔබ ADDසහ COPYප්‍රලේඛනය පරීක්ෂා කළ යුතුය , නමුත් කෙටියෙන් කිවහොත්, ප්‍රධාන වෙනස වන්නේ ADDඊට වඩා වැඩි යමක් කළ හැකි ය COPY:

  • ADD<src>URL එකක් වීමට ඉඩ දෙයි
  • අදහස් දැක්වීම් ගැන සඳහන් කරමින්, ADD ලේඛනයේ මෙසේ සඳහන් වේ:

    පිළිගත් සම්පීඩන ආකෘතියක (අනන්‍යතාවය, gzip, bzip2 හෝ xz) දේශීය තාර ලේඛනාගාරයක් නම් එය නාමාවලියක් ලෙස ඉවත් කරනු ලැබේ. දුරස්ථ URL වලින් ලැබෙන සම්පත් දිරාපත් නොවේ.

ඩොකර්ෆයිල්ස් ලිවීම සඳහා හොඳම භාවිතයන්COPY මඟින් මැජික් ADDඅවශ්‍ය නොවන තැන භාවිතා කිරීමට යෝජනා කරන බව සලකන්න . එසේ නොමැතිනම්, ඔබ ( ඔබට මෙම පිළිතුර සොයා බැලිය යුතු බැවින් ) යම් දිනෙක ඔබ ඔබේ බහාලුමට පිටපත් කිරීමට අදහස් කරන විට පුදුමයට පත් වනු ඇත keep_this_archive_intact.tar.gz, නමුත් ඒ වෙනුවට, ඔබ ඔබේ ගොනු පද්ධතියට අන්තර්ගතය ඉසින්න.


67
එය .tar.gz කිරීමට url එක සමග එකතු භාවිතා කරමින් ගොනු පද්ධතිය සඳහා සංරක්ෂිත සාරය නොවේ (මම ද්විත්ව වග බලා ගන්න දැන් පරීක්ෂා කර එය තහවුරු වෙනවා): යන්තම් දෙයක් පැහැදිලි කිරීමට අවශ්ය
සිසිලියා

43
මෙය අත්‍යවශ්‍ය තොරතුරු වන අතර නිල ඩොකර්ෆයිල් යොමුව මේ ආකාරයෙන් වෙනස පැහැදිලි නොකිරීම අපරාධයකි.
චීසෝ

1
රූපයක් රූපයට වෙනස් නම් මෙය විශ්වාස නැත. මම zip ගොනුවක් සඳහා කාර්යබහුල පෙට්ටිය සහ ADD භාවිතා කළෙමි. එය හුදෙක් ගමනාන්ත නාමාවලියෙහි නොපෙනෙන ලෙස දර්ශනය විය. මම හිතන්නේ, නිස්සාරණය සිදුවන්නේ ටාර්බෝල් සඳහා පමණයි, නමුත් මම දැන් එය පරීක්ෂා කර නැහැ.
සන්තෝෂ් කුමාර් අර්ජුනන්

4
AntSantoshKumarArjunan: ඩොකර් ඩොක්ස් විසින් ADD සහ ස්වයංක්‍රීය තාර නිස්සාරණය පිළිබඳව පහත සඳහන් දේ සඳහන් කරයි: If <src> is a local tar archive in a recognized compression format (identity, gzip, bzip2 or xz) then it is unpacked as a directory. Resources from remote URLs are not decompressed. Docker ADD
hmacias

2
COPY --from = <name | index> ට ඉඩ දෙයි, එහිදී මට ADD සඳහා එකම සහය සොයාගත නොහැක
Brandon

481

COPY වේ

'ADD' හා සමානයි, නමුත් තාර සහ දුරස්ථ URL හැසිරවීමකින් තොරව.

මූලාශ්‍ර කේතයෙන් කෙළින්ම යොමු කරන්න .


15
මම මෙය නිවැරදිව දකිනවාද: නොපවතින නාමාවලිADDනිර්මාණය කරයි . එබැවින්, මෙම සමස්ත ත්‍රෙඩ් එකේ එය කෙසේ හෝ අධෛර්යමත් වුවද, ඔබට යතුරු ලියනය කර ධාවනය කිරීමට අවශ්‍ය නැති නිසා එයට වඩා වැඩි වාසියක් ඇතCOPYmkdir
eli

3
COPY එයද කරයි @eli
bhordupur

මෙතෙක් හොඳම පැහැදිලි කිරීම. එය පිළිගත් පිළිතුර නොවන්නේ ඇයි?
xdevx32

142

එම කරුණ පිළිබඳ නිල ලියකියවිලි කිහිපයක් තිබේ: ඩෝකර්ෆයිල් ලිවීම සඳහා හොඳම පිළිවෙත්

රූපයේ ප්‍රමාණය වැදගත් නිසා ADDදුරස්ථ URL වලින් පැකේජ ලබා ගැනීම දැඩි ලෙස අධෛර්යමත් වේ; ඔබ භාවිතා කළ යුතුයි curlහෝ wgetඒ වෙනුවට. එමගින් ඔබට උපුටා ගත් පසු ඔබට තවදුරටත් අවශ්‍ය නොවන ගොනු මකා දැමිය හැකි අතර ඔබේ රූපයේ තවත් තට්ටුවක් එක් කිරීමට අවශ්‍ය නොවේ.

RUN mkdir -p /usr/src/things \
  && curl -SL http://example.com/big.tar.gz \
    | tar -xJC /usr/src/things \
  && make -C /usr/src/things all

ADDතාර ස්වයංක්‍රීයව නිස්සාරණය කිරීමේ හැකියාව අවශ්‍ය නොවන වෙනත් අයිතම සඳහා (ලිපිගොනු, නාමාවලි) , ඔබ සැමවිටම භාවිතා කළ යුතුය COPY.



18
ඩොකර් පවසන්නේ COPYවඩාත් විනිවිද පෙනෙන නිසා කැමති වීමට කැමති බවයි. සිට Docker ගොනුව යහ : (2014-12-15) Although ADD and COPY are functionally similar, generally speaking, COPY is preferred. That’s because it’s more transparent than ADD. COPY only supports the basic copying of local files into the container, while ADD has some features that are not immediately obvious.
schemar

116

ඩෝකර් ලියකියවිලි වලින්:

එකතු කරන්න හෝ පිටපත් කරන්න

ADD සහ COPY ක්‍රියාකාරීව සමාන වුවත්, පොදුවේ ගත් කල, COPY වඩාත් කැමති වේ. ඒ එය ADD වලට වඩා විනිවිද පෙනෙන බැවිනි. COPY සහය දක්වන්නේ දේශීය ලිපිගොනු බහාලුම් තුළට පිටපත් කිරීමට පමණක් වන අතර ADD සතුව සමහර විශේෂාංග (දේශීය පමණක් තාර නිස්සාරණය සහ දුරස්ථ URL සහාය වැනි) ක්ෂණිකව නොපෙනේ. එහි ප්‍රති AD ලයක් වශයෙන්, ADD සඳහා හොඳම භාවිතය වන්නේ ADD rootfs.tar.xz / හි මෙන් දේශීය තාර ගොනුව රූපයට ස්වයංක්‍රීයව නිස්සාරණය කිරීමයි.

තවත්: ඩොකර් ෆයිල්ස් ලිවීම සඳහා හොඳම භාවිතයන්


46

ඔබට xx.tar.gz එකතු කිරීමට අවශ්‍ය නම් a /usr/local , එය ඉවත් කර, පසුව සම්පීඩිත පැකේජය ඉවත් කරන්න.

COPY සඳහා:

COPY resources/jdk-7u79-linux-x64.tar.gz /tmp/
RUN tar -zxvf /tmp/jdk-7u79-linux-x64.tar.gz -C /usr/local
RUN rm /tmp/jdk-7u79-linux-x64.tar.gz

ADD සඳහා:

ADD resources/jdk-7u79-linux-x64.tar.gz /usr/local/

ADD දේශීය පමණක් තාර නිස්සාරණයට සහය දක්වයි. ඊට අමතරව, COPY විසින් ස්ථර තුනක් භාවිතා කරනු ඇත, නමුත් ADD භාවිතා කරන්නේ එක් ස්ථරයක් පමණි.


3
ස්ථර දෙකක් පමණක් නොවීමට හේතුවක් තිබේද? RUN tar -zxvf /tmp/jdk-7u79-linux-x64.tar.gz -C /usr/local && rm /tmp/jdk-7u79-linux-x64.tar.gz
ස්ටීවන් සී

26

COPY ඔබගේ සත්කාරකයේ සිට ගොනුවක් / නාමාවලියක් ඔබගේ රූපයට පිටපත් කරයි.

ADD ඔබගේ සත්කාරකයෙන් ගොනුවක් / නාමාවලියක් ඔබගේ රූපයට පිටපත් කරයි, නමුත් දුරස්ථ URL ලබා ගැනීමට, TAR ගොනු උපුටා ගැනීමට යනාදිය ...

COPYගොඩ නැගීමේ සන්දර්භය තුළ ගොනු සහ / හෝ නාමාවලි පිටපත් කිරීම සඳහා භාවිතා කරන්න .

භාවිතා ADDTAR ගොනු, ආදිය නිස්සාරණය, දුරස්ථ සම්පත් බාගත කිරීම සඳහා ..


5
මා වැනි
කිසිවෙකු

18

ඩොකර් ලියකියවිලි වලින්: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#add-or-copy

"ADD සහ COPY ක්‍රියාකාරීව සමාන වුවත්, පොදුවේ ගත් කල, COPY වඩාත් කැමති වේ. එයට හේතුව එය ADD වලට වඩා විනිවිද පෙනෙන බැවිනි. COPY මඟින් දේශීය ලිපිගොනු බහාලුම් තුළට පිටපත් කිරීමට පමණක් සහාය වන අතර ADD හි සමහර විශේෂාංග ඇත (දේශීය පමණක් තාර නිස්සාරණය සහ දුරස්ථ URL සහය) ක්ෂණිකව නොපෙනේ. එහි ප්‍රති AD ලයක් ලෙස ADD සඳහා හොඳම භාවිතය වන්නේ දේශීය තාර ගොනුව ස්වයංක්‍රීයව රූපයට ඇතුල් කිරීමයි, ADD rootfs.tar.xz / හි මෙන්.

ඔබේ සන්දර්භයෙන් වෙනස් ලිපිගොනු භාවිතා කරන බහුවිධ ඩොකර්ෆයිල් පියවර ඔබ සතුව ඇත්නම්, ඒවා එකවරම නොව තනි තනිව පිටපත් කරන්න. නිශ්චිතවම අවශ්‍ය ලිපිගොනු වෙනස් වුවහොත් එක් එක් පියවරේ හැඹිලි හැඹිලිය අවලංගු වන බව (පියවර නැවත ක්‍රියාත්මක කිරීමට බල කිරීම) මෙයින් සහතික කෙරේ.

උදාහරණයක් වශයෙන්:

 COPY requirements.txt /tmp/
 RUN pip install --requirement /tmp/requirements.txt
 COPY . /tmp/

ඔබ COPY දැමුවහොත් වඩා RUN පියවර සඳහා අඩු හැඹිලි අවලංගු කිරීම්වල ප්‍රති Results ල. / tmp / ඊට පෙර.

රූපයේ ප්‍රමාණය වැදගත් බැවින් දුරස්ථ URL වලින් පැකේජ ලබා ගැනීමට ADD භාවිතා කිරීම දැඩි ලෙස අධෛර්යමත් වේ; ඔබ ඒ වෙනුවට curl හෝ wget භාවිතා කළ යුතුය. එමගින් ඔබට උපුටා ගත් පසු ඔබට තවදුරටත් අවශ්‍ය නොවන ගොනු මකා දැමිය හැකි අතර ඔබේ රූපයේ තවත් තට්ටුවක් එක් කිරීමට අවශ්‍ය නොවේ. උදාහරණයක් ලෙස, ඔබ මෙවැනි දේ කිරීමෙන් වැළකී සිටිය යුතුය:

 ADD http://example.com/big.tar.xz /usr/src/things/
 RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things
 RUN make -C /usr/src/things all

ඒ වෙනුවට, එවැනි දෙයක් කරන්න:

 RUN mkdir -p /usr/src/things \
     && curl -SL htt,p://example.com/big.tar.xz \
     | tar -xJC /usr/src/things \
     && make -C /usr/src/things all

ADD හි තාර ස්වයංක්‍රීය නිස්සාරණ හැකියාව අවශ්‍ය නොවන වෙනත් අයිතම සඳහා (ලිපිගොනු, නාමාවලි), ඔබ සැමවිටම COPY භාවිතා කළ යුතුය.


8

ඩොකර් ෆයිල් එකක් සෑදීමේදී, ලිපිගොනු / නාමාවලි පිටපත් කිරීමට ඔබට භාවිතා කළ හැකි විධාන දෙකක් තිබේ - ADDසහCOPY . ඒවායේ ක්‍රියාකාරිත්වයේ විෂය පථයේ සුළු වෙනස්කම් තිබුණද, ඔවුන් මූලිකවම එකම කාර්යය ඉටු කරයි.

ඉතින්, අපට විධාන දෙකක් ඇත්තේ ඇයි? එකක් හෝ අනෙකක් භාවිතා කරන්නේ කවදාදැයි අප දන්නේ කෙසේද?

DOCKER ADDඅණ දීම්

ADDවිධානය වඩා පැරණි බව සඳහන් කිරීමෙන් ආරම්භ කරමු COPY. ඩෝකර් වේදිකාව දියත් කළ දින සිට, ADDඋපදෙස් එහි විධාන ලැයිස්තුවේ කොටසකි.

විධානය මඟින් ගොනු / නාමාවලි නිශ්චිත බහාලුම්වල ගොනු පද්ධතියකට පිටපත් කරයි.

ADDවිධානය සඳහා මූලික වාක්‍ය ඛණ්ඩය :

ADD <src> … <dest>

ඔබට පිටපත් කිරීමට අවශ්‍ය ප්‍රභවය ( <src>) පසුව ඔබට එය ගබඩා කිරීමට අවශ්‍ය ගමනාන්තය ( <dest>) ඇතුළත් වේ. ප්‍රභවය නාමාවලියක් නම්,ADD එහි ඇති සියල්ල පිටපත් කරයි (ගොනු පද්ධති පාර-දත්ත ඇතුළුව).

උදාහරණයක් ලෙස, ගොනුව දේශීයව තිබේ නම් සහ ඔබට එය රූප නාමාවලියට එක් කිරීමට අවශ්‍ය නම්, ඔබ ටයිප් කරන්න:

ADD /source/file/path  /destination/path

ADDURL එකකින් ලිපිගොනු පිටපත් කළ හැකිය. එයට බාහිර ගොනුවක් බාගත කර අවශ්‍ය ගමනාන්තයට පිටපත් කළ හැකිය. උදාහරණයක් වශයෙන්:

ADD http://source.file/url  /destination/path

අතිරේක අංගයක් වන්නේ එය සම්පීඩිත ගොනු පිටපත් කිරීම, ලබා දී ඇති ගමනාන්තයේ අන්තර්ගතය ස්වයංක්‍රීයව උකහා ගැනීමයි. මෙම අංගය අදාළ වන්නේ දේශීයව ගබඩා කර ඇති සම්පීඩිත ගොනු / නාමාවලි සඳහා පමණි.

ADD source.file.tar.gz /temp

ඔබට URL එකකින් සම්පීඩිත ගොනුවක් / නාමාවලියක් බාගත කර උපුටා ගත නොහැකි බව මතක තබා ගන්න. දේශීය ගොනු පද්ධතියට පිටපත් කිරීමේදී විධානය බාහිර පැකේජ ඉවත් නොකරයි.

DOCKER COPYඅණ දීම්

සමහර ක්‍රියාකාරීත්ව ගැටළු හේතුවෙන්, අන්තර්ගතය අනුපිටපත් කිරීම සඳහා ඩෝකර්ට අතිරේක විධානයක් හඳුන්වා දීමට සිදුවිය - COPY.

එහි සමීප සම්බන්ධිත ADDවිධානය මෙන් නොව , COPYපවරා ඇත්තේ එක් පැවරුමක් පමණි. එහි කාර්යභාරය වන්නේ ගොනු / නාමාවලි නිශ්චිත ස්ථානයක ඒවායේ පවතින ආකෘතියෙන් අනුපිටපත් කිරීමයි. මෙයින් අදහස් කරන්නේ එය සම්පීඩිත ගොනුවක් උපුටා ගැනීම සමඟ ගනුදෙනු නොකරන නමුත් එය පවතින ආකාරයට පිටපත් කිරීමයි.

උපදෙස් භාවිතා කළ හැක්කේ දේශීයව ගබඩා කර ඇති ගොනු සඳහා පමණි. එමනිසා, ඔබේ බහාලුමට බාහිර ලිපිගොනු පිටපත් කිරීමට ඔබට එය URL සමඟ භාවිතා කළ නොහැක.

COPYඋපදෙස් භාවිතා කිරීම සඳහා , මූලික විධාන ආකෘතිය අනුගමනය කරන්න:

ප්‍රභවයේ ටයිප් කරන්න සහ ඔබට පහත දැක්වෙන පරිදි අන්තර්ගතය උකහා ගැනීමට විධානය අවශ්‍ය වන්නේ:

COPY <src> … <dest> 

උදාහරණයක් වශයෙන්:

COPY /source/file/path  /destination/path 

කුමන විධානය භාවිතා කළ යුතුද? (හොඳම පුහුණුව)

COPYවිධානය හඳුන්වා දුන් තත්වයන් සලකා බැලීමේදී, තබා ගැනීම ADDඅත්‍යවශ්‍ය කාරණයක් බව පැහැදිලිය . ඩොකර් ෆයිල් ලිවීම සඳහා හොඳම භාවිතයන් දැක්වෙන නිල ලේඛනයක් ඩොකර් විසින් නිකුත් කරන ලද අතර එය ADDවිධානය භාවිතා කිරීමට එරෙහිව පැහැදිලිවම උපදෙස් දෙයි .

ඩොකර්ගේ නිල ලියකියවිලි සටහන් වලට COPYවඩා විනිවිද පෙනෙන බැවින් සෑම විටම යන්නට උපදෙස් විය යුතුය ADD.

ඔබට දේශීය ගොඩනැඟීමේ සන්දර්භයෙන් කන්ටේනරයකට පිටපත් කිරීමට අවශ්‍ය නම්, භාවිතයට ඇලී සිටින්න COPY.

ADDURL එකකින් පැකේජයක් බාගත කර පිටපත් කිරීමට ඩොකර් කණ්ඩායම දැඩි ලෙස අධෛර්යමත් කරයි . ඒ වෙනුවට, RUNවිධානයක් තුළ wget හෝ curl භාවිතා කිරීම ආරක්ෂිත සහ වඩා කාර්යක්ෂම වේ . එසේ කිරීමෙන්, ඔබ අතිරේක රූප තට්ටුවක් සෑදීමෙන් වළකින්න සහ ඉඩ ඉතිරි කරයි.


7

මුලාශ්‍රය: https://nickjanetakis.com/blog/docker-tip-2-the-difference-between-copy-and-add-in-a-dockerile :

COPY සහ ADD යන දෙකම සමාන අරමුණු සඳහා සේවය කරන ඩොකර්ෆයිල් උපදෙස් වේ. නිශ්චිත ස්ථානයක සිට ඩෝකර් අනුරුවකට ගොනු පිටපත් කිරීමට ඔවුන් ඔබට ඉඩ දෙයි.

COPY src සහ ගමනාන්තයක් ගනී. එය ඔබගේ ධාරකයෙන් (ඩෝකර් රූපය සාදන යන්ත්‍රය) දේශීය ගොනුවක හෝ නාමාවලියක ඩොකර් රූපයට පිටපත් කිරීමට පමණක් ඉඩ දෙයි.

ADD ඔබටත් එය කිරීමට ඉඩ දෙයි, නමුත් එය තවත් ප්‍රභව 2 කට සහය දක්වයි. පළමුව, ඔබට දේශීය ගොනුවක් / නාමාවලියක් වෙනුවට URL එකක් භාවිතා කළ හැකිය. දෙවනුව, ඔබට තාර ගොනුවක් ප්‍රභවයෙන් කෙලින්ම ගමනාන්තයට උකහා ගත හැකිය

ADD සඳහා වලංගු භාවිත නඩුවක් වන්නේ ඔබේ ඩොකර් පින්තූරයේ ඇති විශේෂිත තාර ගොනුවකට දේශීය තාර ගොනුවක් උකහා ගැනීමට අවශ්‍ය විටය.

ඔබ දේශීය ලිපිගොනු ඔබගේ ඩෝකර් රූපයට පිටපත් කරන්නේ නම්, සෑම විටම COPY භාවිතා කරන්න.


4

වැදගත් සටහනක්

COPYමගේ ඩොකර් පිංතූරයේ ජාවා පැකේජය ඉවත් කිරීමට මට සිදු විය . මම ADD භාවිතා කර නිර්මාණය කරන ලද ඩොකර් රූප ප්‍රමාණය සංසන්දනය කළ විට එය COPY, tar -xzf * .tar.gz සහ rm * .tar.gz භාවිතා කර නිර්මාණය කළ ප්‍රමාණයට වඩා 180MB විශාල විය.

මෙයින් අදහස් කරන්නේ ADD තාර ගොනුව ඉවත් කළත් එය තවමත් කොතැනක හෝ තබා ඇති බවයි. එය රූපය විශාල කරයි !!


ඩෝකර් හි නවතම අනුවාදය සඳහා මෙය තවමත් සත්‍යයක්ද?
නවින්

3

ධජය COPYසමඟ ඩොකර් 17.05 භාවිතා කරන බැවින්--from බහු-අදියර, ඇල්ම, වත්මන් ගොඩ නැඟීමට අදියර පෙර ගොඩ නැඟීමට අවස්ථාවේ සිටම කෞතුක භාණ්ඩ පිටපත් කිරීමට.

සිට ප්රලේඛනය

විකල්පයක් ලෙස COPY විසින් --from=<name|index>පරිශීලක විසින් යවන ලද ගොඩනංවන සන්දර්භය වෙනුවට භාවිතා කළ හැකි පෙර තැනක (FROM .. AS සමඟ සාදන ලද) ප්‍රභව ස්ථානය සැකසීමට භාවිතා කළ හැකි ධජයක් පිළිගනී .


0
docker build -t {image name} -v {host directory}:{temp build directory} .

පින්තූරයකට ගොනු පිටපත් කිරීමට මෙය තවත් ක්‍රමයකි. -V විකල්පය තාවකාලිකව ගොඩනැගීමේ ක්‍රියාවලියේදී අප භාවිතා කළ පරිමාවක් නිර්මාණය කරයි.

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

එසේම, curl සහ wget මෙන්, එය විධාන තොගයක් තුළ ධාවනය කළ හැකිය (තනි බහාලුමක් තුළ ධාවනය වේ) සහ රූපයේ ප්‍රමාණය ගුණ නොකරන්න. ADD සහ COPY ඒවා තනිවම බහාලුම්වල ධාවනය වන නිසා ඒවා ගබඩා කළ නොහැකි අතර අතිරේක බහාලුම්වල ක්‍රියාත්මක වන ලිපිගොනු වල විධාන රූපයේ ප්‍රමාණය වැඩි කරයි:

විකල්පයන් මෙසේ සකසා ඇත:

-v /opt/mysql-staging:/tvol

පහත දැක්වෙන්නේ එක් භාජනයක ක්‍රියාත්මක වේ:

RUN cp -r /tvol/mysql-5.7.15-linux-glibc2.5-x86_64 /u1 && \
    mv /u1/mysql-5.7.15-linux-glibc2.5-x86_64 /u1/mysql && \

    mkdir /u1/mysql/mysql-files && \
    mkdir /u1/mysql/innodb && \
    mkdir /u1/mysql/innodb/libdata && \
    mkdir /u1/mysql/innodb/innologs && \
    mkdir /u1/mysql/tmp && \

    chmod 750 /u1/mysql/mysql-files && \
    chown -R mysql /u1/mysql && \
    chgrp -R mysql /u1/mysql

1
එම විකල්පය ඔබ දකින තැන ඔබ සිටින්නේ කුමන ඩොකර් අනුවාදයද? එය ලේඛනගත කර නොමැති අතර මගේ 1.12.1 සේවාදායකයා මත ක්‍රියා නොකරයි.
BMitch

2
ඇත්ත වශයෙන්ම, මෙම අංගය තවමත් ප්‍රධාන නිකුතුවට ඇතුළත් කර නොමැති අතර, මෙම විෂය පිළිබඳව තවමත් විශාල කතාබහක් ඇති බැවින් දීර් time කාලයකට පෙර අප එය අපේක්ෂා නොකළ යුතුය ... වැඩි විස්තර සඳහා දෝෂ වාර්තාව බලන්න: github.com/ docker / docker / issues / 14080 .
jwatkins

1
ඔව්, එවැනි විකල්පයක් නොමැත (නවතම අනුවාදය 17.06 හි පරීක්ෂා කර ඇත). මෙම පිළිතුර නොමඟ යවන සුළුය. unknown shorthand flag: 'v' in -v
කිරිබි

නොමඟ යවන ප්‍රකාශය ඇත්ත වශයෙන්ම
ගයිඩෝ වැන් ස්ටීන්

ඩොකර් වෙළුම් වලට පිළිතුරෙහි මෙහි කිසිදු සම්බන්ධයක් නොතිබුණි, කරුණාකර ඔබට හැකි නම්, question ජු ප්‍රශ්නයට පිළිතුරු දෙන්න :), එය පහසුවෙන්ම පහත් පිළිතුරයි.
මජිඩ් අලි ඛාන්
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.