{"id":10008074,"date":"2023-07-11T12:59:45","date_gmt":"2023-07-11T04:59:45","guid":{"rendered":"https:\/\/ityet.com\/?p=10008074"},"modified":"2023-07-11T12:59:45","modified_gmt":"2023-07-11T04:59:45","slug":"%e5%ae%b9%e5%99%a8%e8%bf%90%e8%a1%8c%e6%97%b6%e7%9a%84%e5%86%85%e9%83%a8%e7%bb%93%e6%9e%84%e5%92%8c%e6%9c%80%e6%96%b0%e8%b6%8b%e5%8a%bf%ef%bc%882023%ef%bc%89","status":"publish","type":"post","link":"https:\/\/itmax.cn\/?p=10008074","title":{"rendered":"\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u5185\u90e8\u7ed3\u6784\u548c\u6700\u65b0\u8d8b\u52bf\uff082023\uff09"},"content":{"rendered":"<h2>\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u5185\u90e8\u7ed3\u6784\u548c\u6700\u65b0\u8d8b\u52bf\uff082023\uff09<\/h2>\n<p>\u539f\u6587\u4e3a Akihiro Suda \u5728\u65e5\u672c\u4eac\u90fd\u5927\u5b66\u505a\u7684\u5728\u7ebf\u8bb2\u5ea7\uff0c\u5b8c\u6574\u7684 PPT \u53ef <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=xLS2Q1MknP1sVOSJ2M0RjA%3D%3D.QRxlI4SnvZrgj6QO28k5EYR1k%2F%2FP9qNgWlI%2FCDT0clDdKfYoKICGx9VxFUnyeuXjWx%2BzH9eXKQ00WIvGxvjEP%2FyblvRY1euBPUQanEqPa6KJrPzx0qt3ov%2Fi8OcJ%2FHjOetaz3AFFPP5qqKWxs67H6airFU4zh2AtJ1YEMPUfBm90Qsn2vRW4T0xOiwWR2PxiWgUKFVbfBRAYvjJ5zTxEPTegI7xIzn2NwPAA4ZRSpCLIPWe01%2FAG3Qpygcd20f9rXQhMGZuri3ESI%2F2wO8Py5N%2BuyJUeKhmWHvj%2BwVDRo5w%3D\" rel=\"noopener noreferrer\">\u70b9\u51fb\u6b64\u5904\u4e0b\u8f7d<\/a><\/p>\n<p>\u672c\u6587\u5185\u5bb9\u5206\u4e3a\u4ee5\u4e0b\u4e09\u4e2a\u90e8\u5206\uff1a<\/p>\n<ol>\n<li>\u5bb9\u5668\u7b80\u4ecb<\/li>\n<li>\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u5185\u90e8\u7ed3\u6784<\/li>\n<li>\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u6700\u65b0\u8d8b\u52bf<\/li>\n<\/ol>\n<hr>\n<h3>1. \u5bb9\u5668\u7b80\u4ecb<\/h3>\n<h4>\u4ec0\u4e48\u662f\u5bb9\u5668\uff1f<\/h4>\n<p>\u5bb9\u5668\u662f\u4e00\u7ec4\u7528\u4e8e\u9694\u79bb\u6587\u4ef6\u7cfb\u7edf\u3001CPU \u8d44\u6e90\u3001\u5185\u5b58\u8d44\u6e90\u3001\u7cfb\u7edf\u6743\u9650\u7b49\u7684\u5404\u79cd\u8f7b\u91cf\u7ea7\u65b9\u6cd5\u3002\u5bb9\u5668\u5728\u5f88\u591a\u610f\u4e49\u4e0a\u7c7b\u4f3c\u4e8e\u865a\u62df\u673a\uff0c\u4f46\u5b83\u4eec\u6bd4\u865a\u62df\u673a\u66f4\u9ad8\u6548\uff0c\u800c\u5b89\u5168\u6027\u5219\u5f80\u5f80\u4f4e\u4e8e\u865a\u62df\u673a\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995661\" alt=\"\" title=\"\"><\/p>\n<p>\u6709\u8da3\u7684\u662f\uff0c\u201c<em>\u5bb9\u5668<\/em>\u201d\u76ee\u524d\u8fd8\u6ca1\u6709\u4e25\u683c\u7684\u5b9a\u4e49\u3002\u5f53\u865a\u62df\u673a\u63d0\u4f9b\u7c7b\u4f3c\u5bb9\u5668\u7684\u63a5\u53e3\u65f6\uff0c\u4f8b\u5982\uff0c\u5f53\u5b83\u4eec\u5b9e\u73b0 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=bHWHTKhYcHoitMNCHCFZlQ%3D%3D.NERx1G%2B2BB1MFI2%2F%2BABJT%2FnF6suivwHEKKxs0wPtUgKrp70TBPl8CRxEdO4WnRfl\" rel=\"noopener noreferrer\">OCI\uff08\u5f00\u653e\u5bb9\u5668\uff09\u89c4\u8303<\/a> \u65f6\uff0c\u751a\u81f3\u865a\u62df\u673a\u4e5f\u53ef\u4ee5\u88ab\u79f0\u4e3a\u201c<em>\u5bb9\u5668<\/em>\u201d\u3002\u8fd9\u79cd\u201c\u975e\u5bb9\u5668\u201d\u7684\u5bb9\u5668\u5c06\u5728\u540e\u9762\u7684\u7b2c\u4e09\u90e8\u5206\u4e2d\u8ba8\u8bba\u3002<\/p>\n<h4>Docker<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=7nRzASzuIK%2FeIQCwPVo%2BUQ%3D%3D.FHyl490qpcpI3iSMzsJXQUS4hsPOwMZRa5vaBK6fnWU%3D\" rel=\"noopener noreferrer\">Docker<\/a> \u662f\u6700\u6d41\u884c\u7684\u5bb9\u5668\u5f15\u64ce\u3002Docker \u672c\u8eab\u652f\u6301 Linux \u5bb9\u5668\u548c Windows \u5bb9\u5668\uff0c\u4f46 Windows \u5bb9\u5668\u4e0d\u5728\u672c\u6b21\u8ba8\u8bba\u7684\u8303\u56f4\u4e4b\u5185\u3002<\/p>\n<p>\u542f\u52a8 Docker \u5bb9\u5668\u7684\u5178\u578b\u547d\u4ee4\u884c\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"shell\">docker run -p 8080:80 -v .:\/usr\/share\/nginx\/html nginx:1.25<\/code><\/pre>\n<p>\u6267\u884c\u8be5\u547d\u4ee4\u540e\uff0c\u53ef\u4ee5\u5728 <code>http:\/\/&lt;the host\u2019s IP&gt;:8080\/<\/code> \u4e2d\u770b\u5230\u5f53\u524d\u76ee\u5f55\u4e0b <code>index.html<\/code> \u7684\u5185\u5bb9\u3002<\/p>\n<p>\u547d\u4ee4\u4e2d\u7684 <code>-p 8080:80<\/code> \u90e8\u5206\u6307\u5b9a\u5c06\u4e3b\u673a\u7684 TCP 8080 \u7aef\u53e3\u8f6c\u53d1\u5230\u5bb9\u5668\u7684 80 \u7aef\u53e3\u3002<\/p>\n<p>\u547d\u4ee4\u4e2d\u7684 <code>-v .:\/usr\/share\/nginx\/html<\/code> \u90e8\u5206\u6307\u5b9a\u5c06\u4e3b\u673a\u4e0a\u7684\u5f53\u524d\u76ee\u5f55\u6302\u8f7d\u5230\u5bb9\u5668\u4e2d\u7684 <code>\/usr\/share\/nginx\/html<\/code>\u3002<\/p>\n<p>\u547d\u4ee4\u4e2d\u7684 <code>nginx:1.25<\/code> \u6307\u5b9a\u4f7f\u7528 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=s%2Bm1hhhd6OTW%2BNelI%2FwJOQ%3D%3D.A%2Bnb6phErjePIQ0NH%2FaUL6zucdT5ggAXJM6pQf0Umew%3D\" rel=\"noopener noreferrer\">Docker Hub<\/a> \u4e0a\u7684 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=wMPgf8ieywCcIok349aoeA%3D%3D.I5AkEXulBJmBWLe%2B4LEn91EZJ6HKy3JKBdSVx3wuN%2Bg%3D\" rel=\"noopener noreferrer\">\u5b98\u65b9 nginx \u955c\u50cf<\/a>\u3002Docker \u955c\u50cf\u4e0e\u865a\u62df\u673a\u955c\u50cf\u6709\u4e9b\u76f8\u4f3c\uff0c\u4f46\u662f\u5b83\u4eec\u901a\u5e38\u4e0d\u5305\u542b\u989d\u5916\u7684\u8bf8\u5982 systemd \u548c sshd \u7b49\u5b88\u62a4\u8fdb\u7a0b\u3002<\/p>\n<p>\u60a8\u4e5f\u53ef\u4ee5\u5728 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=LvkHjGV%2FoBna237krshkiA%3D%3D.WYHUsEsUU53xAn4i2diIo3tXS%2F8MPoyTOtbLe5u9VVo%3D\" rel=\"noopener noreferrer\">Docker Hub<\/a> \u4e0a\u627e\u5230\u5176\u4ed6\u5e94\u7528\u7a0b\u5e8f\u7684\u5b98\u65b9\u955c\u50cf\u3002\u60a8\u8fd8\u53ef\u4ee5\u4f7f\u7528\u79f0\u4e3a <code>Dockerfile<\/code> \u7684\u8bed\u8a00\u81ea\u884c\u6784\u5efa\u81ea\u5df1\u7684\u955c\u50cf\uff1a<\/p>\n<pre><code class=\"Dockerfile\">FROM debian:12\nRUN  apt-get update &amp;&amp; apt-get install -y openjdk-17-jre\nCOPY myapp.jar \/myapp.jar\nCMD  [&quot;java&quot;, &quot;-jar&quot;, &quot;\/myapp.jar&quot;]<\/code><\/pre>\n<p>\u53ef\u4ee5\u4f7f\u7528 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=tRIIvf6rY6%2FPXHNO0KA17A%3D%3D.Fyc2GHC9uqD8UbsDci3F0%2BSy875posmahjHu8tSkJ6JYolFKno5u9GiJR%2FdAR3h%2Bg%2F7gFi7eTxNajSuOfLgQ%2BA%3D%3D\" rel=\"noopener noreferrer\">docker build<\/a> \u547d\u4ee4\u6784\u5efa\u955c\u50cf\uff0c\u5e76\u4f7f\u7528 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=aLn5%2Fafoxcjz%2FkYhg4FkQQ%3D%3D.TW5B8%2FSfPJZN6iloK%2FDXj5hDYAE2WKmCZub%2BVAoXjGJGJbgLq6DsiOdQicTE00GD%2FhRyiyYBKr2CfOIk0iPg7A%3D%3D\" rel=\"noopener noreferrer\">docker push<\/a> \u547d\u4ee4\u5c06\u5176\u63a8\u9001\u5230 Docker Hub \u6216\u5176\u5b83\u955c\u50cf\u4ed3\u5e93\u3002<\/p>\n<h4>Kubernetes<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=nKNdUzaO0%2Ba%2BxWfdmrLplA%3D%3D.coTVgzzhsNhTJgu0h3ZLSiM2%2BNOFra60fGj4jMrLi7M%3D\" rel=\"noopener noreferrer\">Kubernetes<\/a> \u5c06\u591a\u4e2a\u5bb9\u5668\u4e3b\u673a\uff08\u4f8b\u5982\uff08\u4f46\u4e0d\u9650\u4e8e\uff09Docker \u4e3b\u673a\uff09\u96c6\u7fa4\u5316\uff0c\u4ee5\u63d0\u4f9b\u8d1f\u8f7d\u5e73\u8861\u548c\u5bb9\u9519\u529f\u80fd\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995662\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p>\u503c\u5f97\u6ce8\u610f\u7684\u662f\uff0cKubernetes \u4e5f\u662f\u4e00\u4e2a\u62bd\u8c61\u6846\u67b6\uff0c\u7528\u4e8e\u4e0e <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=7O6CZybr5pHUImGMymmd6A%3D%3D.gx5PEqwTQ%2B1fmqkygZeKmdudAqOSjWwxO1JxZTEHIbFyp2jrK7TLdf2%2Fi2x2lf93KfFShWV37L0EqnwY4kVNRA%3D%3D\" rel=\"noopener noreferrer\">Pods<\/a>\uff08\u59cb\u7ec8\u5728\u540c\u4e00\u4e3b\u673a\u4e0a\u5171\u540c\u8c03\u5ea6\u7684\u5bb9\u5668\u7ec4\uff09\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=bz0ghQ4%2BnqJ%2FRLkdPQQeBQ%3D%3D.6IXw9BC0ZlsPtXa%2FoJQgAOpNFDYN3vAvDs9yNlzaqoSerKwW%2FyMIS9iFoqbDHvLMokhCjGjC65J2MoOKFGnMF%2BhGZav3aPtYAasU4eiELDY%3D\" rel=\"noopener noreferrer\">Services<\/a>\uff08\u7f51\u7edc\u8fde\u63a5\u5b9e\u4f53\uff09\u548c <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=mNZRSohVtti7Z5huTj%2FPIw%3D%3D.Oxn9siVmjuK5noVEI9ikUn3kRxWLBcZ2PWqKbAjwKVhPPrTA5eiQTTCAZ0q8xa6dIgAJfMh5rTXOmXKRBabWwZqmMg%2BzuvvtQWj3vbVoEwii%2FG73UWoqFXRHVB92eNfaKKc8PmOwTW0x9gD2Q5yEsw%3D%3D\" rel=\"noopener noreferrer\">\u5176\u5b83\u7c7b\u578b\u7684\u5bf9\u8c61<\/a> \u8fdb\u884c\u4ea4\u4e92\uff0c\u4f46\u662f\u672c\u6b21\u6f14\u8bb2\u4e0d\u4f1a\u6df1\u5165\u4ecb\u7ecd kubernetes\u3002<\/p>\n<h4>Docker \u4e0e Docker \u4e4b\u524d\u7684\u5bb9\u5668<\/h4>\n<p>\u867d\u7136\u5bb9\u5668\u76f4\u5230 2013 \u5e74 Docker \u53d1\u5e03\u624d\u53d7\u5230\u592a\u591a\u5173\u6ce8\uff0c\u4f46 Docker \u5e76\u4e0d\u662f\u7b2c\u4e00\u4e2a\u5bb9\u5668\u5e73\u53f0\uff1a<\/p>\n<ul>\n<li><strong>1999<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=rwdJKYu8eZmafisd23727Q%3D%3D.Kxv%2BhilfKbq5nW2uat2noXSCoJ4PKoC%2F1Ijhfw5U%2Fxb4AX4kpsCqLxpGp2nzdjbMnUv6VT0I6Eq1qCNc5iD%2FOQ%3D%3D\" rel=\"noopener noreferrer\">FreeBSD Jail<\/a><\/li>\n<li><strong>2000<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Bv3CkWd8iq0OI66GGD6YVw%3D%3D.3YXGRhzqg06w7GteOXf3OVB6V1Zh%2BGkjcrJ1oo1tAV0Vn2OPvtQBw4gsdkSLprGPKvGCK34Z%2BJvU4dp2UzPHGA%3D%3D\" rel=\"noopener noreferrer\">Linux \u865a\u62df\u73af\u5883\u7cfb\u7edf\uff08Virtuozzo \u548c OpenVZ \u7684\u524d\u8eab\uff09<\/a><\/li>\n<li><strong>2001<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=GnkXraUceje9OsnuQXWJVw%3D%3D.kEKBWvaEJeoY9OgBgpykl0q4GvGJV4l8kM8DQu10RrXoYw12J3XR9S1Z0xxtrX8qD9BJvUpGmwFA%2BB2zmDBrNg%3D%3D\" rel=\"noopener noreferrer\">Linux Vserver<\/a><\/li>\n<li><strong>2002<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=WNFeapiJqmZE6Hbx52yizw%3D%3D.iuc96JJBQQBSptucPZDzJQ6LGsmWPDIgdZ6w065%2F3bE%3D\" rel=\"noopener noreferrer\">Virtuozzo<\/a><\/li>\n<li><strong>2004<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=f5h477daQsPi5P9tjjd5Yw%3D%3D.J1Hgvi3ogPmuLMdcdZQ1LWrknnS9vbqvwzsG8FpKfkjeWh0BuXj29fqOLCwSQt1peM%2BiFvYnlwZFPvinB1SEAg%3D%3D\" rel=\"noopener noreferrer\">BSD Jail for Linux<\/a><\/li>\n<li><strong>2004<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=jVJtOR0z2%2BJxeJEJQQwBPw%3D%3D.fKPW3vPi8dlWDUfMZ751k7otejwAPqFdP%2F9Vd03%2Bs6yKa9Vwi5Wd4t%2B6PUZiDyquo8KupElIYse83zzr5m%2B2pwb0DdIpLHmKO%2FOJUzXqKRjI8gyiYRHoCrKlP30fZi9Kkvlli6JPecM0Kvuty0XIk%2FJ%2FVHWaUPgo9ZB1n1YtJv0%3D\" rel=\"noopener noreferrer\">Solaris Containers\uff08\u663e\u7136\uff0c\u201c\u5bb9\u5668\u201d\u8fd9\u4e2a\u8bcd\u5c31\u662f\u8fd9\u6b21\u521b\u9020\u7684\uff09<\/a><\/li>\n<li><strong>2005<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=h7p%2BA%2Fn%2FURXCSDYsNaMuqQ%3D%3D.xYES1pEDTUByskP2LR4ZxjUH%2Bh%2Bly7R5LB0jcx42V4Q%3D\" rel=\"noopener noreferrer\">OpenVZ<\/a><\/li>\n<li><strong>2008<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=34quVln1Xoj5Al2%2BgBA9%2Fw%3D%3D.0JWCyvHqexkt%2BjQhyetDDo02l5NaicZILw95D2Rdac1VUGaX7ZMQNefVVcCZMKTotgqbq%2B%2BtZbvCxvRhcu7DjMcwflnLvPUAftrO6t8igBs%3D\" rel=\"noopener noreferrer\">LXC<\/a><\/li>\n<li><strong>2013<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=UfrvcqT2eD6Jow9O9jKO4Q%3D%3D.bCw0YNqhMlY5QTA135RYaxoytH2mHxcq2BcIxzFqokmMzLkNRwNuKazOntsyp8Bg\" rel=\"noopener noreferrer\">Docker<\/a><\/li>\n<\/ul>\n<p>\u4eba\u4eec\u666e\u904d\u8ba4\u4e3a FreeBSD Jail\uff08\u5927\u7ea6 1999 \u5e74\uff09\u662f\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\u7684\u7b2c\u4e00\u4e2a\u5b9e\u7528\u5bb9\u5668\u5b9e\u73b0\uff0c\u5c3d\u7ba1\u201c\u5bb9\u5668\u201d\u8fd9\u4e2a\u672f\u8bed\u5e76\u4e0d\u662f\u5728\u90a3\u65f6\u521b\u9020\u7684\u3002<\/p>\n<p>\u4ece\u90a3\u65f6\u8d77\uff0cLinux \u4e0a\u4e5f\u51fa\u73b0\u4e86\u51e0\u79cd\u5b9e\u73b0\u3002\u7136\u800c\uff0cDocker \u4e4b\u524d\u7684\u5bb9\u5668\u4e0e Docker \u5bb9\u5668\u6709\u672c\u8d28\u4e0a\u7684\u4e0d\u540c\u3002\u524d\u8005\u4e13\u6ce8\u4e8e\u6a21\u4eff\u6574\u4e2a\u673a\u5668\uff0c\u5176\u4e2d\u5305\u542b System V init\u3001sshd\u3001syslogd \u7b49\u3002\u5f53\u65f6\u7ecf\u5e38\u5c06 Web \u670d\u52a1\u5668\u3001\u5e94\u7528\u670d\u52a1\u5668\u3001\u6570\u636e\u5e93\u670d\u52a1\u5668\u548c\u6240\u6709\u5185\u5bb9\u653e\u5165\u4e00\u4e2a\u5bb9\u5668\u4e2d\u3002<\/p>\n<p>Docker \u6539\u53d8\u4e86\u6574\u4e2a\u8303\u5f0f\u3002\u5c31 Docker \u800c\u8a00\uff0c\u4e00\u4e2a\u5bb9\u5668\u901a\u5e38\u53ea\u5305\u542b\u4e00\u4e2a\u670d\u52a1\uff0c\u56e0\u6b64\u5bb9\u5668\u53ef\u4ee5\u662f\u65e0\u72b6\u6001\u4e14\u4e0d\u53ef\u53d8\u7684\u3002\u8fd9\u79cd\u8bbe\u8ba1\u663e\u7740\u964d\u4f4e\u4e86\u7ef4\u62a4\u6210\u672c\uff0c\u56e0\u4e3a\u5bb9\u5668\u73b0\u5728\u662f\u4e00\u6b21\u6027\u7684\uff1b\u5f53\u9700\u8981\u66f4\u65b0\u67d0\u4e9b\u5185\u5bb9\u65f6\uff0c\u60a8\u53ea\u9700\u5220\u9664\u5bb9\u5668\u5e76\u4ece\u6700\u65b0\u955c\u50cf\u91cd\u65b0\u521b\u5efa\u5b83\u5373\u53ef\u3002\u60a8\u4e5f\u4e0d\u518d\u9700\u8981\u5728\u5bb9\u5668\u5185\u5b89\u88c5 sshd \u548c\u5176\u4ed6\u5b9e\u7528\u7a0b\u5e8f\uff0c\u56e0\u4e3a\u60a8\u6c38\u8fdc\u4e0d\u9700\u8981\u5bf9\u5176\u8fdb\u884c shell \u8bbf\u95ee\u3002\u8fd9\u4e5f\u7b80\u5316\u4e86\u591a\u4e3b\u673a\u96c6\u7fa4\u7684\u8d1f\u8f7d\u5e73\u8861\u548c\u5bb9\u9519\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995663\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<hr>\n<h3>2. \u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u5185\u90e8\u7ed3\u6784<\/h3>\n<p>\u672c\u8282\u5047\u8bbe\u4f7f\u7528 Docker v24 \u53ca\u5176\u9ed8\u8ba4\u914d\u7f6e\uff0c\u4f46\u5927\u591a\u6570\u90e8\u5206\u4e5f\u9002\u7528\u4e8e\u975e Docker \u5bb9\u5668\u3002<\/p>\n<h4>Docker \u5e95\u5c42<\/h4>\n<p>Docker \u7531\u5ba2\u6237\u7aef\u7a0b\u5e8f\uff08<code>docker<\/code> CLI\uff09\u548c\u5b88\u62a4\u8fdb\u7a0b\uff08<code>dockerd<\/code>\uff09\u7ec4\u6210\u3002<code>docker<\/code> CLI \u901a\u8fc7 Unix \u5957\u63a5\u5b57 (<code>\/var\/run\/docker.sock<\/code>) \u8fde\u63a5\u5230 <code>dockerd<\/code> \u5b88\u62a4\u8fdb\u7a0b\u6765\u521b\u5efa\u5bb9\u5668\u3002<\/p>\n<p>\u7136\u800c\uff0c<code>dockerd<\/code> \u5b88\u62a4\u8fdb\u7a0b\u672c\u8eab\u5e76\u4e0d\u521b\u5efa\u5bb9\u5668\uff0c\u5b83\u5c06\u63a7\u5236\u6743\u59d4\u6258\u7ed9 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=pD8ZKtsyLlr5Zk%2F8Gz%2F25w%3D%3D.UcBOcKvwyALiAVQzdysdYF8n4GMmbq9GfNt1yO90XNA%3D\" rel=\"noopener noreferrer\"><code>containerd<\/code><\/a> \u5b88\u62a4\u8fdb\u7a0b\u6765\u521b\u5efa\u5bb9\u5668\u3002\u4f46 <code>containerd<\/code> \u4e5f\u4e0d\u521b\u5efa\u5bb9\u5668\uff0c\u800c\u662f\u8fdb\u4e00\u6b65\u5c06\u63a7\u5236\u6743\u59d4\u6258\u7ed9 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=fVjlaq%2BYOLqTa%2FDZETwczg%3D%3D.C2KOyFBJj2Fv0%2FPubc9%2FUKuoQYDSPqeLoK2vfmMmprhPTIiVsiCPSMP2o4jPoh33\" rel=\"noopener noreferrer\"><code>runc<\/code><\/a> \u8fd0\u884c\u65f6\uff0c\u5b83\u5305\u542b\u4e86\u591a\u4e2a Linux \u5185\u6838\u529f\u80fd\uff0c\u4f8b\u5982 Namespaces\u3001Cgroups \u548c Capabilities\uff0c\u4ee5\u5b9e\u73b0\u201c<em>\u5bb9\u5668<\/em>\u201d\u7684\u6982\u5ff5\u3002Linux \u5185\u6838\u4e2d\u5e76\u6ca1\u6709\u201c<em>\u5bb9\u5668<\/em>\u201d\u5bf9\u8c61\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995664\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<h4>Namespace \u547d\u540d\u7a7a\u95f4<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=g4PcEm16dKzlNd%2BpGUAotQ%3D%3D.LfbTBpn6oovUzKz8ih5TSLCSlZlnGP2M74yZ0cHpFzt8dKxmNVbmZW7RPHrP1Y9NecIEAji8lhQmiq0qeTCOMg%3D%3D\" rel=\"noopener noreferrer\">Namespace \u547d\u540d\u7a7a\u95f4<\/a> \u5c06\u8d44\u6e90\u4e0e\u4e3b\u673a\u548c\u5176\u4ed6\u5bb9\u5668\u9694\u79bb\u3002<\/p>\n<p>\u6700\u77e5\u540d\u7684\u547d\u540d\u7a7a\u95f4\u662f <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=2zH0dmV2r454EQtnyT7eUQ%3D%3D.DJbLo%2BTtRbta99OzZXiRPe2sDISFot8n%2FDTpHXIkRDaJrAyBHVRSu1bYnSCfutu%2BNmr%2F0qM2XEKjAIbmjANREQ%3D%3D\" rel=\"noopener noreferrer\">mount namespace<\/a>\u3002Mount \u547d\u540d\u7a7a\u95f4\u9694\u79bb\u6587\u4ef6\u7cfb\u7edf\u89c6\u56fe\uff0c\u4ee5\u4fbf\u5bb9\u5668\u53ef\u4ee5\u4f7f\u7528 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=hgmfDi%2FgGcek4ahBaxIQOg%3D%3D.RFlCaBQ%2B2FSKSljg%2FbWwYiari%2BRyUcmOO8e4ERa5Cz7RlRQNDnq9z7UvqfFVw20DoX8fDh0QQcmBgKuyp5jTcw%3D%3D\" rel=\"noopener noreferrer\"><code>pivot_root(2)<\/code><\/a> \u7cfb\u7edf\u8c03\u7528\u5c06 rootfs \u66f4\u6539\u4e3a <code>\/var\/lib\/docker\/...\/&lt;container's rootfs&gt;<\/code>\u3002\u8be5\u7cfb\u7edf\u8c03\u7528\u7c7b\u4f3c\u4e8e\u4f20\u7edf\u7684 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=cEviNqd2dH1jsKHDroU%2B%2FA%3D%3D.hDSWqBv1sgM6l73uxnitI%2BkdMk9LzFrJbVHOtASQ8D5DHUfSqKXNdJS5kNYJ8ddybFHf2hgheoVaV%2F9nI24H4A%3D%3D\" rel=\"noopener noreferrer\"><code>chroot(2)<\/code><\/a> \u4f46 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=540iLjLcvMnWEa3MazEQgw%3D%3D.o%2BnzWTrkcyQMBoW2kzz2JmHoJ5pYdYTbmBIwlyV35Vv9ZWFZmCgRaM4RHNVrv9hg1B1%2BiaeJErVWAnyFBX9yNg%3D%3D\" rel=\"noopener noreferrer\">\u66f4\u5b89\u5168<\/a>\u3002<\/p>\n<p>\u5bb9\u5668\u7684 rootfs \u4e0e\u4e3b\u673a\u7684\u7ed3\u6784\u975e\u5e38\u76f8\u4f3c\uff0c\u4f46\u5b83\u5bf9 <code>\/proc<\/code>\u3001<code>\/sys<\/code> \u548c <code>\/dev<\/code> \u6709\u4e00\u4e9b\u9650\u5236\u3002\u4f8b\u5982\uff0c<\/p>\n<ul>\n<li><code>\/proc\/sys<\/code> \u76ee\u5f55\u88ab\u91cd\u65b0\u6302\u8f7d\u4e3a\u53ea\u8bfb\u7ed1\u5b9a\u4ee5\u7981\u6b62 sysctl\u3002<\/li>\n<li>\u901a\u8fc7\u6302\u8f7d <code>\/dev\/null<\/code> \u6765\u5c4f\u853d  <code>\/proc\/kcore<\/code> \u6587\u4ef6\uff08RAM\uff09\u3002<\/li>\n<li>\u901a\u8fc7\u6302\u8f7d\u7a7a\u7684\u53ea\u8bfb tmpfs \u6765\u5c4f\u853d <code>\/sys\/firmware<\/code> \u76ee\u5f55\uff08\u56fa\u4ef6\u6570\u636e\uff09\u3002<\/li>\n<li>\u5bf9 <code>\/dev<\/code> \u76ee\u5f55\u7684\u8bbf\u95ee\u53d7\u5230 Cgroup \u7684\u9650\u5236\uff08\u7a0d\u540e\u8ba8\u8bba\uff09\u3002<\/li>\n<\/ul>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995665\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=0QgckeRhLW6ZxY8d%2BP0ZRg%3D%3D.g8kqG1XjJiJb3chfucGyMc%2B9DKQo8B26edjzaoJbBsdokzgrj2WBeNmZ2YZZlU4VmZ3lvgDTB46j1fxSbCAVFA%3D%3D\" rel=\"noopener noreferrer\">Network namespace<\/a> \u5141\u8bb8\u4e3a\u5bb9\u5668\u5206\u914d\u4e13\u7528 IP \u5730\u5740\uff0c\u4ee5\u4fbf\u5b83\u4eec\u53ef\u4ee5\u901a\u8fc7 IP \u76f8\u4e92\u901a\u4fe1\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995666\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=KkQhGEqbB3T5K2Vlddt9Zw%3D%3D.S%2BUmUqO%2FRDzXfrbTMIV2Ic4oguUUisRNTTtqXtgjBULbzouNhWe7ANIcqN8YCVKVwC9HdGELlw4EHTI%2FUiR2uA%3D%3D\" rel=\"noopener noreferrer\">PID namespace<\/a> \u9694\u79bb\u8fdb\u7a0b\u6811\uff0c\u4ee5\u4fbf\u5bb9\u5668\u65e0\u6cd5\u63a7\u5236\u5176\u5916\u90e8\u7684\u8fdb\u7a0b\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995667\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=PxgmNUrMw48cBti1%2B61pWA%3D%3D.Wij8PBdflFR12vguT7RiIQFduAJWxkJMAMwWKUg3BGbjQC585LxxlPzCKhFI5xKpTjvns0r8qCTpfVzONZXA7g%3D%3D\" rel=\"noopener noreferrer\">User namespace<\/a>\uff08\u4e0d\u8981\u4e0e<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=rNskAFXTJqtDUfazIB%2BhDQ%3D%3D.R0CQO7z3vlag2ghbEgCFavGTRobigkFC8C9egGqrEqYZiDd2mHODg%2BzOICvb2wG%2B%2FzieAz1hOXoVWJiCyWDFRg%3D%3D\" rel=\"noopener noreferrer\">\u7528\u6237\u7a7a\u95f4<\/a> \u6df7\u6dc6\uff09\u901a\u8fc7\u5c06\u4e3b\u673a\u4e0a\u7684\u975e root \u7528\u6237\u6620\u5c04\u5230\u5bb9\u5668\u4e2d\u7684\u4f2a root \u6765\u9694\u79bb root \u6743\u9650\u3002\u4f2a root \u53ef\u4ee5\u50cf\u5bb9\u5668\u4e2d\u7684root \u4e00\u6837\u8fd0\u884c <code>apt-get<\/code>\u3001<code>dnf<\/code> \u7b49\uff0c\u4f46\u5b83\u6ca1\u6709\u5bf9\u5bb9\u5668\u5916\u90e8\u8d44\u6e90\u7684\u7279\u6743\u8bbf\u95ee\u3002<\/p>\n<p>\u7528\u6237\u547d\u540d\u7a7a\u95f4\u663e\u7740\u51cf\u8f7b\u4e86\u6f5c\u5728\u7684\u5bb9\u5668\u7a81\u7834\u653b\u51fb\uff0c\u4f46 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=TjPScfjucY1SIx%2FDLrUpTw%3D%3D.8xrEOGgMgzBWCgjhG1DbSNYTrSeP95oulg75Jekh9Uyvfh6LyWLzQB0uztfEpzouxD3jh38V3pyZ%2BylWR8fAew%3D%3D\" rel=\"noopener noreferrer\">Docker \u4e2d\u9ed8\u8ba4\u4e0d\u4f7f\u7528\u5b83<\/a>\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995668\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p>\u5176\u4ed6\u547d\u540d\u7a7a\u95f4\uff1a<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Gv3Uze8DzezwBMx1ZMO7yw%3D%3D.MpyjHSezx%2F%2BBRFBaPE1YGUlk8F7vQMa71KyXlvdL6r5bQUAf58FX%2BTx8e9v8tHAmsoyb%2F52Dk5hZ%2BficMWVW3A%3D%3D\" rel=\"noopener noreferrer\"><strong>IPC\u547d\u540d\u7a7a\u95f4<\/strong><\/a>\uff1a\u9694\u79bb System V \u8fdb\u7a0b\u95f4\u901a\u4fe1\u5bf9\u8c61\u7b49\u3002<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=YYyajL5JdOv8gOWBp2YkbQ%3D%3D.r%2BkpupWyC0Xc7hEODPbBBhV5zVfbEje99eTYydcIYjchqAIrAN5iXH5foY%2F2jh4WqF72jndABwUmAwO8OBCs9w%3D%3D\" rel=\"noopener noreferrer\"><strong>UTS \u547d\u540d\u7a7a\u95f4<\/strong><\/a>\uff1a\u9694\u79bb\u4e3b\u673a\u540d\u3002&#8221;UTS&#8221;\uff08Unix Time Sharing system\uff09\u4f3c\u4e4e\u5bf9\u8fd9\u4e2a\u547d\u540d\u7a7a\u95f4\u6765\u8bf4\u662f\u4e2a\u7528\u8bcd\u4e0d\u5f53\u7684\u79f0\u547c\u3002<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=2Ae08lcSIrDlX%2FNqeJFo%2Fw%3D%3D.qJxcW3U2W1OFiRakJz%2BPyt%2FCpRiFl9eTub1As1hDzlFvIyfZ8eUPS84rrDHRarVz7TOVBqSq%2B6JrfCGOX9W9yA%3D%3D\" rel=\"noopener noreferrer\"><strong>\uff08\u53ef\u9009\uff09Cgroup \u547d\u540d\u7a7a\u95f4<\/strong><\/a>\uff1a\u9694\u79bb <code>\/sys\/fs\/cgroup<\/code> \u5c42\u6b21\u7ed3\u6784\u3002<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=zKEzzxVm8zqpirj67MKdJg%3D%3D.AFdtHwdAsRsU%2BaKyWooqqQHkKP7NIgHRXQzvAzfV3%2B7JpIyxSlXlHotw14NTB4OkW9xsHV985eS7v6pCnAqmwg%3D%3D\" rel=\"noopener noreferrer\"><strong>\uff08\u53ef\u9009\uff09Time \u547d\u540d\u7a7a\u95f4<\/strong><\/a>\uff1a\u9694\u79bb\u65f6\u949f\u3002<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=RZTfHL4pf7XMaXmR6BpC9w%3D%3D.pqkuaoTbKduY6PFT3iFLsVplayi6u0YKIpkPZDpqjLqYVM2gJ6XvhyWTpurYNQKlOL9HoB%2F4KxYDVJj%2FBd7zCg%3D%3D\" rel=\"noopener noreferrer\">\u5927\u591a\u6570\u5bb9\u5668\u5c1a\u672a\u4f7f\u7528<\/a>\u3002<\/li>\n<\/ul>\n<h4>Cgroups<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Ot5VG3lnBaUZRIy3K2bmhw%3D%3D.p8183N8%2Bnz78NPylW5%2B8xly8UgqB57cv4dTJm1IR3bEEylP8Seu8Ucv0jw%2FexEYBiM%2FTW0gQsrROwwusFLNmcQ%3D%3D\" rel=\"noopener noreferrer\">Cgroups<\/a>\uff08\u63a7\u5236\u7ec4\uff09\u65bd\u52a0\u591a\u79cd\u8d44\u6e90\u914d\u989d\uff0c\u4f8b\u5982 CPU \u4f7f\u7528\u7387\u3001\u5185\u5b58\u4f7f\u7528\u7387\u3001block I\/O \u4ee5\u53ca\u5bb9\u5668\u4e2d\u7684\u8fdb\u7a0b\u6570\u91cf\u3002<\/p>\n<p>Cgroup \u8fd8\u63a7\u5236\u5bf9\u8bbe\u5907\u8282\u70b9\u7684\u8bbf\u95ee\u3002<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=AeyO8yHsEc%2B7kIpjQogwow%3D%3D.0Q1qwRSEydF521CSNQxAIOLsuW8biOe7twXSIQxRapHh2IaCsm8pItR38BcpyeSnROOVOSCZTYfCNP43dX4a2zEnHuMkfU4YNwbepgixfbQczvBJ75DQ0BZ6yiWAzie1\" rel=\"noopener noreferrer\">Docker\u9ed8\u8ba4\u914d\u7f6e<\/a> \u5141\u8bb8\u65e0\u9650\u5236\u8bbf\u95ee <code>\/dev\/null<\/code>\u3001<code>\/dev\/zero<\/code>\u3001<code>\/dev\/urandom<\/code> \u7b49\uff0c\u4e0d\u5141\u8bb8\u8bbf\u95ee <code>\/dev\/sda<\/code>\uff08\u78c1\u76d8\u8bbe\u5907\uff09\u3001<code>\/dev\/mem<\/code>\uff08\u5185\u5b58\uff09\u7b49\u3002<\/p>\n<h4>Capabilities<\/h4>\n<p>\u5728 Linux \u4e0a\uff0croot \u6743\u9650\u7531 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=xhPR7dwlYSVp%2FywW4X5xLA%3D%3D.%2FRWP0Nn4wju2HoLps%2F8EWmU%2FRC6OUqmCv%2FPMBhI5FOutiN8R8hRSWGTDHy1Z7Ezlwlem29PxnM%2FmSP32TWdDvg%3D%3D\" rel=\"noopener noreferrer\">64-bit capability<\/a> \u6807\u8bb0\u3002\u76ee\u524d\u4f7f\u7528\u4e86 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=uUNK11tdVYHueeYkvD5aJA%3D%3D.11Vcav6euyZR3bFAfNRRhaX%2Frjtgmb5PeO8XAlmLlHt8mjc%2Fvm1BUb2c70VwUnttv2yrxJOBAzNr%2BeawWmMmPv7rWzpIbXAKS%2BaznYC4gRbmQeDKEv28%2F9v%2FFkPgz3y0\" rel=\"noopener noreferrer\">41 \u4f4d<\/a>\u3002<\/p>\n<p>Docker \u7684\u9ed8\u8ba4\u914d\u7f6e\u5220\u9664\u4e86\u7cfb\u7edf\u8303\u56f4\u7684\u7ba1\u7406\u529f\u80fd\uff0c\u4f8b\u5982 <code>CAP_SYS_ADMIN<\/code>\u3002<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=M1kSFoeA1bJyxejrOPqeMw%3D%3D.qBdYMUPWsVq1nDMlyCDFAJ1FpwVzMtXghHnc5Piwi2JMyfb0y4GVwu2Tggz20tzu9MjJG88ucKtDcv2fKEPqFA%3D%3D\" rel=\"noopener noreferrer\">\u4fdd\u7559\u7684\u80fd\u529b<\/a>\u5305\u62ec\uff1a<\/p>\n<ul>\n<li><code>CAP_CHOWN<\/code>\uff1a\u7528\u4e8e\u5728\u5bb9\u5668\u5185\u8fd0\u884c <code>chown<\/code>\u3002<\/li>\n<li><code>CAP_NET_BIND_SERVICE<\/code>\uff1a\u7528\u4e8e\u7ed1\u5b9a\u5bb9\u5668\u5185 1024 \u4ee5\u4e0b\u7684 TCP \u548c UDP \u7aef\u53e3\u3002<\/li>\n<li><code>CAP_NET_RAW<\/code>\uff1a\u7528\u4e8e\u8fd0\u884c\u9700\u8981\u5236\u4f5c\u539f\u59cb\u4ee5\u592a\u7f51\u6570\u636e\u5305\u7684<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=%2BbU%2FJurCXVWO5miQJnPtjQ%3D%3D.iYdOvexrPI1eDSkGK5h7Q2ARvHrCgL%2FRCTwKmRnm4UYTPYtbQ8Gp0bSyEp0Fs5G%2BveEcNm07g0HY431zV2bfj7S9ziAG%2B%2FdjhNAb4jkCwzk%3D\" rel=\"noopener noreferrer\">\u65e7\u7248 <code>ping<\/code> \u5b9e\u73b0<\/a>\u3002\u8fd9\u79cd\u529f\u80fd\u975e\u5e38\u5371\u9669\uff0c\u56e0\u4e3a\u5b83\u5141\u8bb8\u5728\u5bb9\u5668\u7f51\u7edc\u4e2d\u8fdb\u884c<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Pu3GJGn4azt%2FilYEtzk2iw%3D%3D.I0NbR43jwmGm2A6bpTv5v5xbg3d7ZOLZ0z83vBQhViOV9v2uGowdF1JKFNSKHzXEGZNAGFbLs3eEjezZG8l8Kw%3D%3D\" rel=\"noopener noreferrer\">ARP \u6b3a\u9a97\u548c DNS \u6b3a\u9a97<\/a>\u3002Docker \u7684\u672a\u6765\u7248\u672c\u53ef\u80fd\u4f1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=E865wr5S4ZxQsl9pgrSmNQ%3D%3D.i0xI2J4WxzbSiUpopAfw1aF1Cci%2Fvd04ZSfRbzFc9EYsrQeYLvNBzMJhlvWIvQnl\" rel=\"noopener noreferrer\">\u9ed8\u8ba4\u7981\u7528\u5b83<\/a>\u3002<\/li>\n<\/ul>\n<h4>\uff08\u53ef\u9009\uff09Seccomp<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=h2KAwTR%2B44EBII9dMXtefg%3D%3D.oZz45JBGb%2BB4hR0ORuMAi%2FB9854qAd3rVS%2BNmVJW648rH1YQljq5Vp5EQb0KRcYvuJgl%2Feec%2FYv9Kiv1kqwh2Q%3D%3D\" rel=\"noopener noreferrer\">Seccomp<\/a>\uff08\u5b89\u5168\u8ba1\u7b97\uff09\u5141\u8bb8\u6307\u5b9a\u7cfb\u7edf\u8c03\u7528\u7684\u663e\u5f0f\u5141\u8bb8\u5217\u8868\uff08\u6216\u62d2\u7edd\u5217\u8868\uff09\u3002Docker \u7684\u9ed8\u8ba4\u914d\u7f6e\u5141\u8bb8\u5927\u7ea6 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=4UrraDralWshHjRvnLXCfQ%3D%3D.X1y1Ib1FSJw%2BvzxCIiUfleMZsiX%2BGdMo%2Bg9q3r5%2FmhvL%2BlhFdlnEL21esN%2BGSnxZUmRhjWURakKTzrKH3ih9LxZrNyAjTp%2BqM6xzvG9kGFw%3D\" rel=\"noopener noreferrer\">350 \u4e2a\u7cfb\u7edf\u8c03\u7528<\/a>\u3002<\/p>\n<p>Seccomp \u7528\u4e8e<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=mh1MvSTnpCE%2Bp3HBoGqKDw%3D%3D.l0RAZKuukIVDfXOUXbaAz2TQ3LhhQHTB46K0eMd3L3Q10iY0nZVubeckmyepk8WEHw%2FKeyamNIawLSd9j%2FGYpw%3D%3D\" rel=\"noopener noreferrer\"><em>\u7eb5\u6df1\u9632\u5fa1<\/em><\/a>)\uff1b\u5bf9\u4e8e\u5bb9\u5668\u6765\u8bf4\u8fd9\u5e76\u4e0d\u662f\u786c\u6027\u8981\u6c42\u3002\u4e3a\u4e86\u5411\u540e\u517c\u5bb9\uff0cKubernetes \u4ecd\u7136\u9ed8\u8ba4\u4e0d\u4f7f\u7528 seccomp\uff0c\u5e76\u4e14<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=gHcjJuUY0Ia6yhX2X1UVJw%3D%3D.hH1%2FiuqYN%2FUhIeI%2FjdC62iWAb8u3aG6v%2F%2BVUWqmbKlKRmHDU1gXZMcMGT5ZE9LxUDnjlbGnNmIHdl3HpARLBs6MbYaZpNndtHlixlL%2BlkB0%3D\" rel=\"noopener noreferrer\">\u5728\u53ef\u9884\u89c1\u7684\u5c06\u6765\u53ef\u80fd\u6c38\u8fdc\u4e0d\u4f1a\u6539\u53d8\u9ed8\u8ba4\u914d\u7f6e<\/a>\u3002\u7528\u6237\u4ecd\u7136\u53ef\u4ee5\u901a\u8fc7 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=4Scpw4SCK%2B%2FdhPUFOKuJGw%3D%3D.78TEe4CP33WqsTouI04xy6I0l0aYUKlXVovgqOfXFh28WhbHdqxcntCBkmkARXd%2FeDB2i1jmlmGgcnV8VtcYOUa5P%2FmbX%2Buug0AG%2BDOxr1vXFZ6MQIkCFJNlnA8VqXw1ZCLUk4reefT8e1RqA7TERhPuZVx%2FXBXJuwshnS2qGe0%3D\" rel=\"noopener noreferrer\">KubeletConfiguration<\/a> \u9009\u62e9\u542f\u7528 seccomp \u3002<\/p>\n<h4>\uff08\u53ef\u9009\uff09AppArmor \u6216 SELinux<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=wQMbcWV%2BzzTldSmMvrewcA%3D%3D.gqWjngy2K3OhUmvw6ZlgYLemxiJEM0d7iN344WKyboQ%3D\" rel=\"noopener noreferrer\">AppArmor<\/a> \u548c <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=6Ali38m8nTxrqtdUAYlqtg%3D%3D.pZu5WYID12Tb1TgcPUgy4U0SCn7ZMruFiD1q3bUBpyLblBzyrHv4ZngjYhZ6Bg33\" rel=\"noopener noreferrer\">SELinux<\/a>\uff08\u5b89\u5168\u589e\u5f3a\u578b Linux\uff09\u662f <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=M9O%2FInb8LxgWFLzz4wWdvQ%3D%3D.UO4OYUCbSVByiFd2j84gINR9CwC5AEah1uGQWJkG6VZ%2FQwPKxbb5ZXPy9jrZUyQyQjbLxEwNDJXB%2Bk2Az3pSXg%3D%3D\" rel=\"noopener noreferrer\">LSM<\/a>\uff08Linux \u5b89\u5168\u6a21\u5757\uff09\uff0c\u53ef\u63d0\u4f9b\u66f4\u7ec6\u7c92\u5ea6\u7684\u914d\u7f6e\u65cb\u94ae\u3002<\/p>\n<p>\u8fd9\u4e9b\u662f\u76f8\u4e92\u6392\u65a5\u7684\uff1b\u7531\u4e3b\u673a\u64cd\u4f5c\u7cfb\u7edf\u53d1\u884c\u5546\uff08\u800c\u4e0d\u662f\u5bb9\u5668\u955c\u50cf\u53d1\u884c\u5546\uff09\u9009\u62e9\uff1a<\/p>\n<ul>\n<li><strong>AppArmor<\/strong>\uff1aDebian\u3001Ubuntu\u3001SUSE \u7b49\u9009\u62e9\u7684\u3002<\/li>\n<li><strong>SELinux<\/strong>\uff1a\u7531 Fedora\u3001Red Hat Enterprise Linux \u548c\u7c7b\u4f3c\u7684\u4e3b\u673a\u64cd\u4f5c\u7cfb\u7edf\u53d1\u884c\u7248\u9009\u62e9\u3002<\/li>\n<\/ul>\n<p>\u4e3a\u4e86\u8fdb\u884c\u7eb5\u6df1\u9632\u5fa1\uff0cDocker \u7684 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=WBVuiKzG0NifMfcnjBcCdw%3D%3D.l1I%2F%2BwOfWm4XXIzgcpkhH2rOInFzJnVE%2F%2Foxa9brtnm3GixgU3eK0NWuILn8ALYg1CLQFMvqZ8W%2FUJVSRtWHWXQnkvKLozMCuKtjBQNbB%2BQ%3D\" rel=\"noopener noreferrer\">\u9ed8\u8ba4 AppArmor \u914d\u7f6e\u6587\u4ef6<\/a> \u51e0\u4e4e\u4e0e\u5176\u529f\u80fd\u3001\u6302\u8f7d\u63a9\u7801\u7b49\u9ed8\u8ba4\u914d\u7f6e\u91cd\u53e0\u3002\u7528\u6237\u53ef\u4ee5\u6dfb\u52a0\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u4ee5\u63d0\u9ad8\u5b89\u5168\u6027\u3002<\/p>\n<p>\u4f46 SELinux \u7684\u60c5\u51b5\u5219\u4e0d\u540c\u3002\u8981\u5728 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=56lW9Cpj9GxJdGPGgwOkQQ%3D%3D.4mUyK6CykLdoDPALpOMoDTuD%2FMfOJcyjJ6MbziDNQ%2FfpyXKKEQxk5s8HZtxN4YsIQVZWoQD3tIhmoTtgWcSNXg%3D%3D\" rel=\"noopener noreferrer\">selinux-enabled<\/a> \u6a21\u5f0f\u4e0b\u8fd0\u884c\u5bb9\u5668\uff0c\u60a8\u5fc5\u987b\u5728\u7ed1\u5b9a\u6302\u8f7d\u4e0a\u9644\u52a0\u9009\u9879 <code>:z<\/code>\uff08\u5c0f\u5199\u5b57\u7b26\uff09\u6216 <code>:Z<\/code>\uff08\u5927\u5199\u5b57\u7b26\uff09\uff0c\u6216\u8005\u81ea\u5df1\u8fd0\u884c\u590d\u6742\u7684 <code>chcon<\/code> \u547d\u4ee4\u907f\u514d\u6743\u9650\u9519\u8bef\u3002<\/p>\n<p><code>:z<\/code>\uff08\u5c0f\u5199\u5b57\u7b26\uff09\u9009\u9879\u7528\u4e8e\u7c7b\u578b\u5f3a\u5236\u3002\u7c7b\u578b\u5f3a\u5236\u901a\u8fc7\u4e3a\u8fdb\u7a0b\u548c\u6587\u4ef6\u5206\u914d\u201c\u7c7b\u578b\u201d\u6765\u4fdd\u62a4\u4e3b\u673a\u6587\u4ef6\u514d\u53d7\u5bb9\u5668\u7684\u5f71\u54cd\u3002\u4ee5 <code>container_t<\/code> \u7c7b\u578b\u8fd0\u884c\u7684\u8fdb\u7a0b\u53ef\u4ee5\u8bfb\u53d6 <code>container_share_t<\/code> \u7c7b\u578b\u7684\u6587\u4ef6\uff0c\u5e76\u8bfb\/\u5199 <code>container_file_t<\/code> \u7c7b\u578b\u7684\u6587\u4ef6\uff0c\u4f46\u65e0\u6cd5\u8bbf\u95ee\u5176\u4ed6\u7c7b\u578b\u7684\u6587\u4ef6\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995669\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p><code>:Z<\/code>\uff08\u5927\u5199\u5b57\u7b26\uff09\u9009\u9879\u7528\u4e8e\u591a\u7c7b\u522b\u5b89\u5168\u6027\u3002\u591a\u7c7b\u522b\u5b89\u5168\u6027\u901a\u8fc7\u4e3a\u8fdb\u7a0b\u548c\u6587\u4ef6\u5206\u914d\u7c7b\u522b\u53f7\u6765\u4fdd\u62a4\u4e00\u4e2a\u5bb9\u5668\u514d\u53d7\u53e6\u4e00\u4e2a\u5bb9\u5668\u7684\u5f71\u54cd\u3002\u4f8b\u5982\uff0c\u7c7b\u522b 42 \u7684\u8fdb\u7a0b\u65e0\u6cd5\u8bbf\u95ee\u6807\u8bb0\u4e3a\u7c7b\u522b 43 \u7684\u6587\u4ef6\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995670\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<h4>\u9002\u7528\u4e8e Mac\/Win \u7684 Docker<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=90ojTfXzN8ACOQR4Q1xWBQ%3D%3D.2qc2GHnLKaB2AYLdrAAsSCj4Aw5IR7Zo8tZvk03vvsrJGaedgi5YVyZZPYLLkk0G\" rel=\"noopener noreferrer\">Docker Desktop<\/a> \u4ea7\u54c1\u652f\u6301\u5728 Mac \u548c Windows \u4e0a\u8fd0\u884c Linux \u5bb9\u5668\uff0c\u4f46\u5b83\u4eec\u53ea\u662f\u5728\u5e95\u5c42\u8fd0\u884c Linux \u865a\u62df\u673a\u6765\u5728\u5176\u4e0a\u8fd0\u884c\u5bb9\u5668\u3002\u8fd9\u4e9b\u5bb9\u5668\u4e0d\u76f4\u63a5\u5728 macOS \u548c Windows \u4e0a\u8fd0\u884c\u3002<\/p>\n<hr>\n<h3>3.\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u6700\u65b0\u8d8b\u52bf<\/h3>\n<h4>Docker \u7684\u66ff\u4ee3\u54c1\uff08\u4f5c\u4e3a Kubernetes \u8fd0\u884c\u65f6\uff09<\/h4>\n<p>Kubernetes \u7684\u7b2c\u4e00\u4e2a\u7248\u672c\uff082014 \u5e74\uff09\u662f\u4e13\u95e8\u4e3a Docker \u5236\u4f5c\u7684\u3002Kubernetes <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=L078A0ydBRMa39Pfad8Ceg%3D%3D.7NdTenWr7mpepR0kbWT%2BCuyASUNE5bv2HRPA7NDuu5z8xVhT1CkQfmc6uaFtMDPJteMwMWfaihzmZoslZn0gluCFgKodXWiYxS%2B9VCN%2BxFB4cBpBZgvlCaUDAIY8OoCf4JaLkes8%2BbXYT5zvbU0M3Q%3D%3D\" rel=\"noopener noreferrer\">v1.3<\/a> (2016) \u6dfb\u52a0\u4e86\u5bf9\u540d\u4e3a <code>rkt<\/code> \u7684\u66ff\u4ee3\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u4e34\u65f6\u652f\u6301\uff0c\u4f46 <code>rkt<\/code> \u5df2\u4e8e<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=DnbiV9CMu5rHdOaJYpRcnA%3D%3D.9zN4Tsz%2B7ZzepMdIvwlv%2FY7in4%2FXLzom%2BxFaAYhAVcMXWKkyT36GpWMoYEuTKUuji4fJ42VipLaiy7YvAs1mbdPZvH1mb62VHyex62TGxLY%3D\" rel=\"noopener noreferrer\">2019 \u5e74<\/a>\u9000\u5f79\u3002\u652f\u6301\u66ff\u4ee3\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u52aa\u529b\u5728 Kubernetes <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=J4zNfNIyB2TNXN1Gg3MHZg%3D%3D.B%2Fj5uxbm3aQcRgCNTvWGZi99BrXXAA6G3j59dpdpsHBWZflyMMt35E76%2BvCS1%2FDWaCxmnioOSPCME%2FIfBWVAv%2FDMieoj%2BrkX4bzZUTuRWscBfaW9Y%2Frbo9WEtXezeyOm\" rel=\"noopener noreferrer\">v1.5<\/a> (2016) \u4e2d\u4ea7\u751f\u4e86\u5bb9\u5668\u8fd0\u884c\u65f6\u63a5\u53e3 <code>CRI<\/code> API\u3002CRI \u9996\u6b21\u4eae\u76f8\u540e\uff0c\u4e1a\u754c\u5df2\u8d8b\u540c\u4e8e\u4f7f\u7528 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=FdiaNk1ZnRfbGreTNfg5uQ%3D%3D.p9DYKz2ZgoSoI8xYmt3S6BPqNqpHL1q1b1kF56czS9I%3D\" rel=\"noopener noreferrer\">containerd<\/a> \u548c <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=lKCooPbesLPdJYmegR3FWA%3D%3D.BZmb%2BmxBcZVak%2BiKPynhaykIku83NrquP4iXvHZB6yw%3D\" rel=\"noopener noreferrer\">CRI-O<\/a> \u8fd9\u4e24\u79cd\u8fd0\u884c\u65f6\u5176\u4e2d\u4e4b\u4e00\uff1a\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995671\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p>Kubernetes \u4ecd\u7136\u5185\u7f6e\u4e86\u5bf9 Docker \u7684\u652f\u6301\uff0c\u4f46\u6700\u7ec8\u5728 Kubernetes <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=DkER1Tqn4YH9whjQLvjsBA%3D%3D.Q%2FP62yuDRWebmebNtCv%2FOcuaAgyKBTepXS7nOra6Tv5A4SF%2FeKZBDZI3ijgjpkJ3ANRANmBNmGs1xTQD0DtNIjFCMhF7kgPzUzgsuI98wbA%3D\" rel=\"noopener noreferrer\">v1.24<\/a>\uff082022\u5e74\uff09\u4e2d\u88ab\u5220\u9664\u3002Docker \u4ecd\u7136\u7ee7\u7eed\u4f5c\u4e3a\u7b2c\u4e09\u65b9\u8fd0\u884c\u65f6\u4e3a Kubernetes \u5de5\u4f5c\uff08\u901a\u8fc7 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=bYHQWGiuNbGuKKnrMS1b%2Fw%3D%3D.dWFf4MZcg2ET1IGw%2FPE4zt6%2FS9jecscnhJn1ZF%2B4KTONXVfuC5K%2FHK8stDAY0RF4\" rel=\"noopener noreferrer\"><code>cri-dockerd<\/code><\/a> shim\uff09\uff0c\u4f46 Docker \u73b0\u5728\u5728 Kubernetes \u4e2d\u7684\u4f7f\u7528\u7387\u8d8a\u6765\u8d8a\u4f4e\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995672\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p>\u4e1a\u754c\u77e5\u540d\u5927\u5382\u5df2\u7ecf\u4ece Docker \u8f6c\u5411\u4e86 containerd \u6216\u8005 CRI-O\uff1a<\/p>\n<ul>\n<li><strong>containerd \u7684\u91c7\u7528\u8005<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=MoGdOiR25ZiIi%2BM819b42Q%3D%3D.Hb5Vgm3xXfDhXaxi%2FFyfTtoR7qfu4um7jW4z6H%2Bgl8tZk4cnKDySzUuxH%2FcirFs70OG8sxVCXa9CZ4cIMtJydz61Sm4FESmkDcgzCHinlnM%3D\" rel=\"noopener noreferrer\">Amazon Elastic Kubernetes Service (EKS)<\/a>\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=TNWG6D5QP160o3aSGbRZ9w%3D%3D.ntro0Uk2uwZFvBcyTtsHKQh%2F9XNd%2Fpy9LOMfG7tFz9zLCR7qZpuBNTnd3giXLNjtvwtkFkNkES48rnH%2F6gk4%2F62q9sj8YeKyDZnaGEfIYIGKOkgCFySKcltBlB6jd%2FeqneV4qpQXztUxZGc2ngwB9Q%3D%3D\" rel=\"noopener noreferrer\">Azure Kubernetes Service (AKS)<\/a>\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=L0uLFkEK7vvRGhcx4JFXEA%3D%3D.nXzRqwWgCoz1wg1aYDOvHzs4OmRnf0dAHEBqeC1Oi%2BsldgQSK59At2khK%2BF66epF5TBR48bLZVCdE2%2F4NVkqZo4pyBjQIJ51UP2CWg7m%2Fz0%3D\" rel=\"noopener noreferrer\">Google Kubernetes Engine (GKE)<\/a>\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Oj%2BIhN1xf9pFGnTcM1IUdg%3D%3D.8PYMgOouLPsbMFSfLVMkWBMoHU1to0njU2Itl1zfyg8raLb5tdt9NHQsKFhn9CuMfY%2Be9sDEzhtBxoDKhDK9OA%3D%3D\" rel=\"noopener noreferrer\">k3s<\/a> \u7b49\uff08\u5f88\u591a\uff09\u3002<\/li>\n<li><strong>CRI-O \u7684\u91c7\u7528\u8005<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Y%2Fejqug0CSUH9IVwY%2FTaMg%3D%3D.Dr9UVk9hdecPrKPfEeFmpXHMok1BloJXw43BJPns5zxSf%2F6ShOtbhHboFjz3Mrc7uoP4qDvXIBa17G0EFJzMGzvxc%2By0hBH4I4l3cF5ljUMm8q3Ci2p9JZcA3imC8jfSj75f82I5Yt8T11so2I4uoIcytkOBgUbakT%2BY2%2FUHSJg%3D\" rel=\"noopener noreferrer\">Red Hat OpenShift<\/a>\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=ebf63SdV7FdFYGM1VQB9Rg%3D%3D.2qo23uoHhcAYQxQG8%2BGiCuOf8PFtiTPNlmza5r8hPNsKRqiwXAnwItS1ZYOfJvIJLHaRRG%2BLFisJgf8sJJ%2Fb1dWbBLGQe%2FqDa6ViUZdBJAlv4o%2BJAUSqsr4y%2BizrQJtn\" rel=\"noopener noreferrer\">Oracle Container Engine for Kubernetes (OKE)<\/a> \u7b49\u3002<\/li>\n<\/ul>\n<p>Containerd \u6ce8\u91cd\u53ef\u6269\u5c55\u6027\uff0c\u652f\u6301\u975e Kubernetes \u5de5\u4f5c\u8d1f\u8f7d\u4ee5\u53ca Kubernetes \u5de5\u4f5c\u8d1f\u8f7d\u3002\u76f8\u6bd4\u4e4b\u4e0b\uff0cCRI-O \u6ce8\u91cd\u7b80\u5355\u6027\uff0c\u5e76\u4e14\u4ec5\u652f\u6301 Kubernetes\u3002<\/p>\n<h4>Docker \u7684\u66ff\u4ee3\u65b9\u6848\uff08\u4f5c\u4e3a CLI\uff09<\/h4>\n<p>\u5c3d\u7ba1 Kubernetes \u5df2\u6210\u4e3a\u591a\u8282\u70b9\u751f\u4ea7\u96c6\u7fa4\u7684\u6807\u51c6\uff0c\u4f46\u7528\u6237\u4ecd\u7136\u5e0c\u671b\u4f7f\u7528\u7c7b\u4f3c Docker \u7684 CLI \u5728\u7b14\u8bb0\u672c\u7535\u8111\u4e0a\u672c\u5730\u6784\u5efa\u548c\u6d4b\u8bd5\u5bb9\u5668\u3002Docker \u57fa\u672c\u4e0a\u6ee1\u8db3\u4e86\u8fd9\u4e2a\u9700\u6c42\uff0c\u4f46\u662f\u793e\u533a\u4e2d\u7684\u8fd0\u884c\u65f6\u5f00\u53d1\u4eba\u5458\u5e0c\u671b\u6784\u5efa\u81ea\u5df1\u7684\u201c\u5b9e\u9a8c\u5ba4\u201dCLI\uff0c\u4ee5\u5148\u4e8e Docker \u548c Kubernetes \u5b75\u5316\u65b0\u529f\u80fd\uff0c\u56e0\u4e3a\u901a\u5e38\u5f88\u96be\u5411 Docker \u548c Kubernetes \u63d0\u51fa\u65b0\u529f\u80fd\uff0c\u7531\u4e8e\u4e00\u4e9b\u6280\u672f\/\u6280\u672f\u56e0\u7d20\u539f\u56e0\u3002<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=vX8xE9jrjsWSwdFvqjj5OQ%3D%3D.prZVKS4bFPaakaF1VC8LkrxQp8OMx8PNGNRmvysvr94%3D\" rel=\"noopener noreferrer\">Podman<\/a>\uff08\u4ee5\u524d\u79f0\u4e3a kpod \uff09\u662f\u7531 Red Hat \u7b49\u516c\u53f8\u521b\u5efa\u7684\u517c\u5bb9 Docker \u7684\u72ec\u7acb\u5bb9\u5668\u5f15\u64ce\u3002\u5b83\u4e0e Docker \u7684\u4e3b\u8981\u533a\u522b\u5728\u4e8e\u5b83\u9ed8\u8ba4\u6ca1\u6709\u5b88\u62a4\u8fdb\u7a0b\u3002\u6b64\u5916\uff0cPodman \u7684\u72ec\u7279\u4e4b\u5904\u5728\u4e8e\u5b83\u4e3a\u7ba1\u7406 Pod\uff08\u5171\u4eab\u76f8\u540c\u7f51\u7edc\u547d\u540d\u7a7a\u95f4\u7684\u5bb9\u5668\u7ec4\uff0c\u901a\u5e38\u5171\u4eab\u540c\u4e00\u4e3b\u673a\u4e0a\u7684\u6570\u636e\u5377\u4ee5\u5b9e\u73b0\u9ad8\u6548\u901a\u4fe1\uff09\u4ee5\u53ca\u5bb9\u5668\u63d0\u4f9b\u4e00\u6d41\u7684\u652f\u6301\u3002\u7136\u800c\uff0c\u5927\u591a\u6570\u7528\u6237\u4f3c\u4e4e\u53ea\u5c06 Podman \u7528\u4e8e\u975e Pod \u5bb9\u5668\u3002<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=B3hchH5CBFnr5p1Mr2OI3w%3D%3D.6m8IW5IycCRp5uaC3QJRBnejDnsITGfQC4zrIU%2FP4qSywddvYdi8MkHecgrStZ%2Fi\" rel=\"noopener noreferrer\">nerdctl<\/a>\uff08\u6211\u4e8e 2020 \u5e74\u521b\u7acb\uff09\u662f\u4e00\u4e2a\u9002\u7528\u4e8e containerd \u7684\u517c\u5bb9 Docker \u7684 CLI\u3002nerdctl \u6700\u521d\u662f\u4e3a\u4e86\u8bd5\u9a8c\u65b0\u529f\u80fd\uff0c\u4f8b\u5982\u5ef6\u8fdf\u62c9\u53d6\uff08\u7a0d\u540e\u8ba8\u8bba\uff09\uff0c\u4f46\u5b83\u5bf9\u4e8e\u8c03\u8bd5\u8fd0\u884c containerd \u7684 Kubernetes \u8282\u70b9\u4e5f\u5f88\u6709\u7528\u3002<\/p>\n<h4>\u5728 Mac \u4e0a\u8fd0\u884c\u5bb9\u5668<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=nug%2BoTKGWXi47Xd1PDt2bg%3D%3D.T%2BWxHeMIBHfFG5eohHkqLH%2BZYAHvBzNzcEz%2BSFkaedbbX%2B3g5tKlP8Ff9hFLHC9Y\" rel=\"noopener noreferrer\">Docker Desktop<\/a> \u7684 Mac \u548c Windows \u4ea7\u54c1\u662f\u4e13\u6709\u7684\u3002Windows \u7528\u6237\u53ef\u4ee5\u5728 WSL2 \u4e2d\u8fd0\u884c Docker \u7684 Linux \u7248\u672c\uff08Apache License 2.0\uff0c\u65e0\u56fe\u5f62\u754c\u9762\uff09\uff0c\u4f46\u8fc4\u4eca\u4e3a\u6b62\uff0cMac \u7528\u6237\u8fd8\u6ca1\u6709\u76f8\u5e94\u7684\u89e3\u51b3\u65b9\u6848\u3002<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=gc63ofbQzmx6I9aliPCqKw%3D%3D.g%2F6CEvNp3YOBXwsnWX5ahoHKRiOWeyC17OVvtmA2gos%3D\" rel=\"noopener noreferrer\">Lima<\/a>\uff08\u4e5f\u662f\u6211\u4e8e 2021 \u5e74\u521b\u7acb\u7684\uff09\u662f\u4e00\u4e2a\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u7528\u4e8e\u5728 macOS \u4e0a\u521b\u5efa\u7c7b\u4f3c WSL2 \u7684\u73af\u5883\u6765\u8fd0\u884c\u5bb9\u5668\u3002Lima \u9ed8\u8ba4\u4f7f\u7528 nerdctl\uff0c\u4f46\u5b83\u4e5f\u652f\u6301 Docker \u548c Podman\u3002<\/p>\n<p>Lima \u8fd8\u88ab <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=J%2FcMy%2FLExz0rV2dXuL2pqw%3D%3D.FDj%2BPk1wQeUNZ79PHbfQgaJ8mrj6SehUkGANBYALbcf8e67nSc0n9RkrKVHqps8F\" rel=\"noopener noreferrer\">colima<\/a> (2021)\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=687EF20BKpzCIYVcXUCaMQ%3D%3D.MOP7gCMsg6sU1JKQQ5aMPFf8XB9DaVsA9MsWJaGCyf0%3D\" rel=\"noopener noreferrer\">Rancher Desktop<\/a> (2021) \u548c <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=J1Bc7p%2F1FARpFi8hODhAsw%3D%3D.enj5KpFx%2F%2BZqwrHwvPqC%2FkBg2x%2BENeK6S71CirRqKVxgIndrQIVXaTxykMJ18Hrq\" rel=\"noopener noreferrer\">Finch<\/a> (2022)\u7b49\u7b2c\u4e09\u65b9\u9879\u76ee\u91c7\u7528\u3002<\/p>\n<p>Podman \u793e\u533a\u53d1\u5e03\u4e86 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=vtqPaDFCLjQsydBjQtpzIA%3D%3D.qy3PMABKFFpcc1aSR%2BI4PNEpiMKNXjvvxmtvTtWunhRIr6Tg%2Bnvf3RjlrQ9sRCtj%2B0CfddWFHdqs6zJh%2FQ%2FKow%3D%3D\" rel=\"noopener noreferrer\">Podman Machine<\/a>\uff08\u547d\u4ee4\u884c\u5de5\u5177\uff0c2021 \u5e74\uff09\u548c <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=LLRjO3PPJLLj8hW%2Ba1yrnA%3D%3D.5qoQ4mGJ1cd%2FO1CxME6oEWX6zh%2FKSe77D76pnC3Slio%3D\" rel=\"noopener noreferrer\">Podman Desktop<\/a>\uff08GUI\uff0c2022 \u5e74\uff09\u4f5c\u4e3a Docker Desktop \u7684\u66ff\u4ee3\u54c1\u3002Podman Desktop \u4e5f\u652f\u6301 Lima\uff08\u53ef\u9009\uff09\u3002<\/p>\n<h4>Docker \u6b63\u5728\u91cd\u6784<\/h4>\n<p>containerd \u4e3b\u8981\u63d0\u4f9b\u4e24\u4e2a\u5b50\u7cfb\u7edf\uff1a\u8fd0\u884c\u65f6\u5b50\u7cfb\u7edf\u548c\u955c\u50cf\u5b50\u7cfb\u7edf\u3002\u7136\u800c\uff0c\u540e\u8005\u5e76\u672a\u88abDocker\u4f7f\u7528\u3002\u8fd9\u662f\u4e00\u4e2a\u95ee\u9898\uff0c\u56e0\u4e3a Docker \u81ea\u8eab\u7684\u4f20\u7edf\u955c\u50cf\u5b50\u7cfb\u7edf\u8fdc\u8fdc\u843d\u540e\u4e8e containerd \u7684\u73b0\u4ee3\u955c\u50cf\u5b50\u7cfb\u7edf\uff08\u8fd9\u4e5f\u5bfc\u81f4\u6211\u542f\u52a8\u4e86nerdctl\u9879\u76ee\uff09\uff1a<\/p>\n<ul>\n<li>\u4e0d\u652f\u6301 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=d2PpHRffGgH9Dny%2Bl9WF3w%3D%3D.FfT7kMz1jhVADOCLbWcMjhs9ie5W6i6T6rpU2AWfktDjBE7NQeiPHrFjuGwx9ijJ%2BiP14IKasUQTBbluLwnPVA%3D%3D\" rel=\"noopener noreferrer\">lazy-pulling \u60f0\u6027\u62c9\u53d6<\/a>\uff08\u6309\u9700\u955c\u50cf\u62c9\u53d6\uff09<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=6JSpa40VldZENaU%2BvzEFxg%3D%3D.yN2cyhZE3x0BvNhsfu9O5rV0Qge4l0F%2FL8%2F3uynnzzYqLeHfLd3X9zQhpYlVDwqc\" rel=\"noopener noreferrer\">\u5bf9\u591a\u5e73\u53f0\u955c\u50cf\u7684\u6709\u9650\u652f\u6301<\/a>\uff08\u4f8b\u5982 AMD64\/ARM64 \u53cc\u5e73\u53f0\u955c\u50cf\uff09<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=pwNBvVqLw5%2BYOWGkj7VVlQ%3D%3D.0x6phfIhAr7qVprADq4g7JEAv8PeUMLrnz3Nf5RB%2BZ7xFtV2gfyhHICRDVqSBUNK\" rel=\"noopener noreferrer\">OCI \u89c4\u8303\u7684\u6709\u9650\u5408\u89c4\u6027<\/a><\/li>\n<\/ul>\n<p>\u8fd9\u4e2a\u957f\u671f\u5b58\u5728\u7684\u95ee\u9898\u7ec8\u4e8e\u5f97\u5230\u89e3\u51b3\u3002Docker v24 (2023) \u5728 <code>\/etc\/docker\/daemon.json<\/code> \u4e2d\u6dfb\u52a0\u4e86\u5bf9\u4f7f\u7528 containerd \u7684\u955c\u50cf\u5b50\u7cfb\u7edf\u548c <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=ErXBHzK6nz2Cs%2B0aiBXkqg%3D%3D.jCDE3UULnOQjgKvDqNaQxjGojeu5G4Xy8wiq9qSumV65IcSfow3I1VRjvQ1nB6yWzxZi%2Fa6z7z6gGFSD%2F2%2BSAA%3D%3D\" rel=\"noopener noreferrer\">undocumented option<\/a> \u7684\u5b9e\u9a8c\u6027\u652f\u6301\uff1a<\/p>\n<pre><code class=\"json\">{&quot;features&quot;:{&quot;containerd-snapshotter&quot;: true}}<\/code><\/pre>\n<p>Docker \u7684\u672a\u6765\u7248\u672c\uff082024\uff1f2025\uff1f\uff09\u5f88\u53ef\u80fd\u9ed8\u8ba4\u4f7f\u7528 containerd \u7684\u955c\u50cf\u5b50\u7cfb\u7edf\u3002<\/p>\n<h4>Lazy-pulling \u60f0\u6027\u62c9\u53d6<\/h4>\n<p>\u5bb9\u5668\u955c\u50cf\u4e2d\u7684\u5927\u591a\u6570\u6587\u4ef6\u4ece\u672a\u88ab\u4f7f\u7528\uff1a<\/p>\n<blockquote><p><strong>\u201c\u62c9\u53d6\u5305\u5360\u5bb9\u5668\u542f\u52a8\u65f6\u95f4\u7684 76%\uff0c\u4f46\u5176\u4e2d\u53ea\u6709 6.4\uff05 \u7684\u6570\u636e\u88ab\u8bfb\u53d6\u201d<\/strong><br \/>\u6458\u81ea\u201c <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=7IvnaUQS4CvVdnE%2BRCUJ2g%3D%3D.fTrjGc8DRsLRxo7NE71GB50WmP5b2rs0MzsFatyQ5Y2nMx049ZP5OYhdB5JhuyuMv%2BU6xl7UNOzDD7WwNx0q0khuPx5Eql7gtCbQ1qLK4WM%3D\" rel=\"noopener noreferrer\">Slacker\uff1a\u4f7f\u7528 Lazy Docker \u5bb9\u5668\u8fdb\u884c\u5feb\u901f\u5206\u53d1<\/a>\u201d\uff08Harter \u7b49\u4eba\uff0cFAST 2016\uff09<\/p><\/blockquote>\n<p>\u201c\u60f0\u6027\u62c9\u53d6\u201d\u662f\u4e00\u79cd\u901a\u8fc7\u6309\u9700\u62c9\u53d6\u90e8\u5206\u955c\u50cf\u5185\u5bb9\u6765\u51cf\u5c11\u5bb9\u5668\u542f\u52a8\u65f6\u95f4\u7684\u6280\u672f\u3002\u5bf9\u4e8e <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=%2B1YPmBTFIDyv54ym%2F74VwQ%3D%3D.J7mOlPLjc5uCMjiNVT0%2F8AGhsTprXQQg86rw3Upkog9nOCIXgeUiU127eIgRFjQe91OhZ4tCeY1MBbcLm7Qcu8jsyHbPPMK4LDNqKcgAn3w%3D\" rel=\"noopener noreferrer\">OCI \u6807\u51c6 tar.gz \u955c\u50cf<\/a> \u6765\u8bf4\u8fd9\u662f\u4e0d\u53ef\u80fd\u7684\uff0c\u56e0\u4e3a\u5b83\u4eec\u4e0d\u652f\u6301 <code>seek()<\/code> \u64cd\u4f5c\u3002\u4eba\u4eec\u63d0\u51fa\u4e86\u51e0\u79cd\u66ff\u4ee3\u683c\u5f0f\u6765\u652f\u6301\u60f0\u6027\u62c9\u53d6\uff1a<\/p>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=%2Fy1xRHiZaW8nY2QBCtlklA%3D%3D.y0AG%2BshQ9XunNuCQ%2BLlkuVOP5WMrUnJ%2FEVmZl5%2F74yOVdo3URRLXy9OeV%2BZkRBHD%2Bqq2Q4SLgWRGmJI4u9MMtg%3D%3D\" rel=\"noopener noreferrer\"><strong>eStargz<\/strong><\/a> (2019) \uff1a\u4f18\u5316 seek() \u80fd\u529b\u7684 gzip \u7c92\u5ea6\uff1b\u5411\u524d\u517c\u5bb9 OCI v1 tar.gz\u3002<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=wtleNYBfbQMgYJxjoLmQGw%3D%3D.i0RL4fT7yP543s0aidYYBSJVlFIwy9C9cqOxBQBNxzPjv%2BwA%2BtfqnqoWPPA2TMqu\" rel=\"noopener noreferrer\"><strong>SOCI<\/strong><\/a> (2022)\uff1a\u6355\u83b7 tar.gz \u89e3\u7801\u5668\u72b6\u6001\u7684\u68c0\u67e5\u70b9\uff1b\u5411\u524d\u517c\u5bb9 OCI v1 tar.gz\u3002<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=xk6FfO9cqiJiIq4k8NyRrA%3D%3D.nrnC2Ukn8rkur0sFZqSUOg%2FQjTrY%2BhfNrBGUnL2c%2FoAOK64OosUXUpEpNlL0VcJp\" rel=\"noopener noreferrer\"><strong>Nydus<\/strong><\/a> (2022)\uff1a\u53e6\u4e00\u79cd\u56fe\u50cf\u683c\u5f0f\uff1b<br \/>  \u4e0e OCI v1 tar.gz \u4e0d\u517c\u5bb9\u3002<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=IglmjZMjeeehaK50EUHcDA%3D%3D.ajBEsxPYprOTVrcaR4TXfbV%2Fjc8TtEX%2BBpTzSlPp05VSuTEiM1QG92Dyd3F9ROI8\" rel=\"noopener noreferrer\"><strong>OverlayBD<\/strong><\/a> (2021)\uff1a\u5c06\u5757\u8bbe\u5907\u4f5c\u4e3a\u5bb9\u5668\u955c\u50cf\uff1b\u4e0e OCI v1 tar.gz \u4e0d\u517c\u5bb9\u3002<\/li>\n<\/ul>\n<p>\u4e0b\u56fe\u663e\u793a\u4e86 eStargz \u7684\u57fa\u51c6\u6d4b\u8bd5\u7ed3\u679c\u3002\u60f0\u6027\u62c9\u52a8\uff08+\u989d\u5916\u4f18\u5316\uff09\u53ef\u4ee5\u5c06\u5bb9\u5668\u542f\u52a8\u65f6\u95f4\u51cf\u5c11\u5230 1\/9\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995673\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<h4>\u6269\u5927 User namespace \u7684\u91c7\u7528<\/h4>\n<p>\u5c3d\u7ba1 Docker \u81ea <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Y8%2BD4v5jNb%2BJQ%2F%2FX36JrYQ%3D%3D.GcrIHD66Pu79uJ%2Fj2n1vhyyulPORj%2FeduhOKsJdgsVLp3y%2FZFaWNtHSybQoMf%2FIV\" rel=\"noopener noreferrer\">v1.9<\/a>\uff082015\uff09\u4ee5\u6765\u4e00\u76f4\u652f\u6301\u7528\u6237\u547d\u540d\u7a7a\u95f4\uff0c\u4f46\u5728 Docker \u548c Kubernetes \u751f\u6001\u7cfb\u7edf\u4e2d\u4ecd\u7136\u5f88\u5c11\u4f7f\u7528\u3002<\/p>\n<p>\u539f\u56e0\u4e4b\u4e00\u662f \u201cchowning\u201d \u5bb9\u5668 rootfs \u4f5c\u4e3a\u4f2a\u6839\u7684\u590d\u6742\u6027\u548c\u5f00\u9500\u3002Linux \u5185\u6838 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=lkGNLVJCX8D9YD%2BM9UBfAA%3D%3D.mdvoSAA0OG1riuBUAbqpFPrEm1mus6LLQzPj1OGmm6DamOjixsxAGbZiaaT2%2BfQ1j%2FviK8GWUTcpyKv3OOn9hA%3D%3D\" rel=\"noopener noreferrer\">v5.12<\/a> (2021) \u6dfb\u52a0\u4e86 \u201cidmapped mounts\u201d \u4ee5\u6d88\u9664 chown \u7684\u5fc5\u8981\u6027\u3002\u8ba1\u5212\u5728 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=XMizivElKBKc3Djcm%2FYBNw%3D%3D.om1Ta7w%2FcKeJ%2BbYOIOXxin8BRPwOiFrTCaRpFpTxqVVW6QUrtuj9yOIsXo993UpsEHC%2FQsf%2FskBcSlrQdVO9kQ%3D%3D\" rel=\"noopener noreferrer\">runc v1.2<\/a> \u4e2d\u652f\u6301\u8fd9\u4e00\u70b9\u3002<\/p>\n<p>runc v1.2 \u53d1\u5e03\u540e\uff0c\u7528\u6237\u547d\u540d\u7a7a\u95f4\u9884\u8ba1\u5c06\u5728 Docker \u548c Kubernetes \u4e2d\u66f4\u52a0\u6d41\u884c\uff0c\u800c Docker \u548c Kubernetes \u521a\u521a\u5728 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=RYl7e4MGfMt0Td7AaAIw%2BQ%3D%3D.2fQ8fb%2FTVEqbppkrdR6IQ6ABm2YFc043UKWHAQDXWX3tYd1yxmXD0SgIfYtx7y6%2B6yWkm2%2FWBwPxo2EdbhpCfNTGNo6eu5Sxv7Hl3lC05yFigieJBXw6z99NrS6Lxw6O\" rel=\"noopener noreferrer\">v1.25<\/a>\uff082022\uff09\u4e2d\u6dfb\u52a0\u4e86\u5bf9\u7528\u6237\u547d\u540d\u7a7a\u95f4\u7684 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=YWlfVMAGx4yjjosJeoX%2Byw%3D%3D.mlaQtszVmaSSASvdB0YuWVM8RfhW0NtDMuT5vVxZZhCZkSq3UZPKiv8N4I%2FohCZpw7Qew04WYqWZal1uT9gJxkEGQ%2BAEPwJMYu0K7DmFidQlersU6GMitbD4eKPOu8%2FIXmSUy3FLT3F2NT8zPM6xeg%3D%3D\" rel=\"noopener noreferrer\">\u521d\u6b65\u652f\u6301<\/a>\u3002\u51fa\u4e8e\u517c\u5bb9\u6027\u8003\u8651\uff0cKubernetes \u4e0d\u592a\u53ef\u80fd\u9ed8\u8ba4\u542f\u7528\u7528\u6237\u547d\u540d\u7a7a\u95f4\u3002\u7136\u800c\uff0cDocker <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=fWNg2kQYGmpxpqBHOIQtuQ%3D%3D.5vLGky1mmznynqatt%2FWUdmawp1qBlpvUOGppm48rTcVT5677XX99hehKCNOV4BW%2F\" rel=\"noopener noreferrer\">\u5c06\u6765<\/a> \u4ecd\u6709\u53ef\u80fd\u9ed8\u8ba4\u542f\u7528\u7528\u6237\u547d\u540d\u7a7a\u95f4\u3002\u4e0d\u8fc7\uff0c\u4e00\u5207\u8fd8\u6ca1\u6709\u51b3\u5b9a\u3002<\/p>\n<h4>Rootless \u5bb9\u5668<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=lJLmREP6y7f0jD3u1G0UQg%3D%3D.sAeP63Mx2uNlVkOF9Q4tVszkMdruTj6%2BKsiOwoCgIR8%3D\" rel=\"noopener noreferrer\">Rootless \u5bb9\u5668<\/a> \u662f\u4e00\u79cd\u5c06\u5bb9\u5668\u8fd0\u884c\u65f6\u4ee5\u53ca\u5bb9\u5668\u653e\u7f6e\u5728\u7531\u975e root \u7528\u6237\u521b\u5efa\u7684\u7528\u6237\u547d\u540d\u7a7a\u95f4\u4e2d\u7684\u6280\u672f\uff0c\u4ee5\u51cf\u8f7b\u8fd0\u884c\u65f6\u7684\u6f5c\u5728\u6f0f\u6d1e\u3002<\/p>\n<p>\u5373\u4f7f\u5bb9\u5668\u8fd0\u884c\u65f6\u5b58\u5728\u5141\u8bb8\u653b\u51fb\u8005\u9003\u79bb\u5bb9\u5668\u7684\u9519\u8bef\uff0c\u653b\u51fb\u8005\u4e5f\u65e0\u6cd5\u62e5\u6709\u5bf9\u5176\u4ed6\u7528\u6237\u7684\u6587\u4ef6\u3001\u5185\u6838\u3001\u56fa\u4ef6\u548c\u8bbe\u5907\u7684\u7279\u6743\u8bbf\u95ee\u6743\u9650\u3002<\/p>\n<p>\u4ee5\u4e0b\u662f rootless \u5bb9\u5668\u7684\u7b80\u53f2\uff1a<\/p>\n<ul>\n<li><strong>2014<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Jfy5tj0arego8Djuo6t3Ow%3D%3D.H4H%2BdeGTaRiQI67wBY7XX6bQHT9z5NIq9U4BpIye7%2FH3u%2BBW0MWcJjwxu3SbEkJOrGV7QQQ1uaFEvGDPrKcMnHZp1wwTWRHPd5p5sBHPyG8%3D\" rel=\"noopener noreferrer\">LXC v1.0<\/a> \u5f15\u5165\u4e86\u5bf9 rootless \u5bb9\u5668\u7684\u652f\u6301\u3002\u5f53\u65f6 rootless \u5bb9\u5668\u88ab\u79f0\u4e3a\u201c\u975e\u7279\u6743\u5bb9\u5668\u201d\u3002LXC \u7684\u975e\u7279\u6743\u5bb9\u5668\u4e0e\u73b0\u4ee3 rootless \u5bb9\u5668\u7565\u6709\u4e0d\u540c\uff0c\u56e0\u4e3a\u5b83\u4eec\u9700\u8981 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=%2F5bNkomnYw6txgZtU8WeQg%3D%3D.y4RqfK5oIJLF5d59sf9RQPj2CVPsVXyULp8zVCEIx4EH6g%2BNMEOZF%2ByTXIDaqhJnf3k%2F0PQ%2BO75zzCBi6ErwBw%3D%3D\" rel=\"noopener noreferrer\">SETUID \u4e8c\u8fdb\u5236\u6587\u4ef6<\/a> \u6765 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=igGTWSZzGV%2BOw9yhxfGXgg%3D%3D.u%2FUiL0jcRJTvkKY5W0gtClIYoLfh%2B0vyb4aRCV0TjdiXAqwawON%2B01u85koZe4F5TXt0gqwFOCCYTP%2FT9PlS6Q%3D%3D\" rel=\"noopener noreferrer\">\u542f\u52a8\u7f51\u7edc<\/a>\u3002<\/li>\n<li><strong>2017<\/strong>\uff1arunc <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=7DLo9lJzy5rRPKddmTf3yg%3D%3D.s2Ms01HG%2B6mgXqwoAaAuVfxIT7JYkVMdIJIvhFxnoZ1Br%2Be5CxcJbEQgARJ3HiWXn4cKOIqkes3v4RGDHJZdBQ%3D%3D\" rel=\"noopener noreferrer\">v1.0-rc4<\/a> \u83b7\u5f97\u5bf9 rootless\u5bb9\u5668\u7684\u521d\u6b65\u652f\u6301\u3002<\/li>\n<li><strong>2018<\/strong>\uff1a\u4e00\u4e9b\u5de5\u5177\u5df2\u7ecf\u5f00\u59cb\u652f\u6301\uff0c<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=9hsoq%2FHUtz4G3NH2ydhWvw%3D%3D.DIIgytcw4bb4fYUc6zGPYXBGPhhtVR7yV%2For8I38LJW3ECadttc6XMD2j8%2BFp29nSd%2BzfqPhPbo1VQpymIUfgw%3D%3D\" rel=\"noopener noreferrer\">containerd<\/a>\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=geYuNGT%2FPdc7IXyTcbJXuA%3D%3D.HlGtLtKsAMhKcio3doOupUk5XJwC2VRn4cVLVnQVf5K76ehx%2BSTq5rrvZj%2Fc%2F8vVyzVQCumoDrtAjDIW6%2ByNvA%3D%3D\" rel=\"noopener noreferrer\">BuildKit<\/a>\uff08<code>docker build<\/code>\u7684\u540e\u7aef\uff09\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=mUZXEXlk%2F0ZIUJUfNY2wWg%3D%3D.HpemRpTxYUg8dwgHnCeQrmjuCVzJfdHedzrOyNG8iaMFWTVzWVJhWDBUSff%2FbSdx8r%2B1mzbR2En%2B8ymZzUsqy0CmS%2BLMXwgklYlmtD1Ma0edZ9jJlKiSsyZXThBnFhYm\" rel=\"noopener noreferrer\">Docker<\/a>\u3001<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=6ly8zmJAuzTYQo1JoJ%2FMHg%3D%3D.r2pefTcyYjKvrxBWWIn4TJeREHdVGbSOcOaQoOJgJj6Y50RAGyXRMuLC9QPpGLopcgZeF7ust8VkuCy0cLRhxD0g%2FhU3kJNWT1DedHyQIErfNryYjJk3E%2FOIf1FBgyaW\" rel=\"noopener noreferrer\">Podman<\/a>\u3002<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=ZBakUY6CBlZFEbxkdbkWvA%3D%3D.AK8S3z08yiMDSw1eMI5v97WEThsWg5Bh9Om9zJ3wKqncx2rWWyGVxifLRIErt7b0Zyvei4jDe7XIHVYJ7LWjPw%3D%3D\" rel=\"noopener noreferrer\">slirp4netns<\/a> \u88ab\u6211\u81ea\u5df1\u521b\u5efa\uff0c\u4ee5\u901a\u8fc7\u8f6c\u6362\u4ee5\u592a\u7f51\u6765\u5141\u8bb8 SETUID-less \u7f51\u7edc\u6570\u636e\u5305\u53d1\u9001\u81f3\u975e\u7279\u6743\u5957\u63a5\u5b57\u7cfb\u7edf\u8c03\u7528\u3002<\/li>\n<li><strong>2019<\/strong>\uff1aDocker <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=6dRslZrGLpQxbtbUwRAeXw%3D%3D.wCdTi2hexcHSLc2IKONOXfNTIhnrv8UqDKIpfaVK87AL5wRyObiXsR7mvbxcWEHELIEwsvj99XMHcrsj1apI6A%3D%3D\" rel=\"noopener noreferrer\">v19.03<\/a> \u53d1\u5e03\uff0c\u5bf9 rootless \u5bb9\u5668\u63d0\u4f9b\u5b9e\u9a8c\u6027\u652f\u6301\u3002Podman <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=OXk48reWrDCaK8zvbyWm6g%3D%3D.%2FvcmoLh0lb8nqZREIwJly0qwr5gLJzftcUj9W0ojw7FbUgzaQWykCY8BEZAUJ6oKIuFHS34KKWJZy%2B6FeEjltw%3D%3D\" rel=\"noopener noreferrer\">v1.1<\/a> \u4e5f\u5728\u4eca\u5e74\u53d1\u5e03\uff0c\u5177\u6709\u76f8\u540c\u7684\u529f\u80fd\uff0c\u7565\u9886\u5148\u4e8e Docker v19.03\u3002<\/li>\n<li><strong>2020<\/strong>\uff1aDocker <a target=\"_blank\" href=\"https:\/\/segmentfault.com\/nttlabs\/docker-20-10-59cc4bd59d37\" rel=\"noopener noreferrer\">v20.10<\/a> \u53d1\u5e03\uff0crootless \u5bb9\u5668\u5168\u9762\u53ef\u7528\u3002<\/li>\n<\/ul>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995674\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p>\u4ece 2020 \u5e74\u5230 2022 \u5e74\uff0c\u6211\u4eec\u8fd8\u81f4\u529b\u4e8e <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=3QEI%2FxAJd2HTwbJlPGkawg%3D%3D.vqG7OQhJL356vyCcD%2Frk1croxxsh%2BfjfLDoOHijkdZqmK1X6ZEAjjHzDX2GFURfnQvaf7jcDvjwSavj0Gfpkhw%3D%3D\" rel=\"noopener noreferrer\">bypass4netns<\/a>\uff0c\u901a\u8fc7\u5728\u5bb9\u5668\u5185\u6302\u94a9\u5957\u63a5\u5b57\u6587\u4ef6\u63cf\u8ff0\u7b26\u5e76\u5728\u5bb9\u5668\u5916\u91cd\u5efa\u5b83\u4eec\u6765\u6d88\u9664 slirp4netns \u7684\u5f00\u9500\u3002\u6240\u5b9e\u73b0\u7684\u541e\u5410\u91cf\u751a\u81f3\u6bd4 \u201crootful\u201d \u5bb9\u5668\u66f4\u5feb\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995675\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p>Rootless \u5bb9\u5668\u5df2\u7ecf\u6210\u529f\u666e\u53ca\uff0c\u4f46\u4e5f\u6709\u4eba\u5bf9 rootless \u5bb9\u5668\u63d0\u51fa\u6279\u8bc4\u3002\u7279\u522b\u662f\uff0c\u662f\u5426\u5e94\u8be5\u5141\u8bb8\u975eroot\u7528\u6237\u521b\u5efa\u8fd0\u884c\u65e0\u6839\u5bb9\u5668\u6240\u9700\u7684\u7528\u6237\u547d\u540d\u7a7a\u95f4\u662f\u6709\u4e89\u8bae\u7684\u3002\u5bf9\u4e8e\u5bb9\u5668\u7528\u6237\uff0c\u6211\u7684\u56de\u7b54\u662f\u201c\u662f\u201d\uff0c\u56e0\u4e3a\u65e0\u6839\u5bb9\u5668\u81f3\u5c11\u6bd4\u4ee5\u6839\u8eab\u4efd\u8fd0\u884c\u6240\u6709\u5185\u5bb9\u8981\u5b89\u5168\u5f97\u591a\u3002\u4f46\u662f\uff0c\u5bf9\u4e8e\u4e0d\u4f7f\u7528\u5bb9\u5668\u7684\u4eba\uff0c\u6211\u5b81\u613f\u56de\u7b54\u201c\u5426\u201d\uff0c\u56e0\u4e3a\u7528\u6237\u547d\u540d\u7a7a\u95f4\u4e5f\u53ef\u80fd\u662f\u653b\u51fb\u9762\u3002\u4f8b\u5982\uff0c<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=y7F%2FyQ704M%2Fu6k0SNNagvQ%3D%3D.aX1QtFwFvaTu2iFA9t8AOxhjsi3Vzkcqt%2BYxOCFtER9ZagibXKU5Z%2FaUBWhcpyeHdn5%2BzbmbJoN77tRMTzLybw%3D%3D\" rel=\"noopener noreferrer\"><strong>CVE-2023\u201332233 \u6f0f\u6d1e<\/strong>\uff1a\u201cPrivilege escalation in Linux Kernel due to a Netfilter nf_tables vulnerability.\u201d<\/a>\u3002<\/p>\n<p>\u793e\u533a\u5df2\u7ecf\u5728\u5bfb\u6c42\u89e3\u51b3\u8fd9\u4e00\u56f0\u5883\u7684\u65b9\u6cd5\u3002Ubuntu\uff08\u81ea 13.10 \u8d77\uff09\u548c Debian \u63d0\u4f9b\u4e86\u4e00\u4e2a sysctl \u8bbe\u7f6e <code>kernel.unprivileged_userns_clone=&lt;bool&gt;<\/code> \u6765\u6307\u5b9a\u662f\u5426\u5141\u8bb8\u6216\u7981\u6b62\u521b\u5efa\u975e\u7279\u6743\u7528\u6237\u547d\u540d\u7a7a\u95f4\u3002\u7136\u800c\uff0c\u4ed6\u4eec\u7684<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=GLa8W6IisDcKtGDIp5Vgjw%3D%3D.wQAXp0CYxlfkUK29eu1pNreQ1JOTT2Lb4h6NxLKUheVHGM%2B2uUC4s5h5S0xcFo8B76HEGLb2c7T8H7pAdGLb8tlx8hxwF2HuS3u5Z004dEEZzNTBpnIa3%2BegxSiVaXGP11CW%2Fpox%2BhXk3PovCL4lU6p8qVWtujj%2FvDpcpL8FO7HjzTZ7p2OGQS3N%2FWQ8WVXpOPpGiENhByT7PmXpDnQLpw%3D%3D\" rel=\"noopener noreferrer\">\u8865\u4e01<\/a>\u5e76\u6ca1\u6709\u5408\u5e76\u5230\u4e0a\u6e38 Linux \u5185\u6838\u4e2d\u3002<\/p>\n<p>\u76f8\u53cd\uff0c\u4e0a\u6e38\u5185\u6838\u5728 Linux <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=1jb5bDWMZ2kQjb4aHLDi%2BQ%3D%3D.Ay4gR2yeoQksL8rfWutUBHyzWLqTiJmdqGB9%2B2YJU%2BNslfA7c4jEuuBDlC9pTYLQwEbpFsCU38epS1nZaK48lhBa3Jl8Oykk%2BYQWA9rS1DA5yBzVMWkmXkGrLG%2Fz6oPk\" rel=\"noopener noreferrer\">v6.1<\/a> (2022) \u4e2d\u5f15\u5165\u4e86\u65b0\u7684 LSM\uff08Linux \u5b89\u5168\u6a21\u5757\uff09\u94a9\u5b50 <code>userns_create<\/code> \uff0c\u4ee5\u4fbf LSM \u53ef\u4ee5\u52a8\u6001\u51b3\u5b9a\u662f\u5426\u5141\u8bb8\u6216\u7981\u6b62\u521b\u5efa\u7528\u6237\u547d\u540d\u7a7a\u95f4\u3002\u8be5\u94a9\u5b50\u53ef\u4ece <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=VM5JVLOUt5EBDKc8%2Bhc6PQ%3D%3D.6yQ3EPx0D5h%2BoL%2B8BdmWcZpOzDhi4XQx3GsAqgt5pNRAMOZBjaBcu%2FpNrdvOw1kG\" rel=\"noopener noreferrer\">eBPF (<code>bpf_program__atttach_lsm()<\/code>)<\/a> \u8c03\u7528\uff0c\u56e0\u6b64\u9884\u8ba1\u5c06\u6709\u4e00\u4e2a\u4e0d\u4f9d\u8d56\u4e8e AppArmor \u6216 SELinux \u7684\u7ec6\u7c92\u5ea6\u4e14\u975e\u7279\u5b9a\u4e8e\u53d1\u884c\u7248\u7684\u65cb\u94ae\u3002\u7136\u800c\uff0ceBPF + LSM \u7684\u7528\u6237\u7a7a\u95f4\u5b9e\u7528\u7a0b\u5e8f\u5c1a\u672a\u6210\u719f\uff0c\u65e0\u6cd5\u4e3a\u6b64\u63d0\u4f9b\u826f\u597d\u7684\u7528\u6237\u4f53\u9a8c\u3002<\/p>\n<h4>\u66f4\u591a LSM<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=G5ih5FNUPvZhVARh7q1%2FvA%3D%3D.ukzTrTuZPRXHeFPvdXTO9Z1kOCuzWUk4IdIJ%2BRh7RSM%3D\" rel=\"noopener noreferrer\">Landlock<\/a> LSM \u5df2\u5408\u5e76\u5230 Linux <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=tU2sWfv0%2F%2FLwpUaZg9wRRQ%3D%3D.tQLtOPPpt5PHIgVQfMm7VwpbLnKovaqa45qZ%2FZh%2Frm9UpS8nyWPAxV9JghQdG9lqHWbOuJFvu2VNIUFkJYmhaHm13ZgDJDMEkQl%2F6Zvrnt1G3lZXr%2F1gAAJaG%2FP3GS40624cD43khIKay2SjMgeB8Npa6p4pZe3qWfUXwaOX2ew%3D\" rel=\"noopener noreferrer\">v5.13<\/a> (2021) \u4e2d\u3002Landlock \u4e0e AppArmor \u7c7b\u4f3c\uff0c\u5b83\u901a\u8fc7\u8def\u5f84\uff08<code>LANDLOCK_ACCESS_FS_EXECUTE<\/code>\u3001<code>LANDLOCK_ACCESS_FS_READ_FILE<\/code> \u7b49\uff09\u9650\u5236\u6587\u4ef6\u8bbf\u95ee\uff0c\u4f46 Landlock \u4e0d\u9700\u8981 root \u6743\u9650\u6765\u8bbe\u7f6e\u65b0\u914d\u7f6e\u6587\u4ef6\u3002Landlock \u4e5f\u4e0e OpenBSD \u7684 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=p4RuyVftnaC8ZfYSEj2nSw%3D%3D.tzqjtLWOKV39FYYgfFF4fN3ytIHeJhvSWf%2Fjl6Fypyhl0CPqvHjNQp0%2FpoffKfHD\" rel=\"noopener noreferrer\"><code>promise(2)<\/code><\/a> \u975e\u5e38\u76f8\u4f3c\u3002<\/p>\n<p>Landlock \u4ecd\u7136 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=5RntbFXtMrwKPtwUjlD49g%3D%3D.KRX0S5qlu5RrUsrcs3iRDy3ewcIED5CdArzyL0nQk7IfRofCvKNlYwInmc0J6tD3maTMZYnQ3DFoTOqdOA0rAA%3D%3D\" rel=\"noopener noreferrer\">\u4e0d\u53d7 OCI Runtime Spec \u652f\u6301<\/a>\uff0c\u4f46\u6211\u731c\u5b83\u53ef\u4ee5\u5305\u542b\u5728 OCI Runtime Spec v1.2 \u4e2d\u3002<\/p>\n<h4>Kata Containers<\/h4>\n<p>\u6b63\u5982\u6211\u5728\u7b2c\u4e00\u90e8\u5206\u4e2d\u63d0\u5230\u7684\uff0c\u201c\u5bb9\u5668\u201d\u5e76\u4e0d\u662f\u4e00\u4e2a\u5b9a\u4e49\u660e\u786e\u7684\u672f\u8bed\u3002\u4efb\u4f55\u4e1c\u897f\u53ea\u8981\u80fd\u4e0e\u73b0\u6709\u7684\u5bb9\u5668\u751f\u6001\u7cfb\u7edf\u63d0\u4f9b\u826f\u597d\u7684\u517c\u5bb9\u6027\uff0c\u5c31\u53ef\u4ee5\u79f0\u4e3a\u201c\u5bb9\u5668\u201d\u3002<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=P9mhqtb0TIipss9zUuZiZA%3D%3D.fgaup3x5cwdTr%2B2b4dDzZRZ78dO4RXPZL90Yi3Kbo8A%3D\" rel=\"noopener noreferrer\">Kata Containers<\/a> (2017) \u5c31\u662f\u8fd9\u6837\u4e00\u79cd\u201c\u5bb9\u5668\u201d\uff0c\u5b9e\u9645\u4e0a\u5e76\u4e0d\u662f\u72ed\u4e49\u4e0a\u7684\u5bb9\u5668\u3002Kata \u5bb9\u5668\u5b9e\u9645\u4e0a\u662f\u865a\u62df\u673a\uff0c\u4f46\u652f\u6301 OCI \u8fd0\u884c\u65f6\u89c4\u8303\u3002Kata \u5bb9\u5668\u6bd4 runc \u5bb9\u5668\u5b89\u5168\u5f97\u591a\uff0c\u4f46\u662f\u5b83\u4eec\u5728\u6027\u80fd\u65b9\u9762\u5b58\u5728\u7f3a\u9677\uff0c\u5e76\u4e14\u5728\u4e0d\u652f\u6301\u5d4c\u5957\u865a\u62df\u5316\u7684\u5178\u578b\u975e\u88f8\u673a IaaS \u5b9e\u4f8b\u4e0a\u65e0\u6cd5\u6b63\u5e38\u5de5\u4f5c\u3002<\/p>\n<p>Kata Containers \u4f5c\u4e3a\u4e00\u4e2a containerd \u8fd0\u884c\u65f6\u63d2\u4ef6\uff0c\u5e76\u63a5\u6536\u4e0e runc \u5bb9\u5668\u76f8\u540c\u7684\u955c\u50cf\u548c\u8fd0\u884c\u65f6\u914d\u7f6e\u3002\u5b83\u7684\u7528\u6237\u4f53\u9a8c\u4e0e runc \u5bb9\u5668\u51e0\u4e4e\u6ca1\u6709\u533a\u522b\u3002<\/p>\n<h4>gVisor<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=8hK1pGxQh1eOlcZPuLKQTA%3D%3D.eif%2F88VTz9SBbtKNj94dPiUD5YqmrZZiUCvZEDGi3%2FM%3D\" rel=\"noopener noreferrer\">gVisor<\/a> (2018) \u662f\u53e6\u4e00\u4e2a\u5947\u7279\u7684\u5bb9\u5668\u8fd0\u884c\u65f6\u3002gVisor \u6355\u83b7\u7cfb\u7edf\u8c03\u7528\u5e76\u5728 Linux \u517c\u5bb9\u7684\u7528\u6237\u6a21\u5f0f\u5185\u6838\u4e2d\u6267\u884c\u5b83\u4eec\u4ee5\u51cf\u8f7b\u653b\u51fb\u3002gVisor \u76ee\u524d\u5177\u6709 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Qw6jjXtGr5ht7CK0xtSvPQ%3D%3D.1uK%2FEcW%2BeGTcyC7%2FJdMHs1ZEv9qzOrf%2F5pFlgXgQAFxwc0LYMhIM4ky8I3jApoCYt7339Y0SKNH8Nk%2BZ7Y6Tuw%3D%3D\" rel=\"noopener noreferrer\">\u4e09\u79cd<\/a> \u6355\u83b7\u7cfb\u7edf\u8c03\u7528\u7684\u6a21\u5f0f\uff1a<\/p>\n<ul>\n<li><strong>KVM \u6a21\u5f0f<\/strong>\uff1a\u5f88\u5c11\u4f7f\u7528\uff0c\u4f46\u662f\u88f8\u673a\u4e3b\u673a\u7684\u6700\u4f73\u9009\u62e9<\/li>\n<li><strong>ptrace \u6a21\u5f0f<\/strong>\uff1a\u6700\u5e38\u89c1\u7684\u9009\u9879\uff0c\u4f46\u901f\u5ea6\u8f83\u6162<\/li>\n<li><strong>SIGSYS trap \u6a21\u5f0f<\/strong>\uff08\u81ea 2023 \u5e74\u8d77\uff09\uff1a\u9884\u8ba1\u6700\u7ec8\u53d6\u4ee3 ptrace \u6a21\u5f0f<\/li>\n<\/ul>\n<p>gVisor \u5df2\u7528\u4e8e Google \u7684\u591a\u4e2a\u4ea7\u54c1\u4e2d\uff0c\u5305\u62ec Google Cloud Run\u3002\u7136\u800c\uff0cGoogle Cloud Run \u5df2\u4e8e 2023 \u5e74\u4ece gVisor \u8f6c\u5411 microVM\u3002\u8fd9\u610f\u5473\u7740 gVisor \u7684\u6027\u80fd\u548c\u517c\u5bb9\u6027\u95ee\u9898\u5bf9\u4e8e\u4ed6\u4eec\u7684\u4e1a\u52a1\u6765\u8bf4\u662f\u4e0d\u53ef\u5ffd\u89c6\u7684\u3002<\/p>\n<h4>WebAssembly<\/h4>\n<p><a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=vI6doZ%2FerumG73vm7QYOKg%3D%3D.5RVwzzMEIB%2Bm7qCCkl5suBHPo07xFu7U7IJ2STcOgTY%3D\" rel=\"noopener noreferrer\">WebAssembly (WASM) <\/a> \u662f\u4e00\u79cd\u72ec\u7acb\u4e8e\u5e73\u53f0\u7684\u5b57\u8282\u4ee3\u7801\u683c\u5f0f\uff0c\u6700\u521d\u4e8e <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=91KcJBtq3bCZfeMaI%2B7FPg%3D%3D.nylzZDIjtghsJB0xyUIaL4uzBMEnt7rTFGcUkVD76NofC6IGBe60g7TuFfrMqvtWBKNZIvTXWCvGQel0hZy7lg%3D%3D\" rel=\"noopener noreferrer\">2015 \u5e74<\/a> \u4e3a Web \u6d4f\u89c8\u5668\u8bbe\u8ba1\u3002WebAssembly \u4e0e Java applet (1995) \u6709\u70b9\u76f8\u4f3c\uff0c\u4f46\u5b83\u66f4\u6ce8\u91cd\u53ef\u79fb\u690d\u6027\u548c\u5b89\u5168\u6027\u3002WebAssembly \u7684\u4e00\u4e2a\u6709\u8da3\u7684\u65b9\u9762\u662f\u5b83\u5c06\u4ee3\u7801\u5730\u5740\u7a7a\u95f4\u4e0e\u6570\u636e\u5730\u5740\u7a7a\u95f4\u5206\u5f00\uff1b\u6ca1\u6709\u50cf <code>JMP &lt;immediate&gt;<\/code> \u548c <code>JMP *&lt;reg&gt;<\/code> \u8fd9\u6837\u7684\u6307\u4ee4\u3002\u5b83\u4ec5\u652f\u6301 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=aO3p5Qs3%2FYzBBa2CuOmWUw%3D%3D.Vk%2BAYu8ben8tN0m%2FipZdG7jUel5342MMY4jEpAAseg%2BlJSTwpiIzpjLEEd2cEWyexOTZau5MP6Ew1Orvs4PHQGOXhDSUMESmP8PzC3w8BW5EXzD2sRDMtjHz%2BqtjQLjs\" rel=\"noopener noreferrer\">\u8df3\u8f6c\u5230\u5728\u7f16\u8bd1\u65f6\u89e3\u6790\u7684\u6807\u7b7e<\/a>\u3002\u8fd9\u79cd\u8bbe\u8ba1\u51cf\u5c11\u4e86\u4efb\u610f\u4ee3\u7801\u6267\u884c\u9519\u8bef\uff0c\u5c3d\u7ba1\u5b83\u4e5f\u727a\u7272\u4e86 JIT \u5c06\u5176\u4ed6\u5b57\u8282\u4ee3\u7801\u683c\u5f0f\u7f16\u8bd1\u4e3a WebAssembly \u7684\u53ef\u884c\u6027\u3002<\/p>\n<p>WebAssembly \u4f5c\u4e3a\u5bb9\u5668\u7684\u6f5c\u5728\u66ff\u4ee3\u54c1\u4e5f\u53d7\u5230\u5173\u6ce8\u3002\u4e3a\u4e86\u5728\u6d4f\u89c8\u5668\u4e4b\u5916\u8fd0\u884c WebAssembly\uff0c<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=o57yVWdMSoaLNzJXKF1Pxg%3D%3D.7nESaneiLvkRZymQczj%2BLkuNFaFk7g6L27cHWEjhbAo%3D\" rel=\"noopener noreferrer\">WASI<\/a>\uff08WebAssembly \u7cfb\u7edf\u63a5\u53e3\uff09\u4e8e 2019 \u5e74\u63d0\u51fa\uff0c\u63d0\u4f9b\u4f4e\u7ea7 API\uff08\u4f8b\u5982 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=2Ph6WNdJyDTPRL6v3z9vzw%3D%3D.xetb%2Fyv5Vja1dQItA0sasoNGyEzEJnvDHrWnCHVGTrHfcqud7qPSiQEzZFUp7%2FEy6kO859vllgkuBQI88W7BaGbpsGn4OP5lzcXClnMpYIE%3D\" rel=\"noopener noreferrer\"><code>fd_read()<\/code>\u3001<code>fd_write()<\/code>\u3001<code>sock_recv()<\/code>\u3001<code>sock_send()<\/code><\/a>\uff09\u53ef\u7528\u4e8e\u5728\u5176\u4e0a\u5b9e\u73b0\u7c7b\u4f3c POSIX \u7684\u5c42\u3002containerd \u5728 2022 \u5e74\u6dfb\u52a0\u4e86 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Ws%2BYPk6us438J9f4KC4VsQ%3D%3D.teDfcYc47g9eXEixiAk%2B5NJs%2BulVouQnPuh3vDIqnX1YjDoBhwDla%2BLhoFO%2BvKqK\" rel=\"noopener noreferrer\">runWASI<\/a> \u63d2\u4ef6\uff0c\u5c06 WASI \u5de5\u4f5c\u8d1f\u8f7d\u89c6\u4e3a\u5bb9\u5668\u3002<\/p>\n<p>2023\u5e74\uff0c<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=ZRv6fP3K%2Bf2g%2Bihm%2ByhVSQ%3D%3D.yUb2nbXRW3raC70BKVoevNnCBX7FwzdZEtT5ryThEuHplaatrDZGZH2AxAqkehSo\" rel=\"noopener noreferrer\">WASIX<\/a> \u88ab\u63d0\u8bae\u6269\u5c55 WASI \u4ee5\u63d0\u4f9b\u66f4\u65b9\u4fbf\uff08\u4e5f\u6709\u4e9b\u4e89\u8bae\uff09\u7684\u529f\u80fd\uff1a<\/p>\n<ul>\n<li><strong>\u7ebf\u7a0b<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=vRpGHtKwEtpTPxOygnR6Eg%3D%3D.KBon%2B3NswQzeX4Ikpt%2FCWgYp33UczsD0I1Wu6OmpnEmQ2hMIfjPXV5OfCO58IGdg8CvYAV4yq8g6V6ay7guhnA%3D%3D\" rel=\"noopener noreferrer\"><code>thread_spawn()<\/code><\/a>, <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=FAJW3liCwDzqrOyC2cx5lg%3D%3D.6swEOb%2B0eF3Xs21GKOyiUyIiW9Tmyb7ezw%2FXDotN7VD%2FPU8MhO%2FPGLTWli4zBQFGI4ED1i3gSNis%2FRba49y3RA%3D%3D\" rel=\"noopener noreferrer\"><code>thread_join()<\/code><\/a>`, &#8230;<\/li>\n<li><strong>\u8fdb\u7a0b\uff1a<\/strong> <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=NKT6m5T5xpENRFMLPW%2F6Vw%3D%3D.YoUktVoMrutKm8cmistsalLCoQ14YJifjDvFW9UoP6bgQtKGCwkyPbzVFrW3yLhWEYWSljrTyPwkVRVUQEA1rA%3D%3D\" rel=\"noopener noreferrer\"><code>proc_fork()<\/code><\/a>, <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=Gr3VkJjQKA3TUI5N2Sxdbw%3D%3D.D1SkAqnggQmoeZIyeSsjiX9NkkULFqX55SUvx9Jx%2FIb36WfNN2F%2F0lqUlyeM5RLVQW9WiFfcAUpxKgRmIg9h4g%3D%3D\" rel=\"noopener noreferrer\"><code>proc_exec()<\/code><\/a>, &#8230;<\/li>\n<li><strong>\u5957\u63a5\u5b57<\/strong>\uff1a<a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=3q0ClNjtj34Pj5eEwNCQnA%3D%3D.OAfS0pfpNTHboPTk8n7fIOdRSuzLBkKYV1apWzA4B%2BmuI5rtIjyGSm60GIkAyF5LrIrlAtbbv%2FMC%2FTchYAuiyQ%3D%3D\" rel=\"noopener noreferrer\"><code>sock_listen()<\/code><\/a>, <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=jPzSJOZsfQMNMwXG%2FQ%2Bckg%3D%3D.p2AIAENGT2v57lx5%2Bva46yfkdmCDTtj%2FFMiVLSFgByeui4ygXjwaR3HR0keSBSphHra%2Fb1f7Lcv3fSVqSBjHTQ%3D%3D\" rel=\"noopener noreferrer\"><code>sock_connect()<\/code><\/a>, &#8230;<\/li>\n<\/ul>\n<p>\u6700\u7ec8\uff0c\u8fd9\u4e9b\u6280\u672f\u53ef\u80fd\u4f1a\u53d6\u4ee3\u5f88\u5927\u4e00\u90e8\u5206\uff08\u4f46\u4e0d\u662f 100%\uff09\u7684\u5bb9\u5668\u3002Docker \u7684\u521b\u59cb\u4eba Solomon Hykes \u8868\u793a\uff1a\u201c<em>\u5982\u679c WASM+WASI \u5728 2008 \u5e74\u5c31\u5b58\u5728\uff0c\u6211\u4eec\u5c31\u4e0d\u9700\u8981\u521b\u5efa Docker \u4e86<\/em> \u201d\u3002<\/p>\n<h3>\u603b\u7ed3<\/h3>\n<ul>\n<li>\u5bb9\u5668\u6bd4\u865a\u62df\u673a\u66f4\u9ad8\u6548\uff0c\u4f46\u5b89\u5168\u6027\u5f80\u5f80\u4e5f\u66f4\u4f4e\u3002\u4eba\u4eec\u6b63\u5728\u5f15\u5165\u8bb8\u591a\u5b89\u5168\u6280\u672f\u6765\u5f3a\u5316\u5bb9\u5668\u3002\uff08\u7528\u6237\u547d\u540d\u7a7a\u95f4\u3001\u65e0\u6839\u5bb9\u5668\u3001Linux \u5b89\u5168\u6a21\u5757\u2026\u2026\uff09<\/li>\n<li>Docker \u7684\u66ff\u4ee3\u54c1\u4e0d\u65ad\u6d8c\u73b0\uff08containerd\u3001CRI-O\u3001Podman\u3001nerdctl\u3001Finch \u7b49\uff09\uff0c\u4f46 Docker \u5e76\u6ca1\u6709\u6d88\u5931\u3002<\/li>\n<li>\u201cNon-container\u201d \u5bb9\u5668\u4e5f\u662f\u8d8b\u52bf\u3002\uff08<strong>Kata<\/strong>\uff1a\u57fa\u4e8e VM\uff0c<strong>gVisor<\/strong>\uff1a\u7528\u6237\u6a21\u5f0f\u5185\u6838\uff0c<strong>runWASI<\/strong>\uff1aWebAssembly\uff0c&#8230;\uff09<\/li>\n<\/ul>\n<p>\u4e0b\u56fe\u663e\u793a\u4e86\u8457\u540d\u7684\u8fd0\u884c\u65f6\u7684\u6982\u51b5\u3002<\/p>\n<p><img decoding=\"async\"   referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000043995676\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<p>\u66f4\u591a\u5185\u5bb9\u53e6\u8bf7\u53c2\u9605 <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=A%2FmP%2FUNlwGLK6FS%2Bfg5K%2BA%3D%3D.9DD14nck8NfnI3Vk1y85T9Pm2mvRZNK%2FY2cwDH0BIUM0NW0J7H56gY16B9cbKyEEdkuYVaDtypiyWrlGd1gVBRANniGFiW4%2BJrZeE6%2BQqVe8b53nUlT277FwyurQywfXxyBUG2hYDJCsMWwUjRDVgWXQNm02QNR6ohD3VFN8wJaMhVsFxgTKAoHGCPiSg8DX%2FskohY1sGjZtRIKJp%2FhG8ylPO0xdkKvFL5%2FFn9pc%2BcjXrYZ0j0304wefdezzqNOGb7bw2dC6fiJ%2FrsjjR6U461WH0TbPeAgCI2WMDK6M%2BCw%3D\" rel=\"noopener noreferrer\">PPT<\/a> \u7684\u5176\u4f59\u90e8\u5206\uff0c\u4e86\u89e3\u672c\u6587\u4e2d\u65e0\u6cd5\u6db5\u76d6\u7684\u5176\u4ed6\u4e3b\u9898\u3002<\/p>\n<hr>\n<p><em>\u6587\u672c\u7ffb\u8bd1\u81ea: <a target=\"_blank\" href=\"https:\/\/link.segmentfault.com\/?enc=ChoNVn6YF59x1twk46%2F%2F8w%3D%3D.fEzlwFroMgJEvOPDBCsOemb88M8Lx0s1auiwxJcZbraN%2BgVBGgm%2FkCYeBHU7Te7Hj%2FMq50l3s4LTj5GrtiXXtNdub1ZWezY9HINzX5L1TBpDkMvUGrsPulZhSw95kLhpuIfHmYUn1bD5SeXThyP05g%3D%3D\" rel=\"noopener noreferrer\">https:\/\/medium.com\/nttlabs\/the-internals-and-the-latest-trend&#8230;<\/a><\/em><\/p>\n<hr>\n<p><a href=\"https:\/\/segmentfault.com\/a\/1190000043995659\">https:\/\/segmentfault.com\/a\/1190000043995659<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u5185\u90e8\u7ed3\u6784\u548c\u6700\u65b0\u8d8b\u52bf\uff082023\uff09 \u539f\u6587\u4e3a Akihiro Suda \u5728\u65e5\u672c\u4eac\u90fd\u5927\u5b66\u505a\u7684\u5728\u7ebf\u8bb2\u5ea7\uff0c\u5b8c\u6574 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-10008074","post","type-post","status-publish","format-standard","hentry","category-share"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10008074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10008074"}],"version-history":[{"count":0,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10008074\/revisions"}],"wp:attachment":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10008074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10008074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10008074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}