PageSourceSearch

https://fall-zhang.github.io/assets/js/51e1a379.bc693b1a.js

js fall-zhang.github.io collected 2026-10-03 09:13:08 UTC 43,648 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["3700"],{29109:function(e,n,r){r.r(n),r.d(n,{frontMatter:()=>s,toc:()=>h,default:()=>a,metadata:()=>l,assets:()=>o,contentTitle:()=>i});var l=JSON.parse('{"id":"\u540E\u7AEF/docker/1.1-docker","title":"1.1-docker","description":"Create by fall on 09 May 2023","source":"@site/my-docs/\u540E\u7AEF/docker/1.1-docker.md","sourceDirName":"\u540E\u7AEF/docker","slug":"/\u540E\u7AEF/docker/1.1-docker","permalink":"/docs/\u540E\u7AEF/docker/1.1-docker","draft":false,"unlisted":false,"editUrl":"https://github.com/fall-zhang/fall-zhang.github.io/tree/source/my-docs/\u540E\u7AEF/docker/1.1-docker.md","tags":[],"version":"current","frontMatter":{},"sidebar":"tutorialSidebar","previous":{"title":"-- \u5BB9\u5668\u7684\u4F7F\u7528","permalink":"/docs/\u540E\u7AEF/docker/-- \u5BB9\u5668\u7684\u4F7F\u7528"},"next":{"title":"1.2-docker \u5B89\u88C5","permalink":"/docs/\u540E\u7AEF/docker/1.2-docker \u5B89\u88C5"}}'),c=r(52676),d=r(97806);let s={},i=void 0,o={},h=[{value:"Docker",id:"docker",level:2},{value:"\u5B89\u88C5",id:"\u5B89\u88C5",level:3},{value:"\u4E3B\u8981\u6982\u5FF5",id:"\u4E3B\u8981\u6982\u5FF5",level:2},{value:"\u955C\u50CF",id:"\u955C\u50CF",level:3},{value:"\u521B\u5EFA\u955C\u50CF",id:"\u521B\u5EFA\u955C\u50CF",level:4},{value:"\u5BB9\u5668",id:"\u5BB9\u5668",level:3},{value:"\u5BB9\u5668\u5185\u6570\u636E\u7684\u5907\u4EFD",id:"\u5BB9\u5668\u5185\u6570\u636E\u7684\u5907\u4EFD",level:4},{value:"volume",id:"volume",level:3},{value:"\u7F51\u7EDC",id:"\u7F51\u7EDC",level:3},{value:"\u65E5\u5FD7",id:"\u65E5\u5FD7",level:3},{value:"\u955C\u50CF\u548C\u5BB9\u5668\u7684\u5BFC\u51FA",id:"\u955C\u50CF\u548C\u5BB9\u5668\u7684\u5BFC\u51FA",level:3},{value:"\u5DE5\u7A0B\u5316",id:"\u5DE5\u7A0B\u5316",level:2},{value:"\u591A\u5BB9\u5668\u5E94\u7528",id:"\u591A\u5BB9\u5668\u5E94\u7528",level:3},{value:"Dockerfile",id:"dockerfile",level:3},{value:"docker-compose",id:"docker-compose",level:3},{value:"\u81EA\u52A8\u5316\u90E8\u7F72",id:"\u81EA\u52A8\u5316\u90E8\u7F72",level:3},{value:"\u9644\u5F55",id:"\u9644\u5F55",level:2},{value:"\u914D\u7F6E\u4EE3\u7406",id:"\u914D\u7F6E\u4EE3\u7406",level:3},{value:"\u53C2\u8003\u6587\u7AE0",id:"\u53C2\u8003\u6587\u7AE0",level:2}];function t(e){let n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.a)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:["Create by ",(0,c.jsx)(n.strong,{children:"fall"})," on 09 May 2023",(0,c.jsx)("br",{}),"\nRecently revised in 27 JulAug 2025"]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"docker",children:"Docker"}),"\n",(0,c.jsx)(n.p,{children:"\u76EE\u524D\uFF0C\u6211\u4EEC\u6709\u4E09\u4E2A\u4E0D\u540C\u7684\u8F6F\u4EF6\u8FD0\u884C\u65B9\u5F0F\uFF1A"}),"\n",(0,c.jsx)(n.p,{children:"\u7269\u7406\u673A\u3001\u865A\u62DF\u673A\u3001\u5BB9\u5668"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u7269\u7406\u673A\u65F6\u4EE3\uFF1A\u591A\u4E2A\u5E94\u7528\u4F1A\u8DD1\u5728\u4E00\u53F0\u673A\u5668\u4E0A\uFF08\u66F4\u6362\u73AF\u5883\uFF0C\u9700\u8981\u66F4\u6362\u5BF9\u5E94\u7684\u673A\u5668\uFF09"}),"\n",(0,c.jsx)(n.li,{children:"\u865A\u62DF\u673A\u65F6\u4EE3\uFF1A\u4E00\u53F0\u7269\u7406\u673A\u901A\u8FC7\u865A\u62DF\u673A\u8FD0\u884C\u591A\u4E2A\u73AF\u5883\uFF0C\u73AF\u5883\u5206\u522B\u8FD0\u884C\u591A\u4E2A\u7A0B\u5E8F\uFF08VMware\uFF0C\u5728 mac \u7CFB\u7EDF\u4E0A\u6211\u88C5\u4E00\u4E2A Windows \u7CFB\u7EDF\uFF0C\u88C5\u4E00\u4E2A CuteFish\uFF09"}),"\n",(0,c.jsx)(n.li,{children:"\u5BB9\u5668\u5316\u65F6\u4EE3\uFF1A\u4E00\u53F0\u7269\u7406\u673A\u5B89\u88C5\u591A\u4E2A\u5BB9\u5668\u5B9E\u4F8B\uFF0C\u591A\u4E2A\u5B9E\u4F8B\u8FD0\u884C\u591A\u4E2A\u7A0B\u5E8F\uFF0C\u6BD4\u865A\u62DF\u673A\u66F4\u5C0F\uFF08docker\uFF0C\u4E00\u4E2A\u5BB9\u5668\uFF0C\u4F7F\u7528\u4E00\u4E2A\u8FDB\u7A0B\uFF0C\u4F5C\u4E3A\u4E00\u4E2A\u6A21\u62DF\u7CFB\u7EDF\uFF09"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"docker \u63D0\u4F9B\u4E86\u5BB9\u5668\u5316\u90E8\u7F72\u7684\u80FD\u529B\uFF0Cdocker \u5F00\u53D1\uFF0C\u4E00\u822C\u662F\u4
1EE5\u4E0B\u7684\u51E0\u4E2A\u8FC7\u7A0B\u3002"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:["\u5728 ",(0,c.jsx)(n.code,{children:"Dockerfile"})," \u76EE\u5F55\u5185\u5F00\u53D1"]}),"\n",(0,c.jsx)(n.li,{children:"\u5F00\u53D1\u5B8C\u6210\u540E\u521B\u5EFA\u955C\u50CF\uFF08\u8986\u76D6\u955C\u50CF\uFF09"}),"\n",(0,c.jsx)(n.li,{children:"\u6700\u540E\u521B\u5EFA\u5BB9\u5668\uFF0C\u8FD0\u884C\u5BB9\u5668\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"**Docker \u5C5E\u4E8E Linux \u5BB9\u5668\u7684\u4E00\u79CD\u5C01\u88C5\uFF0C\u63D0\u4F9B\u7B80\u5355\u6613\u7528\u7684\u5BB9\u5668\u4F7F\u7528\u63A5\u53E3\u3002**\u5B83\u662F\u76EE\u524D\u6700\u6D41\u884C\u7684 Linux \u5BB9\u5668\u89E3\u51B3\u65B9\u6848\u3002"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u5C06\u5E94\u7528\u7A0B\u5E8F\u4E0E\u8BE5\u7A0B\u5E8F\u7684\u4F9D\u8D56\uFF0C\u6253\u5305\u5728\u4E00\u4E2A\u6587\u4EF6\u91CC\u9762\u3002\u8FD0\u884C\u8FD9\u4E2A\u6587\u4EF6\uFF0C\u5C31\u4F1A\u751F\u6210\u4E00\u4E2A\u865A\u62DF\u5BB9\u5668\u3002\u7A0B\u5E8F\u5728\u8FD9\u4E2A\u865A\u62DF\u5BB9\u5668\u91CC\u8FD0\u884C\uFF0C\u5C31\u597D\u50CF\u5728\u771F\u5B9E\u7684\u7269\u7406\u673A\u4E0A\u8FD0\u884C\u4E00\u6837\u3002\u6709\u4E86 Docker\uFF0C\u5C31\u4E0D\u7528\u62C5\u5FC3\u73AF\u5883\u95EE\u9898\u3002\u7528\u6237\u53EF\u4EE5\u65B9\u4FBF\u5730\u521B\u5EFA\u548C\u4F7F\u7528\u5BB9\u5668\uFF0C\u628A\u81EA\u5DF1\u7684\u5E94\u7528\u653E\u5165\u5BB9\u5668\u3002\u5BB9\u5668\u8FD8\u53EF\u4EE5\u8FDB\u884C\u7248\u672C\u7BA1\u7406\u3001\u590D\u5236\u3001\u5206\u4EAB\u3001\u4FEE\u6539\uFF0C\u5C31\u50CF\u7BA1\u7406\u666E\u901A\u7684\u4EE3\u7801\u4E00\u6837\u3002"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u7684\u4E3B\u8981\u7528\u9014\uFF0C\u76EE\u524D\u6709\u4E09\u5927\u7C7B\u3002"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u63D0\u4F9B\u4E00\u6B21\u6027\u7684\u73AF\u5883\uFF1A\u6BD4\u5982\uFF0C\u672C\u5730\u6D4B\u8BD5\u4ED6\u4EBA\u7684\u8F6F\u4EF6\u3001\u6301\u7EED\u96C6\u6210\u7684\u65F6\u5019\u63D0\u4F9B\u5355\u5143\u6D4B\u8BD5\u548C\u6784\u5EFA\u7684\u73AF\u5883\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u63D0\u4F9B\u5F39\u6027\u7684\u4E91\u670D\u52A1\uFF1A\u56E0\u4E3A Docker \u5BB9\u5668\u53EF\u4EE5\u968F\u5F00\u968F\u5173\uFF0C\u5F88\u9002\u5408\u52A8\u6001\u6269\u5BB9\u548C\u7F29\u5BB9\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u7EC4\u5EFA\u5FAE\u670D\u52A1\u67B6\u6784\uFF1A\u901A\u8FC7\u591A\u4E2A\u5BB9\u5668\uFF0C\u4E00\u53F0\u673A\u5668\u53EF\u4EE5\u8DD1\u591A\u4E2A\u670D\u52A1\uFF0C\u56E0\u6B64\u5728\u672C\u673A\u5C31\u53EF\u4EE5\u6A21\u62DF\u51FA\u5FAE\u670D\u52A1\u67B6\u6784\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u5B9E\u9645\u4F7F\u7528\u4E2D\uFF0C\u4E1A\u52A1\u53D1\u5C55\u521D\u671F\u53EA\u6709\u51E0\u4E2A\u5FAE\u670D\u52A1\uFF0C\u8FD9\u65F6\u7528 Docker \u5C31\u8DB3\u591F\u4E86\uFF0C\u4F46\u968F\u7740\u4E1A\u52A1\u89C4\u6A21\u9010\u6E10\u6269\u5927\uFF0C\u5BB9\u5668\u8D8A\u6765\u8D8A\u591A\uFF0C\u8FD0\u7EF4\u4EBA\u5458\u7684\u5DE5\u4F5C\u8D8A\u6765\u8D8A\u590D\u6742\uFF0C\u8FD9\u4E2A\u65F6\u5019\u5C31\u9700\u8981\u5BB9\u5668\u7F16\u6392\u7CFB\u7EDF\u3002"}),"\n",(0,c.jsx)(n.h3,{id:"\u5B89\u88C5",children:"\u5B89\u88C5"}),"\n",(0,c.jsx)(n.p,{children:"\u53C2\u7167\u5B98\u7F51\u5B89\u88C5\u6B65\u9AA4\u5B89\u88C5\u5373\u53EF"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"https://docs.docker.com/desktop/setup/install/windows-install/",children:"Windows"})}),"\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"https://docs.docker.com/desktop/setup/install/mac-install/",children:"Mac"})}),"\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"https://docs.docker.com/engine/install/",children:"Linux"})}),"\n"]}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:["\u9644\uFF1A\u56FD\u5185\u53EF\u7528 Docker \u955C\u50CF\u6E90\u6C47\u603B\n",(0,c.jsx)(n.a,{href:"https://www.coderjia.cn/archives/dba3f94c-a021-468a-8ac6-e840f85867ea",children:"https://www.coderjia.cn/archives/dba3f94c-a021-468a-8ac6-e840f85867ea"})]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u4E3B\u8981\u6982\u5FF5",children:"\u4E3B\u8981\u6982\u5FF5"}),"\n",(0,c.jsx)(n.h3,{id:"\u955C\u50CF",children:"\u955C\u50CF"}),"\n",(0,c.jsx)(n.p,{children:"\u955C\u50CF\uFF08Image\uFF09\uFF1A\u4E00\u4E2A\u7CFB\u7EDF\u7684\u4E00\u77AC\u95F4\u8FDB\u884C\u4FDD\u5B58\uFF0C\u53EF\u4EE5\u4E0D\u65AD\u5730\u4ECE\u8BE5\u70B9\u521B\u5EFA\u5206\u652F\u8FDB\u884C\u8FD0\u884C\uFF08\u8981\u4FEE\u6539\u53EA\u80FD\u521B\u5EFA\u65B0\u7684\u955C\u50CF\uFF09\u3002"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u628A\u5E94\u7528\u548C\u4F9D\u8D56\u653E\u5728\u955C\u50CF\u6587\u4EF6\u91CC\u9762\uFF0C\u53EA\u6709\u901A\u8FC7\u955C\u50CF\u624D\u80FD\u751F\u6210\u5BB9\u5668\u3002\u955C\u50CF\u751F\u6210\u7684\u5BB9\u5668\u90FD\u662F\u72EC\u7ACB\u7684\uFF0C\u5373\u4F7F\u4F7F\u7528\u540C\u4E00\u4E2A\u955C\u50CF\u521B\u5EFA\u5BB9\u5668\uFF0C\u5BB9\u5668\u91CC\u9762\u7684\u5185\u5BB9\u90FD\u662F\u4
1E92\u72EC\u7ACB\u7684\u3002\u6240\u4EE5\u6211\u4EEC\u4E00\u822C\u4E5F\u4E0D\u5728\u5BB9\u5668\u5185\u8FDB\u884C\u4FEE\u6539\uFF0C\u56E0\u4E3A\u8FD9\u4E9B\u4FEE\u6539\u65E0\u6CD5\u957F\u671F\u5B58\u50A8\u3002"}),"\n",(0,c.jsx)(n.p,{children:"image \u662F\u4E8C\u8FDB\u5236\u6587\u4EF6\u3002\u5B9E\u9645\u5F00\u53D1\u4E2D\uFF0C\u4E00\u4E2A image \u6587\u4EF6\u5F80\u5F80\u901A\u8FC7\u7EE7\u627F\u53E6\u4E00\u4E2A image \u6587\u4EF6\uFF0C\u52A0\u4E0A\u4E00\u4E9B\u4E2A\u6027\u5316\u8BBE\u7F6E\u800C\u751F\u6210\u3002\u4F60\u53EF\u4EE5\u5728 Ubuntu \u7684 image \u57FA\u7840\u4E0A\uFF0C\u5F80\u91CC\u9762\u52A0\u5165 Apache \u670D\u52A1\u5668\uFF0C\u5F62\u6210\u4F60\u7684 image\u3002"}),"\n",(0,c.jsx)(n.p,{children:"image \u6587\u4EF6\u662F\u901A\u7528\u7684\uFF0C\u4E00\u53F0\u673A\u5668\u7684 image \u6587\u4EF6\u62F7\u8D1D\u5230\u53E6\u4E00\u53F0\u673A\u5668\uFF0C\u7167\u6837\u53EF\u4EE5\u4F7F\u7528\u3002\u4E00\u822C\u6765\u8BF4\uFF0C\u4F7F\u7528\u522B\u4EBA\u5236\u4F5C\u597D\u7684 image \u6587\u4EF6\uFF0C\u800C\u4E0D\u662F\u81EA\u5DF1\u5236\u4F5C\uFF0C\u4EE5\u8282\u7701\u65F6\u95F4\u3002\u5373\u4F7F\u8981\u5236\u4F5C\uFF0C\u4E5F\u5E94\u8BE5\u57FA\u4E8E\u522B\u4EBA\u7684 image \u6587\u4EF6\u8FDB\u884C\u52A0\u5DE5\uFF0C\u521B\u5EFA\u955C\u50CF\uFF0C\u800C\u4E0D\u662F\u4ECE\u96F6\u5F00\u59CB\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u5B98\u65B9\uFF0C\u6216\u8005\u81EA\u884C\u5236\u4F5C\u597D\u7684\u955C\u50CF"}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:["\u90E8\u5206\u955C\u50CF\u53EF\u80FD\u65E0\u6CD5\u901A\u8FC7 docker \u8FDB\u884C\u62C9\u53D6\uFF0C\u53EF\u4EE5\u5728\u8FD9\u4E2A\u955C\u50CF\u5730\u5740\u641C\u7D22\u5E76\u83B7\u53D6\uFF1A",(0,c.jsx)(n.a,{href:"https://quay.io/search",children:"https://quay.io/search"})]}),"\n"]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"docker images"})," \u67E5\u770B\u6240\u6709 docker \u955C\u50CF\uFF08\u7B49\u4EF7\u4E8E ",(0,c.jsx)(n.code,{children:"docker image ls"}),"\uFF09"]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"docker pull hello-world"})," \u4ECE\u8FDC\u7A0B\u62C9\u53D6 hello-world \u955C\u50CF"]}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:["\u5982\u679C\u62C9\u53D6\u955C\u50CF\u914D\u7F6E\u5931\u8D25\uFF0C\u53EF\u80FD\u9700\u8981",(0,c.jsx)(n.a,{href:"#%E9%85%8D%E7%BD%AE%E4%BB%A3%E7%90%86",children:"\u914D\u7F6E\u4EE3\u7406"})]}),"\n"]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"docker rmi hello-world"})," \u5220\u9664 hello-world \u955C\u50CF"]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"docker create <image_name>"})," \u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u955C\u50CF"]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"docker run <hello-world>"})," \u542F\u52A8\u955C\u50CF\uFF08\u521B\u5EFA\u5BB9\u5668\uFF09\uFF08\u5982\u679C\u6CA1\u6709\uFF0C\u4F1A\u4ECE\u7F51\u7EDC\u4E0A\u62C9\u53D6 ",(0,c.jsx)(n.code,{children:"docker pull"}),"\uFF09\uFF0C\u989D\u5916\u53C2\u6570\u5982\u4E0B"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u4EE5\u4EA4\u4E92\u6A21\u5F0F\u8FD0\u884C ubuntu\ndocker container run -it ubuntu bash\n\n# \u591A\u4E2A\u914D\u7F6E\u53EF\u4EE5\u5206\u522B\u4E66\u5199\ndocker run --name example-name -d --env DB_NAME=gitlabhq_production --env DB_USER=gitlab --env DB_PASS=admin_99565 --env --publish 7022:22 DB_EXTENSION=pg_trgm,btree_gist --volume /srv/docker/gitlab/postgresql:/var/lib/postgresql  example-image:12.22.12\n"})}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-i"})," \u4EE5\u4EA4\u4E92\u6A21\u5F0F\u8FD0\u884C\u955C\u50CF"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-e"})," & ",(0,c.jsx)(n.code,{children:"--env"})," \u914D\u7F6E\u73AF\u5883\u53D8\u91CF\uFF08\u53EA\u63A8\u8350\u5728\u5F00\u53D1\u73AF\u5883\u4E2D\u4F7F\u7528\u73AF\u5883\u53D8\u91CF\u914D\u7F6E\u8FDE\u63A5\u7AEF\u53E3"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-d"})," & ",(0,c.jsx)(n.code,{children:"--detach"})," \u521B\u5EFA\u4E00\u4E2A\u5B88\u62A4\u5F0F\u5BB9\u5668\u5728\u540E\u53F0\u8FD0\u884C\uFF08\u5BB9\u5668\u521B\u5EFA\u540E\u81EA\u52A8\u5728\u540E\u53F0\u8FD0\u884C\uFF09"]}
1),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-t"})," \u521B\u5EFA\u542F\u52A8\u540E\u4F1A\u8FDB\u5165\u5176\u547D\u4EE4\u884C\u3002\uFF08\u52A0\u5165 ",(0,c.jsx)(n.code,{children:"-it"})," \u540E\uFF0C\u4F1A\u521B\u5EFA\u7ACB\u5373\u767B\u5F55\u8FDB\u5165\uFF0C\u5206\u914D\u4E00\u4E2A\u4F2A\u7EC8\u7AEF\uFF09"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"--name"})," \u4E3A\u521B\u5EFA\u7684\u5BB9\u5668\u547D\u540D"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-v"})," & ",(0,c.jsx)(n.code,{children:"-volume"})," \u8868\u793A\u76EE\u5F55\u6620\u5C04\u5173\u7CFB"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-w"})," & ",(0,c.jsx)(n.code,{children:"--workdir"})," \u5BB9\u5668\u7684\u5DE5\u4F5C\u76EE\u5F55\uFF08\u5982\u679C\u8DEF\u5F84\u4E0D\u5B58\u5728\uFF0C\u4F1A\u5728\u5BB9\u5668\u5185\u521B\u5EFA\u76EE\u5F55\uFF0C\u5E76\u4E14\u4F1A\u9ED8\u8BA4\u8FDB\u5165\u8BE5\u76EE\u5F55\uFF09"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"--mount"})," \u8BBE\u7F6E volume \u6620\u5C04"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-p"})," & ",(0,c.jsx)(n.code,{children:"--publish"})," \u8868\u793A\u7AEF\u53E3\u6620\u5C04\uFF08",(0,c.jsx)(n.code,{children:"-p 2022:80"})," \u5C06\u5BB9\u5668\u7684 80 \u7AEF\u53E3\u6620\u5C04\u5230\u672C\u5730\u7684 2022 \u7AEF\u53E3\u4E0A\uFF09","\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u6CA1\u6709\u7AEF\u53E3\u6620\u5C04\uFF0C\u4F60\u4E0D\u80FD\u901A\u8FC7\u7AEF\u53E3\u8FDB\u5165\u5E94\u7528\uFF08Without the port mapping, you wouldn\u2019t be able to access the application from the host.\uFF09"}),"\n"]}),"\n"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-network=host"})," \u8BA9\u5BB9\u5668\u548C\u4E3B\u673A\u5171\u4EAB\u4E00\u4E2A\u7F51\u7EDC\u7A7A\u95F4"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"--shm-size"})," \u5171\u4EAB\u5185\u5B58\u8BBE\u5B9A\u503C","\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u5171\u4EAB\u5185\u5B58\uFF1A\u5141\u8BB8\u4E24\u4E2A\u4E0D\u76F8\u5173\u7684\u8FDB\u7A0B\u8BBF\u95EE\u540C\u4E00\u4E2A\u903B\u8F91\u5185\u5B58\uFF0C\u4E24\u4E2A\u6B63\u5728\u8FD0\u884C\u7684\u8FDB\u7A0B\u4E4B\u95F4\u5171\u4EAB\u548C\u4F20\u9012\u6570\u636E\u7684\u4E00\u79CD\u6709\u6548\u65B9\u5F0F"}),"\n"]}),"\n"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"--hostname"})," \u4E3B\u673A\u540D\uFF0C\u5F53\u914D\u7F6E\u57DF\u540D\u7684\u65F6\u5019\u9700\u8981\u4F7F\u7528"]}),"\n"]}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:["\u62C9\u53D6\u540E\u7684\u955C\u50CF\u5982\u4F55\u4F7F\u7528\uFF0C\u8BF7\u53C2\u8003\u5BF9\u5E94\u955C\u50CF\u7684\u6587\u6863\uFF0C\u6216\u8005\u5728\u8BE5\u7F51\u7AD9\uFF08",(0,c.jsx)(n.a,{href:"https://hub-stage.docker.com%EF%BC%89%E8%BF%9B%E8%A1%8C%E6%90%9C%E7%B4%A2%E5%AF%B9%E5%BA%94%E7%9A%84%E9%95%9C%E5%83%8F%EF%BC%8C%E6%9F%A5%E7%9C%8B%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F",children:"https://hub-stage.docker.com\uFF09\u8FDB\u884C\u641C\u7D22\u5BF9\u5E94\u7684\u955C\u50CF\uFF0C\u67E5\u770B\u4F7F\u7528\u65B9\u5F0F"})]}),"\n"]}),"\n",(0,c.jsx)(n.h4,{id:"\u521B\u5EFA\u955C\u50CF",children:"\u521B\u5EFA\u955C\u50CF"}),"\n",(0,c.jsx)(n.p,{children:"\u521B\u5EFA\u955C\u50CF\u65F6\u5FC5\u987B\u8981\u7528\u5230 Dockerfile\uFF0C\u4F1A\u4F7F\u7528\u8BE5 Dockerfile \u6587\u4EF6\u7684\u914D\u7F6E\u751F\u6210\u4E8C\u8FDB\u5236\u7684 image \u6587\u4EF6\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u521B\u5EFA docker \u955C\u50CF\uFF0C\u5927\u81F4\u9700\u8981\u4E09\u4E2A\u6B65\u9AA4"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u521B\u5EFA Dockerfile \u6587\u4EF6"}),"\n",(0,c.jsx)(n.li,{children:"\u7F16\u5199\u6587\u4EF6\u5185\u5BB9"}),"\n",(0,c.jsxs)(n.li,{children:["\u4F7F\u7528 ",(0,c.jsx)(n.code,{children:"docker build -t getting-started ."})," \u547D\u4EE4"]}),"\n"]}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsxs)(n.p,{children:["\u6700\u540E\u7684 ",(0,c.jsx)(n.code,{children:"."})," \u7B26\u53F7\u8BF4\u660E\u53EF\u4EE5\u5728\u5F53\u524D\u6587\u4EF6\u5939\u5185\u627E\u5230 ",(0,c.jsx)(n.code,{children:"Dockerfile"})]}),"\n"]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"docker build"})," \u547D\u4EE4\u7684\u7ED3\u6784 ",(0,c.jsx)(n.code,{children:"docker build -t <image_name> <dockerfile>"})]}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"-t"})," \u662F ",(0,c.jsx)(n.code,{children:"-tag"})," \u7684\u7F29\u5199\uFF0C\u5141\u8BB8\u955C\u50CF\u6307\u5B9A\u540E\u9762\u7684\u6807\u7B7E\uFF0C\u6BD4\u5982 ",(0,c.jsx)(n.code,{children:"redis:6.2"}),"\uFF0C\u901A\u5E38\u7528\u6765\u533A\u5206\u7248\u672C"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"<image_name>"})," \u955C\u50CF\u540D\u79F0"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"<dockerfile>"})," dockerfile \u6587\u4EF6\uFF0C\u6307\u5B9A\u8DEF\u5F84"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"--platform linux/amd64"})," \u53EF\u9009\u53C2\u6570\uFF0C\u6307\u5B9A\u73AF\u5883\u4E3A linux/amd"]}),"\n"]}),"\n",(0,c.jsx)(n.h3,{id:"\u5BB9\u5668",children:"\u5BB9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u5BB9\u5668\uFF1A\u4ECE\u67D0\u4E00\u4E2A\u955C\u50CF\u5F00\u59CB\u8FD0\u884C\u7684\u70B9\uFF0C\u5E76\u4E14\u5BB9\u5668\u4E4B\u95F4\u4E92\u76F8\u72EC\u7ACB\u3002"}),"\n",(0,c.jsxs)(n.p,{children:["Linux \u6709\u4E00\u79CD\u865A\u62DF\u5316\u6280\u672F\uFF1ALinux \u5BB9\u5668\uFF08Linux Containers\uFF0C\u7F29\u5199\u4E3A LXC\uFF09\u3002Linux \u5BB9\u5668\u4E0D\u662F\u6A21\u62DF\u4E00\u4E2A\u5B8C\u6574\u7684\u64CD\u4F5C\u7CFB\u7EDF\uFF0C\u800C\u662F\u5BF9\u8FDB\u7A0B\u8FDB\u884C\u9694\u79BB\u3002\u6216\u8005\u8BF4\uFF0C\u5728\u6B63\u5E38\u8FDB\u7A0B\u7684\u5916\u9762\u5957\u4E86\u4E00\u4E2A",(0,c.jsx)(n.a,{href:"https://link.juejin.cn?target=https%3A%2F%2Fopensource.com%2Farticle%2F18%2F1%2Fhistory-low-level-container-runtimes",children:"\u4FDD\u62A4\u5C42"}),"\u3002\u5BF9\u4E8E\u5BB9\u5668\u91CC\u9762\u7684\u8FDB\u7A0B\u6765\u8BF4\uFF0C\u5B83\u63A5\u89E6\u5230\u7684\u5404\u79CD\u8D44\u6E90\u90FD\u662F\u865A\u62DF\u7684\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4E0E\u5E95\u5C42\u7CFB\u7EDF\u7684\u9694\u79BB\u3002"]}),"\n",(0,c.jsx)(n.p,{children:"\u7531\u4E8E\u5BB9\u5668\u662F\u8FDB\u7A0B\u7EA7\u522B\u7684\uFF0C\u76F8\u6BD4\u865A\u62DF\u673A\u6709\u5F88\u591A\u4F18\u52BF\u3002"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u542F\u52A8\u5FEB\uFF1A\u5BB9\u5668\u91CC\u9762\u7684\u5E94\u7528\uFF0C\u76F4\u63A5\u5C31\u662F\u5E95\u5C42\u7CFB\u7EDF\u7684\u4E00\u4E2A\u8FDB\u7A0B\uFF0C\u800C\u4E0D\u662F\u865A\u62DF\u673A\u5185\u90E8\u7684\u8FDB\u7A0B\u3002\u6240\u4EE5\uFF0C\u542F\u52A8\u5BB9\u5668\u76F8\u5F53\u4E8E\u542F\u52A8\u672C\u673A\u7684\u4E00\u4E2A\u8FDB\u7A0B\uFF0C\u800C\u4E0D\u662F\u542F\u52A8\u4E00\u4E2A\u64CD\u4F5C\u7CFB\u7EDF\uFF0C\u901F\u5EA6\u5C31\u5FEB\u5F88\u591A\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u8D44\u6E90\u5360\u7528\u5C11\uFF1A\u5BB9\u5668\u53EA\u5360\u7528\u9700\u8981\u7684\u8D44\u6E90\uFF0C\u4E0D\u5360\u7528\u90A3\u4E9B\u6CA1\u6709\u7528\u5230\u7684\u8D44\u6E90\uFF1B\u865A\u62DF\u673A\u7531\u4E8E\u662F\u5B8C\u6574\u7684\u64CD\u4F5C\u7CFB\u7EDF\uFF0C\u4E0D\u53EF\u907F\u514D\u8981\u5360\u7528\u6240\u6709\u8D44\u6E90\u3002\u53E6\u5916\uFF0C\u591A\u4E2A\u5BB9\u5668\u53EF\u4EE5\u5171\u4EAB\u8D44\u6E90\uFF0C\u865A\u62DF\u673A\u90FD\u662F\u72EC\u4EAB\u8D44\u6E90\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u4F53\u79EF\u5C0F\uFF1A\u5BB9\u5668\u53EA\u8981\u5305\u542B\u7528\u5230\u7684\u7EC4\u4EF6\u5373\u53EF\uFF0C\u800C\u865A\u62DF\u673A\u662F\u6574\u4E2A\u64CD\u4F5C\u7CFB\u7EDF\u7684\u6253\u5305\uFF0C\u6240\u4EE5\u5BB9\u5668\u6587\u4EF6\u6BD4\u865A\u62DF\u673A\u6587\u4EF6\u8981\u5C0F\u5F88\u591A\u3002"}),"\n"]}
1),"\n",(0,c.jsx)(n.p,{children:"\u603B\u4E4B\uFF0C\u5BB9\u5668\u6709\u70B9\u50CF\u8F7B\u91CF\u7EA7\u7684\u865A\u62DF\u673A\uFF0C\u80FD\u591F\u63D0\u4F9B\u865A\u62DF\u5316\u7684\u73AF\u5883\uFF0C\u4F46\u662F\u6210\u672C\u5F00\u9500\u5C0F\u5F97\u591A\u3002"}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsx)(n.p,{children:"\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u5BB9\u5668\u4E0D\u4F1A\u77E5\u9053\u540C\u4E00\u4E2A\u673A\u5668\u4E0A\uFF0C\u4EFB\u4F55\u5176\u4ED6\u7EBF\u7A0B\u6216\u8005\u5BB9\u5668\u7684\u4EFB\u4F55\u4FE1\u606F"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u4E00\u4E2A\u955C\u50CF\u53EF\u4EE5\u591A\u6B21\u8FD0\u884C\uFF0C\u4EA7\u751F\u4E0D\u540C\u7684\u5BB9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u5BB9\u5668\u76F8\u5173\u547D\u4EE4"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u67E5\u770B\u6B63\u5728\u8FD0\u884C\u7684\u5BB9\u5668\ndocker ps\ndocker ps -a # \u67E5\u770B\u6240\u6709\u5BB9\u5668\n# \u542F\u52A8\u5BB9\u5668\ndocker start <container-name & id>\n# \u505C\u6B62\u5BB9\u5668\ndocker stop <container-name & id>\n# \u5F3A\u5236\u505C\u6B62\u5BB9\u5668\ndocker kill <container-name & id>\n# \u91CD\u542F\u5BB9\u5668\ndocker restart <container-name & id>\n\n# \u4ECE\u78C1\u76D8\u4E2D\u5220\u9664\u5BB9\u5668\ndocker container rm <container-name & id>\n# \u5728\u8FD0\u884C\u7684\u6307\u5B9A\u5BB9\u5668\u4E2D\u6267\u884C\u547D\u4EE4\uFF08\u9700\u8981\u542F\u52A8\u5BB9\u5668\uFF09\ndocker exec -it <container-name & id> <command>\n# \u5728\u8FD0\u884C\u7684\u6307\u5B9A\u5BB9\u5668\u4E2D\uFF0C\u6253\u5F00 shell\ndocker exec -it <container-name & id> sh\n"})}),"\n",(0,c.jsx)(n.h4,{id:"\u5BB9\u5668\u5185\u6570\u636E\u7684\u5907\u4EFD",children:"\u5BB9\u5668\u5185\u6570\u636E\u7684\u5907\u4EFD"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u4EEC\u53EF\u4EE5\u5229\u7528 bind mount \u7684\u7279\u6027\uFF0C\u521B\u5EFA\u4E00\u4E2A\u4E3B\u673A\u548C\u5BB9\u5668\u5171\u4EAB\u7684\u76EE\u5F55\uFF0C\u5C06\u5185\u5BB9\u538B\u7F29\u8FDB\u6765\uFF0C\u7136\u540E\u4F5C\u4E3A\u5907\u4EFD\u4F7F\u7528"}),"\n",(0,c.jsx)(n.p,{children:"\u5982\u679C\u5BB9\u5668\u4E0D\u65B9\u4FBF\u505C\u7528\uFF0C\u53EF\u4EE5\u9075\u5FAA\u4EE5\u4E0B\u6B65\u9AA4"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684 ubuntu \u5BB9\u5668"}),"\n",(0,c.jsx)(n.li,{children:"\u4E3A\u8BE5\u5BB9\u5668\u521B\u5EFA volume mount\uFF08\u9700\u8981\u5907\u4EFD\u7684\u6570\u636E\u76EE\u5F55\uFF09\u548C bind mount\uFF08\u76EE\u6807\u76EE\u5F55\uFF0C\u53EF\u4E3A\u7A7A\u76EE\u5F55\uFF09"}),"\n",(0,c.jsx)(n.li,{children:"\u5C06 volume mount \u7684\u6587\u4EF6\u538B\u7F29\u5230 bind mount"}),"\n"]}),"\n",(0,c.jsx)(n.h3,{id:"volume",children:"volume"}),"\n",(0,c.jsx)(n.p,{children:"\u5BB9\u5668\u5185\u6570\u636E\u7684\u6301\u7EED\u5B58\u50A8\u65B9\u5F0F"}),"\n",(0,c.jsx)(n.p,{children:"\u5BB9\u5668\u5BF9\u6587\u4EF6\u8FDB\u884C\u7684\u4EFB\u4F55\u64CD\u4F5C\u90FD\u5C06\u4F1A\u5728\u79FB\u9664\u5BB9\u5668\uFF08container\uFF09\u540E\u4E22\u5931\uFF0CDocker \u4F1A\u9694\u7EDD container \u6240\u6709\u7684\u64CD\u4F5C\u3002volume \u80FD\u5728\u9009\u5B9A\u5BB9\u5668\u548C\u5F53\u524D\u6587\u4EF6\u7CFB\u7EDF\u8DEF\u5F84\u8FDB\u884C\u94FE\u63A5\uFF08\u6620\u5C04\uFF09\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u6240\u4EE5\u6211\u4EEC\u9700\u8981\u7528 volume \u5C06\u5B58\u50A8\u7684\u6570\u636E\uFF08\u6216\u8005\u5F00\u53D1\u7684\u5185\u5BB9\uFF09\u6620\u5C04\u5230\u64CD\u4F5C\u7CFB\u7EDF\u7684\u76EE\u5F55\u4E2D\u6765\uFF0C\u5982\u679C\u6CA1\u6709 volume\uFF0C\u4FEE\u6539\u7684\u5185\u5BB9\u5C06\u4F1A\u5F7B\u5E95\u4E22\u5931\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4E3B\u8981\u6709\u4E24\u79CD volume \u7C7B\u578B"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"volume mount\uFF1A\u5B58\u50A8\u4F60\u7684\u5E94\u7528\u6570\u636E\uFF08docker \u51B3\u5B9A\u5B58\u50A8\u4F4D\u7F6E\uFF0C\u8BA9\u5404\u4E2A\u5BB9\u5668\u4E4B\u95F4\u5171\u4EAB\u6570\u636E\uFF09"}),"\n",(0,c.jsx)(n.li,{children:"bind mount\uFF1A\u5728\u672C\u5730\u548C\u5BB9\u5668\u4E4B\u95F4\u5171\u4EAB\u4E00\u4E2A\u6587\u4EF6\u7CFB\u7EDF"}),"\n"]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.strong,{children:"volume mount"}),"\uFF08\u5177\u540D volume\uFF09"]}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:["\u521B\u5EFA\uFF1A",(0,c.jsx)(n.code,{children:"docker volume create my-volume"})]}),"\n",(0,c.jsxs)(n.li,{children:["\u83B7\u53D6 volume \u5217\u8868\uFF1A",(0,c.jsx)(n.code,{children:"docker volume ls"})]}),"\n",(0,c.jsxs)(n.li,{children:["\u5220\u9664 volume\uFF1A",(0,c.jsx)(n.code,{children:"docker volume rm my-volume"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:["\u5220\u9664\u6CA1\u6709\u4EFB\u4F55\u5BB9\u5668\u4F7F\u7528\u7684 volume\uFF1A",(0,c.jsx)(n.code,{children:"docker volumn prune -a"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u542F\u52A8\u955C\u50CF\uFF0C\u5E76\u4E14\u5C06\u76EE\u5F55\u7ED1\u5B9A\u5230 volume \u5BB9\u5668\u4E0A\ndocker run -dp 127.0.0.1:3000:3000 --mount type=bind,src=/path/to/data,target=/usr/local/data <image-name>\n# \u5982\u679C\u60F3\u58F0\u660E volume\uFF0C\u53EF\u4EE5\u66F4\u6539 type \u4E3A type=volume,src=my-volume,target=/usr/local/data\n# src \u8868\u793A\u4F7F\u7528\u7684 volume\n# target \u5BB9\u5668\u5BF9\u5E94\u7684\u8DEF\u5F84\n"})}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.strong,{children:"bind mount"}),"\uFF08\u7ED1\u5B9A volume\uFF09"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:'# --mount \u53BB\u521B\u5EFA volume\ndocker run -it --mount "type=bind,src=$pwd,target=/src" ubuntu bash\n# \u5C06\u5F53\u524D\u76EE\u5F55\u548C\u65B0\u521B\u5EFA\u7684 ubuntu \u5BB9\u5668\u6307\u5B9A\u76EE\u5F55\u8FDB\u884C\u7ED1\u5B9A\u3002 \n# \u7ED1\u5B9A\u540E\uFF0C\u5982\u679C\u7ED1\u5B9A\u76EE\u5F55\u5B58\u5728\u5185\u5BB9\uFF0C\u4F1A\u5C06\u5BB9\u5668\u5185\u7684\u76EE\u5F55\u5C4F\u853D\uFF08\u4E0D\u4F1A\u5220\u9664\u6216\u8005\u4FEE\u6539\uFF0C\u4F46\u662F\u4
1E5F\u4E0D\u80FD\u4F7F\u7528\uFF09\uFF0C\u4F7F\u7528\u672C\u5730\u6587\u4EF6\u5939\u4EE3\u66FF mount \u6587\u4EF6\u5939\u4F7F\u7528\n'})}),"\n",(0,c.jsxs)(n.blockquote,{children:["\n",(0,c.jsx)(n.p,{children:"\u5982\u679C\u6307\u5B9A\u7684 volume \u4E0D\u5B58\u5728\uFF0Cdocker \u9ED8\u8BA4\u4F1A\u521B\u5EFA\u8BE5 volume \u7684\u5185\u5BB9"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"volume mount \u5982\u679C\u6CA1\u6709\u5185\u5BB9\uFF0C\u6DFB\u52A0\u540E\u9ED8\u8BA4\u5185\u5BB9\u5C06\u4F1A\u662F\u5BB9\u5668\u4E2D\u76EE\u5F55\u5185\u7684\u5185\u5BB9"}),"\n",(0,c.jsxs)(n.li,{children:["bind mount \u7ED1\u5B9A\u540E\uFF0C\u5982\u679C\u7ED1\u5B9A\u76EE\u5F55\u5B58\u5728\u5185\u5BB9\uFF0C\u4F1A",(0,c.jsx)(n.strong,{children:"\u5C4F\u853D\u5BB9\u5668\u5185\u7684\u76EE\u5F55"}),"\uFF08\u4E0D\u4F1A\u5220\u9664\u6216\u8005\u4FEE\u6539\uFF0C\u4F46\u662F\u4E5F\u4E0D\u80FD\u4F7F\u7528\uFF09\uFF0C\u4F7F\u7528\u672C\u5730\u6587\u4EF6\u5939\u4EE3\u66FF mount \u7684\u6587\u4EF6\u5939\u4F7F\u7528\u3002"]}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"bind mount \u5173\u8054\u7684\u6587\u4EF6\u7CFB\u7EDF\uFF0C\u5982\u679C\u5728\u5BB9\u5668\u5185\u8FD0\u884C\uFF0C\u5C31\u662F\u8C03\u7528\u5BB9\u5668\u7684 api \u548C\u529F\u80FD\uFF0C\u5982\u679C\u5728\u672C\u5730\u8FD0\u884C\uFF0C\u5C31\u662F\u8C03\u7528\u672C\u5730\u7684\u529F\u80FD\u3002\u63A8\u8350\u5E94\u7528\u573A\u666F\uFF1A"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u672C\u5730\u548C\u5BB9\u5668\u95F4\u5171\u4EAB\u914D\u7F6E\u6587\u4EF6"}),"\n",(0,c.jsx)(n.li,{children:"\u63D0\u4F9B\u6E90\u7801\u6216\u8005\u5728\u73AF\u5883\u4E2D\u6784\u5EFA"}),"\n"]}),"\n"]}),"\n",(0,c.jsxs)(n.table,{children:[(0,c.jsx)(n.thead,{children:(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.th,{}),(0,c.jsx)(n.th,{children:"Named volumes"}),(0,c.jsx)(n.th,{children:"Bind mounts"})]})}),(0,c.jsxs)(n.tbody,{children:[(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"\u672C\u5730\u5B58\u653E\u4F4D\u7F6E"}),(0,c.jsx)(n.td,{children:"Docker \u51B3\u5B9A"}),(0,c.jsx)(n.td,{children:"\u81EA\u5DF1\u51B3\u5B9A"})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"\u8986\u76D6\u65B0\u5BB9\u5668\u7684\u5185\u5BB9"}),(0,c.jsx)(n.td,{children:"\u662F"}),(0,c.jsx)(n.td,{children:"\u5426"})]})]})]}),"\n",(0,c.jsx)(n.h3,{id:"\u7F51\u7EDC",children:"\u7F51\u7EDC"}),"\n",(0,c.jsx)(n.p,{children:"\u5BB9\u5668\u4E4B\u95F4\u7684\u6C9F\u901A\u65B9\u5F0F"}),"\n",(0,c.jsx)(n.p,{children:"\u7F51\u7EDC\u9ED8\u8BA4\u4E3A\u6865\u63A5\u6A21\u5F0F\uFF0C\u6BCF\u4E00\u4E2A\u5BB9\u5668\u90FD\u5206\u914D\u4E00\u4E2A IP \u5730\u5740\uFF0C\u53EF\u4EE5\u901A\u8FC7 IP \u5730\u5740\u8FDB\u884C\u8BBF\u95EE\uFF0C\u4F46\u548C\u5BBF\u4E3B\u673A\u662F\u9694\u79BB\u7684"}),"\n",(0,c.jsx)(n.p,{children:"\u53EF\u4EE5\u521B\u5EFA\u5B50\u7F51\uFF0C\u540C\u4E00\u4E2A\u5B50\u7F51\u53EF\u4EE5\u4E92\u76F8\u901A\u4FE1\uFF08ip\uFF0C\u6216\u5BB9\u5668\u7684\u540D\u5B57\uFF09\uFF0C\u8DE8\u5B50\u7F51\u4E0D\u53EF\u4EE5\u901A\u4FE1"}),"\n",(0,c.jsx)(n.p,{children:"\u6BCF\u4E2A\u5BB9\u5668\u90FD\u6709\u56FA\u5B9A\u7684 ip\uFF0C\u4E3A\u5BB9\u5668\u6DFB\u52A0\u7F51\u7EDC\u6709\u4E24\u79CD\u65B9\u5F0F"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u65
1B9\u6CD5\u4E00\uFF1A\u901A\u8FC7\u955C\u50CF\u521B\u5EFA\u5BB9\u5668\u7684\u65F6\u5019"}),"\n",(0,c.jsx)(n.li,{children:"\u65B9\u6CD5\u4E8C\uFF1A\u5411\u5DF2\u6709\u7684\u5BB9\u5668\u6DFB\u52A0\u7F51\u7EDC"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u65E0\u8BBA\u54EA\u4E2A\u65B9\u6CD5\uFF0C\u9996\u5148\u5148\u6DFB\u52A0\u7F51\u7EDC"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-powershell",children:"docker network create todo-app\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u65B9\u6CD5\u4E00\uFF1A"}),"\n",(0,c.jsx)(n.p,{children:"\u521B\u5EFA\u65F6\u94FE\u63A5\u7F51\u7EDC"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-powershell",children:"docker run -d `\n  --network todo-app --network-alias mysql `\n  -v todo-mysql-data:/var/lib/mysql `\n  -e MYSQL_ROOT_PASSWORD=secret `\n  -e MYSQL_DATABASE=todos `\n  mysql:8.0\n# \u901A\u8FC7 --network todo-app \u6307\u5B9A\u7F51\u7EDC\n# --network-alias \u4E3A\u7F51\u7EDC\u547D\u540D\uFF0C\u5BB9\u5668\u5185\u90E8\u641C\u7D22\u7F51\u7EDC\u65F6\uFF0C\u53EF\u4EE5\u901A\u8FC7\u8BE5\u522B\u540D\u641C\u7D22\uFF0C\u5E76\u4E14\u53EF\u4EE5\u5C06\u5176\u5B83\u5BB9\u5668\u7684 HOST \u914D\u7F6E\u4E3A\u8BE5\u522B\u540D\n"})}
1),"\n",(0,c.jsx)(n.p,{children:"\u65B9\u6CD5\u4E8C\uFF1A\u5C06\u5E94\u7528\u5BB9\u5668\u6302\u8F7D\u5230\u7F51\u7EDC\u4E0A"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"docker\xa0network\xa0connect\xa0<network_id\xa0or\xa0network_name>\xa0<container_id\xa0or\xa0container_name>\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u7F51\u7EDC\u76F8\u5173\u547D\u4EE4"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u5217\u51FA\u6240\u6709\u7F51\u7EDC\ndocker network ls\n# \u521B\u5EFA\u4E00\u4E2A\u7F51\u7EDC\ndocker network create todo-app\n# \u521B\u5EFA\u7F51\u7EDC\ndocker\xa0network\xa0create\xa0--driver\xa0<driver-name>\xa0<bridge-name>\n# \u5BB9\u5668\u8FDE\u63A5\u5230\u7F51\u7EDC\ndocker\xa0network\xa0connect\xa0<network_id\xa0or\xa0network_name>\xa0<container_id\xa0or\xa0container_name>\n# \u65AD\u5F00\u5BB9\u5668\u548C\u7F51\u7EDC\u7684\u94FE\u63A5\ndocker\xa0network\xa0disconnect\xa0<network_name_or_id>\xa0<container_name_or_id>\n# \u79FB\u9664\u7F51\u7EDC\ndocker network rm <network_id\xa0or\xa0network_name>\n\n## \u4F7F\u7528 host \u6A21\u5F0F\uFF0C\u5171\u4EAB\u4E3B\u673A\u7684\u7F51\u7EDC\ndocker run -d --network host mysql:8.0\n"})}),"\n",(0,c.jsx)(n.h3,{id:"\u65E5\u5FD7",children:"\u65E5\u5FD7"}),"\n",(0,c.jsx)(n.p,{children:"\u7CFB\u7EDF\u8FD0\u884C\u65F6\uFF0C\u547D\u4EE4\u884C\u8F93\u51FA\u7684\u5185\u5BB9"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u83B7\u53D6\u5BB9\u5668\u65E5\u5FD7 docker\ndocker container logs <container_id or container_name>\ndocker logs <container_id or container_name>\n# \u76D1\u63A7\u5BB9\u5668\u65E5\u5FD7\ndocker\xa0container\xa0logs\xa0-f\xa0<container_id\xa0or\xa0container_name>\n"})}),"\n",(0,c.jsx)(n.h3,{id:"\u955C\u50CF\u548C\u5BB9\u5668\u7684\u5BFC\u51FA",children:"\u955C\u50CF\u548C\u5BB9\u5668\u7684\u5BFC\u51FA"}),"\n",(0,c.jsx)(n.p,{children:"\u90E8\u7F72 docker \u5BB9\u5668\u4F1A\u9047\u5230\u7F51\u7EDC\u95EE\u9898\uFF0C\u6BD4\u5982\u670D\u52A1\u5668\u5728\u5185\u7F51\uFF0C\u4E0D\u80FD\u8FDE\u63A5\u5916\u7F51\u7684\u60C5\u51B5\uFF0C\u6216\u8005\u7F51\u7EDC\u4E0B\u8F7D\u6162\uFF0C\u4E0D\u901A\u7545\uFF1B\u6211\u4EEC\u5C31\u53EF\u4EE5\u7F16\u8BD1\u3001\u5BFC\u51FA\u955C\u50CF\u540E\u5728\u5185\u7F51\u670D\u52A1\u5668\u5BFC\u5165\uFF0C\u5C31\u53EF\u4EE5\u5B9E\u73B0\u5185\u7F51\u90E8\u7F72\u3002"}),"\n",(0,c.jsx)(n.p,{children:(0,c.jsx)(n.strong,{children:"\u955C\u50CF\u5BFC\u51FA"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u955C\u50CF\u7684\u5BFC\u51FA\ndocker save img:latest > img.tar\n# \u6216\u8005\ndocker save -o img.tar img:latest\n# \u5C06\u955C\u50CF\u6253\u5305\u4E3A tar \u6587\u4EF6\n# \u5BFC\u51FA\u955C\u50CF\u5C3D\u91CF\u4F7F\u7528 image:tag \u7684\u5F62\u5F0F\uFF0C\u4F7F\u7528\u955C\u50CF id \u5BB9\u6613\u51FA\u73B0\u5BFC\u5165\u540E\u955C\u50CF\u540D\u51FA\u73B0 <none> \u7684\u60C5\u51B5\n\n# \u591A\u4E2A\u955C\u50CF\u540C\u65F6\u5BFC\u51FA\u4E3A\u4E00\u4E2A\u6587\u4EF6\ndocker save img1:latest img2:latest > img.tar\n\n"})}),"\n",(0,c.jsx)(n.p,{children:(0,c.jsx)(n.strong,{children:"\u955C\u50CF\u5BFC\u5165"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u5C06\u5BFC\u51FA\u7684\u955C\u50CF\u5BFC\u5165\ndocker load < img.tar\n"})}),"\n",(0,c.jsx)(n.p,{children:(0,c.jsx)(n.strong,{children:"\u5BB9\u5668\u5BFC\u51FA"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u5C06\u5BB9\u5668\u5BFC\u51FA\u4E3A server.tar \u6587\u4EF6\ndocker export 3e877a80b319 > server.tar\n"})}),"\n",(0,c.jsx)(n.p,{children:(0,c.jsx)(n.strong,{children:"\u5BB9\u5668\u5BFC\u5165"})}),"\n",(0,c.jsx)(n.p,{children:"\u5BFC\u5165\u540E\u7684\u5BB9\u5668\u6587\u4EF6\u4F1A\u6210\u4E3A\u4E00\u4E2A\u955C\u50CF\uFF0C\u6211\u4EEC\u53EF\u4EE5\u4E3A\u5B83\u6307\u5B9A\u65B0\u7684\u540D\u79F0\uFF0C\u5982\u679C\u5B58\u5728\u540C\u540D\u955C\u50CF\uFF0C\u539F\u6709\u7684\u540D\u79F0\u4F1A\u88AB\u5265\u593A\uFF0C\u8D4B\u7ED9\u65B0\u7684\u955C\u50CF\u3002"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"# \u5C06 server.tar \u6587\u4EF6\u5BFC\u5165\u4E3A\u955C\u50CF\nd
1ocker import server.tar my-server:latest\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u5DE5\u7A0B\u5316",children:"\u5DE5\u7A0B\u5316"}),"\n",(0,c.jsx)(n.h3,{id:"\u591A\u5BB9\u5668\u5E94\u7528",children:"\u591A\u5BB9\u5668\u5E94\u7528"}),"\n",(0,c.jsx)(n.p,{children:"In general, each container should do one thing and do it well."}),"\n",(0,c.jsx)(n.p,{children:"\u901A\u5E38\u6765\u8BB2\uFF0C\u6BCF\u4E2A\u5BB9\u5668\u5E94\u8BE5\u53EA\u505A\u4E00\u4EF6\u4E8B\uFF0C\u5E76\u4E14\u628A\u4E8B\u60C5\u505A\u597D\uFF0C\u6240\u4EE5\u955C\u50CF\u9700\u8981\u529F\u80FD\u76F8\u4E92\u72EC\u7ACB\u3002"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"\u72EC\u7ACB\u5BB9\u5668\u53EF\u4EE5\u7B80\u5316\u524D\u5BF9\u524D\u7AEF\uFF0C\u548C\u6570\u636E\u5E93\u505A\u4E0D\u540C\u7684\u6269\u5C55\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5206\u79BB\u7684\u5BB9\u5668\uFF0C\u80FD\u66F4\u597D\u7684\u9694\u79BB\u4EE5\u53CA\u66F4\u65B0\u5BB9\u5668\u5185\u5BB9\u7684\u7248\u672C\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u8FD0\u884C\u591A\u7EBF\u7A0B\uFF0C\u5C06\u4F1A\u9700\u8981\u8FDB\u7A0B\u7BA1\u7406\u5668\uFF08\u589E\u52A0\u5BB9\u5668\u542F\u52A8\u548C\u5173\u95ED\u590D\u6742\u6027\uFF09\u3002\u5BB9\u5668\u53EA\u4F1A\u4F7F\u7528\u4E00\u4E2A\u8FDB\u7A0B\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h3,{id:"dockerfile",children:"Dockerfile"}),"\n",(0,c.jsx)(n.p,{children:"\u521B\u5EFA\u955C\u50CF\u5FC5\u987B\u4F7F\u7528 Dockerfile\uFF0CDockerfile \u6587\u6863\u4F1A\u5305\u542B\u4E00\u4E2A\u7528\u6237\u5728\u547D\u4EE4\u884C\u8C03\u7528\u53BB\u7EC4\u88C5 image \u7684\u6240\u6709\u547D\u4EE4"}),"\n",(0,c.jsx)(n.p,{children:"\u5305\u62EC\u4ECE\u54EA\u4E2A\u955C\u50CF\u8FDB\u884C\u6784\u5EFA\u3001\u5DE5\u4F5C\u76EE\u5F55\u7B49\u4E00\u7CFB\u5217\u5185\u5BB9"}),"\n",(0,c.jsx)(n.p,{children:"\u793A\u4F8B\uFF1A"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-dockerfile",children:"# Dockerfile \u914D\u7F6E\u6587\u4EF6\n# \u683C\u5F0F\uFF1A\u547D\u4EE4 \u5185\u5BB9\nFROM node:8.4\nCOPY . /app # \u5C06 . \u5F53\u524D\u76EE\u5F55\u7684\u5185\u5BB9\uFF0C\u90FD\u62F7\u8D1D\u5230 ./app \u76EE\u5F55\u4E0B\nWORKDIR /app # \u5C06 /app \u8BBE\u5B9A\u4E3A\u5DE5\u4F5C\u8DEF\u5F84\nRUN npm install --registry=https://registry.npm.taobao.org # \u5728\u5927\u5305\u4E3A\u955C\u50CF\u65F6\uFF0C\u6267\u884C\u547D\u4EE4\nEXPOSE 3000 # \u66B4\u9732\u7684\u7AEF\u53E3\uFF0C\u4F1A\u5728 -p \u4F7F\u7528\u5230\n"})}),"\n",(0,c.jsx)(n.h3,{id:"docker-compose",children:"docker-compose"}),"\n",(0,c.jsx)(n.p,{children:"\u5982\u679C\u5C06\u914D\u7F6E\u5168\u5728\u547D\u4EE4\u884C\u91CC\u4E66\u5199\uFF0C\u4E0D\u5BB9\u6613\u4FDD\u5B58\uFF0C\u4E14\u4E00\u6B21\u53EA\u80FD\u751F\u6210\u4E00\u4E2A\u5BB9\u5668\uFF0C\u4FEE\u6539\u548C\u67E5\u627E\u4E0A\u4E0B\u6587\u4E5F\u4E0D\u65B9\u4FBF\u3002"}),"\n",(0,c.jsxs)(n.p,{children:["\u4EE5 docker-compose \u6765\u8FD0\u884C\u547D\u4EE4\uFF0C\u53EF\u4EE5\u89E3\u51B3\u4E0A\u9762\u7684\u95EE\u9898\u3002\u5373\uFF0C\u901A\u8FC7\u4E00\u4E2A ",(0,c.jsx)(n.code,{children:"docker-compose.yml"})," \u6587\u4EF6\u751F\u6210\u591A\u4E2A\u5BB9\u5668\u3002"]}),"\n",(0,c.jsx)(n.p,{children:"\u5F53\u6211\u4EEC\u4F7F\u7528 docker compose \u540E\uFF0C\u4E00\u884C\u7B80\u5355\u7684\u547D\u4EE4\uFF0C\u5C31\u53EF\u4EE5\u98DE\u901F\u521B\u5EFA\u5BB9\u5668"}),"\n",(0,c.jsx)(n.h3,{id:"\u81EA\u52A8\u5316\u90E8\u7F72",children:"\u81EA\u52A8\u5316\u90E8\u7F72"}),"\n",(0,c.jsxs)(n.p,{children:["\u4F7F\u7528 ",(0,c.jsx)(n.code,{children:"docker"})," + ",(0,c.jsx)(n.code,{children:"jenkins"})," \u80FD\u5B9E\u73B0\u4EE3\u7801\u63D0\u4EA4\u5230 github \u540E\u81EA\u52A8\u90E8\u7F72\u73AF\u5883"]}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"docker login"})," \u8FDB\u884C\u767B\u5F55"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"docker login -u username"})," \u6307\u5B9A\u7528\u6237\u540D\u79F0"]}),"\n",(0,c.jsxs)(n.li,{children:[(0,c.jsx)(n.code,{children:"docker push username/image-name"})," \u5C06\u955C\u50CF\u63A8\u9001\u5230 docker hub"]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u9644\u5F55",children:"\u9644\u5F55"}),"\n",(0,c.jsx)(n.h3,{id:"\u914D\u7F6E\u4EE3\u7406",children:"\u914D\u7F6E\u4EE3\u7406"}),"\n",(0,c.jsx)(n.p,{children:(0,c.jsx)(n.strong,{children:"linux"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"sudo vi /etc/docker/daemon.json\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\u8F93\u5165\u4EE5\u4E0B\u5185\u5BB9\uFF0C\u6309 ",(0,c.jsx)(n.code,{children:"ESC"})," \u952E\uFF0C\u8F93\u5165 ",(0,c.jsx)(n.code,{children:":wq!"})," \u4FDD\u5B58\u9000\u51FA"]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-text",children:'{\n    "registry-mirrors": [\n        "https://docker.m.daocloud.io",\n        "https://docker.1panel.live",\n        "https://hub.rat.dev"\n    ]\n}\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u518D\u91CD\u542F docker"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-bash",children:"sudo service docker restart\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u53C2\u8003\u6587\u7AE0",children:"\u53C2\u8003\u6587\u7AE0"}),"\n",(0,c.jsxs)(n.table,{children:[(0,c.jsx)(n.thead,{children:(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.th,{children:"\u4F5C\u8005"}),(0,c.jsx)(n.th,{children:"\u6587\u7AE0\u540D\u79F0"})]})}),(0,c.jsxs)(n.tbody,{children:[(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"\u7231\u7B11\u7684\u67B6\u6784\u5E08"}),(0,c.jsx)(n.td,{children:(0,c.jsx)(n.a,{href:"https://juejin.cn/post/6913568633813729294",children:"5\u5206\u949F\u5E26\u4F60\u5FEB\u901F\u4E86\u89E3Docker\u548Ck8s"})})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"wljslmz"}),(0,c.jsx)(n.td,{children:(0,c.jsx)(n.a,{href:"https://juejin.cn/post/7127082572399509511",children:"Docker\u5C0F\u767D\u7684\u798F\u97F3\uFF1A50\u6761Docker\u547D\u4EE4\u6E05\u5355\uFF0C\u5E72\u5C31\u5B8C\u4E86\uFF01"})})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"Rain_or_Shine"}),(0,c.jsx)(n.td,{children:(0,c.jsx)(n.a,{href:"https://juejin.cn/post/6844903561432662023",children:"Docker \u5165\u95E8\u6559\u7A0B-\u962E\u4E00\u5CF0"})})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"\u5929\u884C\u65E0\u5FCC"}),(0,c.jsx)(n.td,{children:(0,c.jsx)(n.a,{href:"https://juejin.cn/post/7188341548692537402",children:"WEB\u5F00\u53D1\u4EBA\u5458\u5E94\u8BE5\u77E5\u9053 10 \u4E2A Docker \u547D\u4EE4"})})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"\u6768\u9AD8\u8D85"}),(0,c.jsx)(n.td,{children:(0,c.jsx)(n.a,{href:"https://juejin.cn/post/6844903544496062472",children:"\u901A\u8FC7 docker \u642D\u5EFA\u81EA\u7528\u7684 gitlab \u670D\u52A1"})})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"\u5B98\u65B9\u6587\u6863"}),(0,c.jsx)(n.td,{children:(0,c.jsx)(n.a,{href:"https://docs.docker.com/get-started/02_our_app/",children:"https://docs.docker.com/get-started/02_our_app/"})})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{children:"\u4F73\u5E86"}),(0,c.jsx)(n.td,{children:(0,c.jsx)(n.a,{href:"https://juejin.cn/post/7220730324752859195",children:"docker-compose\u8BB2\u89E3\u4E0E\u5B89\u88C5"})})]}),(0,c.jsxs)(n.tr,{children:[(0,c.jsx)(n.td,{}),(0,c.jsx)(n.td,{})]})]})]})]})}function a(e={}){let{wrapper:n}={...(0,d.a)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(t,{...e})}):t(e)}},97806:function(e,n,r){r.d(n,{Z:()=>i,a:()=>s});var l=r(75271);let c={},d=l.createContext(c);function s(e){let n=l.useContext(d);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:s(e.components),l.createElement(d.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.