рдХреЗрдВрджреНрд░ рдХреА рдпрд╛рддреНрд░рд╛ рдХрд░реЗрдВ ... docker image рдпрд╛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рдмрд┐рдирд╛ рдбреЙрдХрдЯрд░ рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдХреИрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдирдП рд╕рд╛рд▓ рд╕реЗ 3 рджрд┐рди рдкрд╣рд▓реЗ рдПрдХ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░, рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рдерд╛ред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдПрдХ рдХрд┐рд▓реЛрдореАрдЯрд░ рд▓рдВрдмреЗ рдкрддрд╡рд╛рд░ рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рджрд░реНрдЬрдиреЛрдВ docker рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ microservice рдордВрдЪ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдерд╛:


  • рдорд╛рд╕реНрдХреЛ рдореЗрдВ рдкреНрд░рдмрдВрдзрдХ (рдореИрдВ рд╡рд╣рд╛рдБ рд╕реЗ рдирд╣реАрдВ рд╣реВрдБ)
  • рд╡рд┐рдВрдбреЛрдЬ
  • рдХреЛрдИ рд╕реАрдзрд╛ рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ рд╣реИ (рдФрд░ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛)
  • рдбреЙрдХрдЯрд░ рдирдВ

Pff, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛! рдореИрдВ рдЧреЛрд▓рд╛рдВрдЧ рд▓реЗ рдЬрд╛рдКрдВрдЧрд╛, рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦреВрдВрдЧрд╛, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░реВрдВрдЧрд╛ред
... рдФрд░ 5 рдШрдВрдЯреЗ рдмрд╛рдж рдореБрдЭреЗ рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рдЬрд▓реНрджрдмрд╛рдЬреА рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖред рдЙрд╕ рд╕рдордп, рдиреЗрд▓реНрд╕рди рдХреА рд╣рдБрд╕реА рдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╛рдж рдХрд┐рдпрд╛ред рд╣рд╛ рд╣рд╛! рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рд╣рд░ рд╕рдордп рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ред


рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдг рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдбреЙрдХрд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдбреЙрдХрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдШрдВрдЯреЗ рдХреЗ рдЧреЛрдЗрдВрдЧреНрд▓рд┐рдВрдЧ, рдПрдХ рдФрд░ рджреЛ рдХреЗ рдмрд╛рдж рдкрд╛рдП рдЧрдП рдереЗред рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдиреЗ рдореБрдЭреЗ рд╕рднреА рдЫрд╡рд┐ рдкрд░рддреЛрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХреА, рд▓реЗрдХрд┐рди рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдФрд░ рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╣реИрд╢ рд╕реНрдХреНрд░реАрди рдкрд░ рдлрд╝реНрд▓рд┐рдХрд░ рдереЗ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ FIXME ред рдПрдХ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╡рд╣рд╛рдБ рд░реБрдХ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рдмрдВрдзрдХ рдХреА рдЫрд╡рд┐рдпрд╛рдВ рд╣рдорд╛рд░реА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЙрд╕реА рд░реВрдк рдореЗрдВ рд╣реИрдВ? рд▓реЗрдХрд┐рди рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ! рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдмрд╕ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдП рд╣реИрдВ, рдбреЙрдХрд░ рд╕реЗрд╡ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдкрд░ рд╢рд╛рдВрдд рд╣реБрдПред


рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рдЪреМрдереЗ рджрд┐рди, рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдердХреЗ рд╣реБрдП, рдбреЙрдХ рдЫрд╡рд┐ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдиреЗ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдкрдЫрд╛рдбрд╝ рджрд┐рдпрд╛, рдФрд░ рдореИрдВ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рднреАрдбрд╝ рдХреЛрдб рдореЗрдВ рдбреВрдм рдЧрдпрд╛ред


рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп рдХреНрдпрд╛ рдерд╛:


  • рд╕рднреА рдкрд░рддреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдордЭреЗрдВ

рдкрд╛рдпрдерди рдХреЛ "рд╣рд╛рде рдореЗрдВ рд▓реЗрдирд╛" рдФрд░ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рджреВрд╕рд░реЗ рджрд┐рди, рдореИрдВрдиреЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред Oauth- рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╢рд┐рд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдмрд╕ рд╡рд╣рд╛рдВ рд╕реЗ рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХреЙрдкреА рдХрд┐рдпрд╛, рд╕рд╛рде рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рдП рдЧрдП рдШрдЯрдирд╛рдХреНрд░рдоред рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рдЙрдареЗ:


  • рдЬрдм рдХрд░рдХ рдкреБрд▓ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреМрди рд╕реА рд╣реИрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВ?
  • рдХреНрдпрд╛ рд╣реИрдВрд╢ рдЬреЛ рдЫрд╡рд┐ рдЯрд╛рд░рдмреЙрд▓ рдХреЗ рдЕрдВрджрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ?
  • рдПрдХ рдЯрд╛рд░ рдЖрд░реНрдХрд╛рдЗрд╡ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдЪреЗрдХ рд░рд╛рд╢рд┐ рдореВрд▓ рдЫрд╡рд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рдП?

рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ ubuntu рдЫрд╡рд┐ рдЪреБрдиреА: 18.04
Sha256sum рдЗрдореЗрдЬ рдбреЙрдХреНрдпреВ docker save рдорд╛рдзреНрдпрдо рд╕реЗ docker save - 257cab9137419a53359d0ed76f680fe926ed3645238357bdcdb84070a8f26cd0ред


 > docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu 2746a4a261c9: Downloading [==============> ] 6.909MB/26.69MB 4c1d20cdee96: Download complete 0d3160e1d0de: Download complete c8e37668deea: Download complete Digest: sha256:250cc6f3f3ffc5cdaa9d8f4946ac79821aafb4d3afc93928f0de9336eba21aa4 Status: Downloaded newer image for ubuntu:18.04 docker.io/library/ubuntu:18.04 

рдЫрд╡рд┐ рдЯрд╛рд░рдмреЙрд▓ рд╕рд╛рдордЧреНрд░реА


 tar tvf ubuntu.tar drwxr-xr-x 0 root root 0 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/ -rw-r--r-- 0 root root 3 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/VERSION -rw-r--r-- 0 root root 477 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/json -rw-r--r-- 0 root root 991232 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/layer.tar drwxr-xr-x 0 root root 0 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/ -rw-r--r-- 0 root root 3 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/VERSION -rw-r--r-- 0 root root 477 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/json -rw-r--r-- 0 root root 15872 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/layer.tar -rw-r--r-- 0 root root 3411 Dec 19 11:21 549b9b86cb8d75a2b668c21c50ee092716d070f129fd1493f95ab7e43767eab8.json drwxr-xr-x 0 root root 0 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/ -rw-r--r-- 0 root root 3 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/VERSION -rw-r--r-- 0 root root 1264 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/json -rw-r--r-- 0 root root 3072 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/layer.tar drwxr-xr-x 0 root root 0 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/ -rw-r--r-- 0 root root 3 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/VERSION -rw-r--r-- 0 root root 401 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/json -rw-r--r-- 0 root root 65571328 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/layer.tar -rw-r--r-- 0 root root 432 Jan 1 1970 manifest.json -rw-r--r-- 0 root root 88 Jan 1 1970 repositories 

рдЫрд╡рд┐ рд╡рд┐рдиреНрдпрд╛рд╕


 { ... "rootfs": { "type": "layers", "diff_ids": [ "sha256:2dc9f76fb25b31e0ae9d36adce713364c682ba0d2fa70756486e5cedfaf40012", "sha256:9f3bfcc4a1a8a676da07287a1aa6f2dcc8e869ea6f054c337593481a5bb1345e", "sha256:27dd43ea46a831c39d224e7426794145fba953cd7309feccf4d5ea628072f6a2", "sha256:918efb8f161b4cbfa560e00e8e0efb737d7a8b00bf91bb77976257cd0014b765" ] } ... } 

рдкрд╣рд▓реЗ рдкреНрд░рд╢реНрди рдХреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреНрд░рд▓реЗрдЦрди https://github.com/opencontainers/image-spec/blob/master/config.md рдиреЗ рдорджрдж рдХреАред рдЬрдм рдЖрдк docker рдкреБрд▓ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рд╣реИрд╢ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрдореЗрдЬ-рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдбрд┐рдлреЙрд▓реНрдЯ рдХреА diff_ids рд▓рд┐рд╕реНрдЯ рд╕реЗ рдЪреЗрдирдЖрдИрдбреА рдХреЛ рдХреИрд▓рдХреБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ diff_ids рд▓рд┐рд╕реНрдЯ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдЪреЗрдирдЖрдИрдбреА рд╣рдореЗрд╢рд╛ рдкрд╣рд▓рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ (chain_id[i-1] + " " + diff_id[i]) ред рд╢реНрд░рдВрдЦрд▓рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:


 def chain_ids(ids: list) -> list: chain = list() chain.append(ids[0]) if len(ids) < 2: return ids nxt = list() nxt.append("sha256:" + hashlib.sha256(f'{ids[0]} {ids[1]}'.encode()).hexdigest()) nxt.extend(ids[2:]) chain.extend(chain_ids(nxt)) return chain 

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдирд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ "sha256:", рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ рдФрд░ opencontainers рдорд╛рдирдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо: рд╣реИрд╢" рдлреЙрд░реНрдо рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдирд╛рдордХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд╡рд╛рд▓ рдкрд░ рджреЛ рд╢рд╛рдореЗрдВ рдмрд┐рддрд╛рдИрдВред рдХрд╛рдлреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рдбреЙрдХрдЯрд░-рдбреЗрдорди рдФрд░ рдУрд╣ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрд╛! рдПрдХ рдЪрдорддреНрдХрд╛рд░! рдореИрдВ рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рдкреАрдврд╝реА рдХреЛрдб рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ json рдкрд░рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбреЙрдХрд░ рдореЗрдВ рдХрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ рдФрд░ docker рдХреЗ рдЗрдВрдЬрди 1.9 рд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрд╕реНрдХрд░рдг v1 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛! рдФрд░ рдлрд┐рд░, рдиреЗрд▓реНрд╕рди рдХрд╛ рд╕рд┐рд▓реНрд╣реВрдЯ рдЙрдарддрд╛ рд╣реИред рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╣рд╕ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЬреЗрдирд╕рди рдХреА рдкреАрдврд╝реА рдореЗрдВ рдЫрд┐рдкреА рд╣реБрдИ рдереАред рдкрд╛рдпрдерди рдореЗрдВ, рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрд░рдо рдЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рдЙрддреНрдкрдиреНрди json рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдХреНрд░рдо рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Json рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрд░рдо рдЕрд▓рдЧ рд╣реЛрдЧрд╛, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЗрд╕рдХрд╛ рд╣реИрд╢ рднреА рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдСрд░реНрдбрд░рдбреАрдбрд┐рдХреНрдЯ рдкрд░ рдЬрд╛рдирд╛ рдерд╛, рдЙрдирдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдбреЗрдЯрд╛ рдСрд░реНрдбрд░ рджрд░реНрдЬ рдХрд░рдирд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдХреЛрдб рдХрд╛ рдЖрдХрд╛рд░ рдбреЗрдврд╝ рдЧреБрдирд╛ рдмрдврд╝ рдЧрдпрд╛ред


рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ ... рдХрд╣реАрдВ рдЧрд╣рд░реЗ рдЕрдВрджрд░, рдХреБрдЦреНрдпрд╛рдд рд╣рд╛-рд╣рд╛ рдкреЙрдк рдХрд░рддрд╛ рд╣реВрдВ! рдЖрдЦрд┐рд░реА рд╣реИрд╢ рдореИрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдореИрдВ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ , рдФрд░ рдпрд╣ рдПрдХ рдФрд░ v1-config рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЫрд╡рд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЬрд┐рд╕реЗ docker inspect рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдСрд░реНрдбрд░ рдЬреЛрдбрд╝реЗрдВ, рдХреЛрдб рдХреЛ рдкреВрд░рдХ рдХрд░реЗрдВ рдФрд░ ... рд╣рд╛ рд╣рд╛!
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрдмрд╣ 5 рдмрдЬреЗ рдерд╛ рдФрд░ рдореЗрд░рд╛ рд╕рд┐рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдиреАрдВрдж рдХреЗ рдмрд╛рдж рдореИрдВ рдХреЛрдб рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реМрдЯ рдЖрдпрд╛ред рдмрд╛рд░-рдмрд╛рд░ рдЬрдирд░реЗрд╢рди рдХреЛрдб рдХреЛ рджреЗрдЦрдХрд░ рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ рдЖ рдЧрдПред рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдХрд░ рдХрд┐рддрдиреА рдЦреБрд╢реА рд╣реБрдИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЙрд╕реЗ рджреЗрдЦрддрд╛, рдореЗрд░реЗ рд╕рд╛рде рдЕрдкрдиреЗ рдбреЙрдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╡рд┐рдЪрд╛рд░ рдереЗ рдмреНрд▓реИрдХ рдЬреИрдХ рдФрд░ рдбреЗрдЯрд╛ рд▓реЙрдЧрд┐рдВрдЧред рдореИрдВ рдбрд┐рдмрдЧ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдВ, docker save рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ ... рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдирд╣реАрдВ рд╣реИ, рдореИрдХ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдбреЙрдХ-рдбреЗрд╕реНрдХрдЯреЙрдк рдореЗрдВ 947 рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓реЙрдЧ рдореЗрдВ рд▓рд╛рдЗрди рдХреА рд▓рдВрдмрд╛рдИ рдХреА рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрддреНрдкрдиреНрди рд╡рд┐рдиреНрдпрд╛рд╕ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ \" ред рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкрд░рдд, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореИрдВрдиреЗ рдХреЛрдб рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рдореИрдВ рдЕрдВрддрд┐рдо рдкрд░рдд рдХрд╛ рд╡рд╛рдВрдЫрд┐рдд рд╣реИрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдПрдХ рд╣реА рд╣реИ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЯрд╛рд░ рд╕рдВрдЧреНрд░рд╣ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ... HAHA!


рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛, https://github.com/opencontainers/image-spec/blob/master/layer.md рдФрд░ рдЯрд╛рд░ рдЖрд░реНрдХрд╛рдЗрд╡ рдкреНрд░рд╛рд░реВрдк рдкрдврд╝реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 10240 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ, рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЖрдХрд╛рд░ 9216 рдмрд╛рдЗрдЯреНрд╕ рдмрдбрд╝рд╛ рд╣реИред рдкрд╣рд▓реЗ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЛ 1024 рдмрд╛рдЗрдЯреНрд╕ рддрдХ рдХрдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬреЛ рдЧрд▓рдд рдирд┐рдХрд▓рд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 512 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдиреЗ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрд░рд╛рдмрд░ рдХрд░ рджрд┐рдпрд╛ред


 tarfile.RECORDSIZE = 512 

рдирдП рдмрдирд╛рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ "/" рд╣реИред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдХреИрди рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рдкреВрд░рдХ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ, рдкрд╣рд▓реЗ рд╕реЗ рдЗрд╕реЗ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдорд╛рди рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ .json рдФрд░ respoitories рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ st_atime рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, st_mime рдмрд░рд╛рдмрд░ st_ctime рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ.рдЬреЙрд╕рди рдФрд░ рд░реЗрд╕реНрдкрд┐рд░реЗрдЯрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдЯ_рдЯрд╛рдЗрдо, st_mtime рдФрд░ st_ctime рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ 1970-01-01 1970-01-01 00:00 рдпреБрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдирд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рддрд┐рдерд┐рдпреЛрдВ рдХреЛ рдХреНрд░рдорд╢рдГ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдореИрдХ рдУрдПрд╕ рдореЗрдВ рд╕рднреА рдХрд╛рдо рдХрд┐рдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдЕрдВрддрд░ рджреЗрдЦрд╛ред рдЫрд╡рд┐ рдХреЛ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп, рд╕рдВрдЧреНрд░рд╣ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:


 tar tvf ubuntu.tar drwxr-xr-x 0/0 0 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/ -rw-r--r-- 0/0 3 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/VERSION -rw-r--r-- 0/0 477 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/json -rw-r--r-- 0/0 991232 Dec 19 11:21 07adecfcb06a1142a69c3e769cb38f2d4ef9d772726ce1e65bc6dbd4448cccc9/layer.tar drwxr-xr-x 0/0 0 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/ -rw-r--r-- 0/0 3 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/VERSION -rw-r--r-- 0/0 477 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/json -rw-r--r-- 0/0 15872 Dec 19 11:21 3e1d90747aa9d2a7ec6e9693bdd490dff8528b9aec4a2fac2300824e4ba3a60e/layer.tar -rw-r--r-- 0/0 3411 Dec 19 11:21 549b9b86cb8d75a2b668c21c50ee092716d070f129fd1493f95ab7e43767eab8.json drwxr-xr-x 0/0 0 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/ -rw-r--r-- 0/0 3 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/VERSION -rw-r--r-- 0/0 1264 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/json -rw-r--r-- 0/0 3072 Dec 19 11:21 b0474230e27ddbba2f46397aac85d4d2fd748064ed9c0ff1e57fec4f063fcf6b/layer.tar drwxr-xr-x 0/0 0 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/ -rw-r--r-- 0/0 3 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/VERSION -rw-r--r-- 0/0 401 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/json -rw-r--r-- 0/0 65571328 Dec 19 11:21 c8ba25f7db9f70220ac92449b238a0697f9eb580ef4f905225a333fc0a5e8719/layer.tar -rw-r--r-- 0/0 432 Jan 1 1970 manifest.json -rw-r--r-- 0/0 88 Jan 1 1970 repositories 

рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реВрдЪреА рдХреЗ рд╡рд┐рдкрд░реАрдд, рд▓рд┐рдирдХреНрд╕ рдкрд░, рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред Tarinfo рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЛ рдЪрд░ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, tarinfo.uname рдФрд░ tarinfo.gnameред рдФрд░ рдореИрдХ рдУрдПрд╕ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдПрдХ рд░реВрдЯ рд╕рдореВрд╣ рдХреА рдХрдореА рд╣реИ, рдпрд╣ рдПрдХ рд╣реА рдЯреИрд░рд┐рдиреЛрдлреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ tarinfo.gid рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЦреИрд░, рд╕рдм рдХреБрдЫ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ ...



рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣реИрд╢ рдЕрднрд┐рд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рд╕рдорд╛рди рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ st_atime, st_mtime рдФрд░ st_ctime рдореВрд▓ рдХреЗ рд╕рд╛рде рдЕрднрд┐рд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИрдВред рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рджреЛрдиреЛрдВ рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдВрддрд░ рдЖрдпрд╛:



рдКрдкрд░реА рдЦрд┐рдбрд╝рдХреА рдореВрд▓ рд╣реИ, рдирд┐рдЪрд▓реЗ рд╕рдВрдЧреНрд░рд╣ рдореИрдВрдиреЗ рдПрдХрддреНрд░ рдХрд┐рдП рд╣реИрдВред


рдЯрд╛рд░ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╕рдордЭрдирд╛ред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ (рдирд╛рд░рдВрдЧреА рдЖрдпрдд) рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдореВрд▓реНрдп рд╣реИред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛ рд░рд╣реА рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИред рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ 40755 рдХрд╛ рдорд╛рди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 755 рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ, рдФрд░ 100644 644 рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИред рд▓рд╛рд▓ рдЖрдпрдд рдореИрдЬрд┐рдХ-рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдФрд░ ustar\000 рдХреЛрдб, рдореИрдЬрд┐рдХ-рд╕реНрдЯреНрд░рд┐рдВрдЧ ustar\000 , рдпрд╣ рдХреЗрд╡рд▓ рдкреИрдХреНрд╕ рдФрд░ рдпреВрдПрд╕рдЯреАрдПрдЖрд░ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред PAX рдкреНрд░рд╛рд░реВрдк рдмрд┐рд▓реНрдХреБрд▓ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдиреАрд▓реА рдЖрдпрдд рдПрдХ рдЪреЗрдХ рд░рд╛рд╢рд┐ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЬрд╛рджреВ-рд╣реЗрдбрд░ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред


рдореИрдВ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╛рд░реВрдк рдХреЛ USTAR рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ , рдореЗрд░реЗ рд▓рд┐рдП рдЬрд╛рджреВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореИрдВрдиреЗ рдХрднреА рдСрдХреНрдЯреЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдпрд╣рд╛рдБ рдПрдореНрдкрд░рд╕реЗрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ (рдХреНрдпрд╛ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЕрдкрдирд╛ рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рд┐рдВрдЯ рдЬреЛрдбрд╝рдиреЗ рдкрдбрд╝реЗ рдХрд┐ рдбреЗрдЯрд╛ рдХрд┐рд╕ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдмреНрд▓реЙрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреА рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рд▓реЗрддреЗ рд╣реБрдП, рдпрд╣ 16877 рдерд╛, рдФрд░ рдЗрд╕реЗ рдСрдХреНрдЯрд▓ рдХреИрд▓рдХреБрд▓рд╕ рдХреА рдУрд░ рдЕрдЧреНрд░рд╕рд░ рдХрд┐рдпрд╛, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдорд╛рди 0o40755 , рдЬреЛ 0o40755 рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред рдмрд╕ get_info рдФрд░ _create_header рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ & 0o7777 , рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдирд╛ & 0o7777 (рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖрдпрд╛), рдореИрдВ рдПрдХ рдореВрд▓ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдПрдХ sha256 рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд╛рд░ рд╕рдВрдЧреНрд░рд╣ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред


PS рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╕рдордп, ubuntu рдХреА рдЫрд╡рд┐ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ: 18.04 hub.docker.com рдкрд░ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкрд░ рдЗрдореЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рдкрдбрд╝реАред рд╣реИрд╢ рд░рд╛рд╢рд┐ рдЕрдм рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдореВрд▓ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИ рдХрд┐ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреЛ рдЯреИрдЧ рдХреЗ рдмрдЬрд╛рдп рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдиреНрдпрдерд╛ рд╡реЗ рд╕рдорд╛рди рдЫрд╡рд┐рдпрд╛рдВ рдереАрдВред


рдореЗрд░реЗ рд▓рд┐рдП рджреВрд╕рд░реА рдЦреЛрдЬ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдереА рдЬрдм рдПрдХ рд▓рд╛рдкрддрд╛ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реБрдП docker save рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред


рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХреЛрдб рдпрд╣рд╛рдВ: https://github.com/myback/docker_pull


рдиреЗрд▓реНрд╕рди рдордВрдЬрд╝ рдХреА рдЫрд╡рд┐, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреА рд╣рдВрд╕реА "рд╣рд╛-рд╣рд╛" рдлреЙрдХреНрд╕ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ :)

Source: https://habr.com/ru/post/hi484374/


All Articles