[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-config":3,"primary-menu":20,"tags-cloud":109,"tagposts-docker-2":293},{"config":4,"socialLinks":19},{"title":5,"subtitle":6,"logoUrl":7,"faviconUrl":8,"footerText":9,"beianIcp":10,"beianPublicSecurity":9,"seoDescription":11,"seoKeywords":12,"homepageTitle":13,"homepageSubtitle":14,"analyticsHeadCode":15,"planetQrcodeUrl":16,"planetIntroHtml":9,"planetCtaText":17,"updatedAt":18},"编码世界","用编码改变世界","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F2026\u002F09\u002F2f277021172f43f6bb34e1c115760b7f.png","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F2026\u002F09\u002Fdcbad022e68c4a729a5dc4997a9bba8a.png","","苏ICP备2026073884号","编码世界（mashangan.com）是面向 Java 后端与 Go 语言的系统化编程教程站：提供\nMyBatis Plus、Lombok、Java 8、IDEA、Docker 等原创图文教程，以及 JVM、并发、\nSpring、MySQL、Redis、消息队列、计算机网络等大厂面试八股题库，另有可落地的\n项目实战系列，帮你从入门到精通。","编码世界,Java教程,Go语言教程,Docker教程,MyBatis Plus教程,Lombok教程, Java 8新特性,IDEA教程,Java面试题,八股文,JVM面试题,Java并发面试题, MySQL面试题,Redis面试题,Spring面试题,消息队列面试题,高并发,分库分表, Netty面试题,计算机网络面试题,AI Agent,RAG,程序员学习路线","Java全栈系统化编程教程","覆盖 MyBatis Plus、Lombok、Java 8、IDEA、Go、Docker 等原创图文教程，配套大厂面试八股题库，从入门到精通，持续更新","\u003Cscript>\nvar _hmt = _hmt || [];\n(function() {\n  var hm = document.createElement(\"script\");\n  hm.src = \"https:\u002F\u002Fhm.baidu.com\u002Fhm.js?f00af7e56d956c02e11efed4131379b0\";\n  var s = document.getElementsByTagName(\"script\")[0]; \n  s.parentNode.insertBefore(hm, s);\n})();\n\u003C\u002Fscript>\n","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F2026\u002F09\u002Fc1a8f5de46584d3eb0bc762c180a5db9.png","扫码加入知识星球","2026-10-05T13:09:51.904487Z",[],{"metadata":21,"spec":24,"menuItems":35},{"name":22,"creationTimestamp":23},"primary","2026-09-12T06:13:55.024154Z",{"displayName":25,"menuItems":26},"主菜单",[27,28,29,30,31,32,33,34],"88c3f10b-321c-4092-86a8-70db00251b74","menu-item-izrtmxer","c4c814d1-0c2c-456b-8c96-4864965fee94","menu-item-tags","menu-item-column","menu-item-tools","menu-item-zsxq","menu-item-ocrxlczu",[36,45,55,64,73,82,91,100],{"displayName":37,"metadata":38,"spec":40,"status":43,"children":44},"首页",{"name":27,"creationTimestamp":39},"2026-09-12T06:13:54.422830Z",{"displayName":37,"href":41,"priority":42,"menuName":22},"\u002F",0,{"displayName":37,"href":41},[],{"displayName":46,"metadata":47,"spec":49,"status":53,"children":54},"Java面试八股",{"name":28,"creationTimestamp":48},"2026-09-13T09:42:02.854891Z",{"displayName":46,"href":50,"target":51,"priority":52,"menuName":22},"\u002Fjava-interview","_self",1,{"displayName":46,"href":50},[],{"displayName":56,"metadata":57,"spec":59,"status":62,"children":63},"文章",{"name":29,"creationTimestamp":58},"2026-09-12T06:13:54.457307Z",{"displayName":56,"href":60,"priority":61,"menuName":22},"\u002Farchives",2,{"displayName":56,"href":60},[],{"displayName":65,"metadata":66,"spec":68,"status":71,"children":72},"标签",{"name":30,"creationTimestamp":67},"2026-10-07T00:42:42.754151Z",{"displayName":65,"href":69,"priority":70,"menuName":22},"\u002Ftags",3,{"displayName":65,"href":69},[],{"displayName":74,"metadata":75,"spec":77,"status":80,"children":81},"项目实战",{"name":31,"creationTimestamp":76},"2026-09-14T00:35:08.138170Z",{"displayName":74,"href":78,"target":51,"priority":79,"menuName":22},"\u002Fcolumn",4,{"displayName":74,"href":78},[],{"displayName":83,"metadata":84,"spec":86,"status":89,"children":90},"在线工具",{"name":32,"creationTimestamp":85},"2026-09-14T00:35:08.171474Z",{"displayName":83,"href":87,"target":51,"priority":88,"menuName":22},"\u002Ftools",5,{"displayName":83,"href":87},[],{"displayName":92,"metadata":93,"spec":95,"status":98,"children":99},"知识星球",{"name":33,"creationTimestamp":94},"2026-09-14T00:35:08.199145Z",{"displayName":92,"href":96,"target":51,"priority":97,"menuName":22},"\u002Fzsxq",6,{"displayName":92,"href":96},[],{"displayName":101,"metadata":102,"spec":104,"status":107,"children":108},"特价云服务",{"name":34,"creationTimestamp":103},"2026-09-25T15:30:59.201614Z",{"displayName":101,"href":105,"target":51,"priority":106,"menuName":22},"\u002Fserver",7,{"displayName":101,"href":105},[],[110,117,124,131,138,145,152,159,166,172,178,184,191,197,203,209,215,221,227,233,239,245,251,257,263,269,275,281,287],{"metadata":111,"spec":113,"postCount":116},{"name":112},"tag-04980744",{"displayName":114,"slug":115},"面试题","interview",118,{"metadata":118,"spec":120,"postCount":123},{"name":119},"tag-93f725a0",{"displayName":121,"slug":122},"Java","java",68,{"metadata":125,"spec":127,"postCount":130},{"name":126},"tag-05b6053c",{"displayName":128,"slug":129},"Docker","docker",43,{"metadata":132,"spec":134,"postCount":137},{"name":133},"tag-1cba77c3",{"displayName":135,"slug":136},"IDEA","idea",32,{"metadata":139,"spec":141,"postCount":144},{"name":140},"tag-116a0109",{"displayName":142,"slug":143},"数字孪生","digital-twin",19,{"metadata":146,"spec":148,"postCount":151},{"name":147},"tag-a2fb95ac",{"displayName":149,"slug":150},"MyBatis Plus","mybatis-plus",18,{"metadata":153,"spec":155,"postCount":158},{"name":154},"tag-cc6220f9",{"displayName":156,"slug":157},"Lombok","lombok",15,{"metadata":160,"spec":162,"postCount":165},{"name":161},"tag-2a2d595e",{"displayName":163,"slug":164},"Spring","spring",10,{"metadata":167,"spec":169,"postCount":165},{"name":168},"tag-1d8a4975",{"displayName":170,"slug":171},"消息队列","mq",{"metadata":173,"spec":175,"postCount":165},{"name":174},"tag-17245299",{"displayName":176,"slug":177},"并发","concurrency",{"metadata":179,"spec":181,"postCount":165},{"name":180},"tag-4921c0e2",{"displayName":182,"slug":183},"AI","ai",{"metadata":185,"spec":187,"postCount":190},{"name":186},"tag-53bb7900",{"displayName":188,"slug":189},"卫星仿真","satellite",9,{"metadata":192,"spec":194,"postCount":88},{"name":193},"tag-62377bcf",{"displayName":195,"slug":196},"Spring Cloud","spring-cloud",{"metadata":198,"spec":200,"postCount":88},{"name":199},"tag-81c3b080",{"displayName":201,"slug":202},"MySQL","mysql",{"metadata":204,"spec":206,"postCount":88},{"name":205},"tag-86a1b907",{"displayName":207,"slug":208},"Redis","redis",{"metadata":210,"spec":212,"postCount":88},{"name":211},"tag-18897dcf",{"displayName":213,"slug":214},"Elasticsearch","elasticsearch",{"metadata":216,"spec":218,"postCount":88},{"name":217},"tag-6ce80d8e",{"displayName":219,"slug":220},"JVM","jvm",{"metadata":222,"spec":224,"postCount":88},{"name":223},"tag-aa4e1b8c",{"displayName":225,"slug":226},"Dubbo","dubbo",{"metadata":228,"spec":230,"postCount":88},{"name":229},"tag-9e30c249",{"displayName":231,"slug":232},"Netty","netty",{"metadata":234,"spec":236,"postCount":88},{"name":235},"tag-2199ace5",{"displayName":237,"slug":238},"ZooKeeper","zookeeper",{"metadata":240,"spec":242,"postCount":88},{"name":241},"tag-7c298a76",{"displayName":243,"slug":244},"设计模式","design-pattern",{"metadata":246,"spec":248,"postCount":88},{"name":247},"tag-6cf6cea9",{"displayName":249,"slug":250},"高可用","high-availability",{"metadata":252,"spec":254,"postCount":88},{"name":253},"tag-918786ab",{"displayName":255,"slug":256},"分库分表","sharding",{"metadata":258,"spec":260,"postCount":88},{"name":259},"tag-91e02cd2",{"displayName":261,"slug":262},"计算机网络","network",{"metadata":264,"spec":266,"postCount":88},{"name":265},"tag-dd302f94",{"displayName":267,"slug":268},"操作系统","os",{"metadata":270,"spec":272,"postCount":88},{"name":271},"tag-1b359d87",{"displayName":273,"slug":274},"Tomcat","tomcat",{"metadata":276,"spec":278,"postCount":79},{"name":277},"tag-f0d71b77",{"displayName":279,"slug":280},"MyBatis","mybatis",{"metadata":282,"spec":284,"postCount":52},{"name":283},"tag-a118a308",{"displayName":285,"slug":286},"时序数据库","tsdb",{"metadata":288,"spec":290,"postCount":42},{"name":289},"tag-34d1f91f",{"displayName":291,"slug":292},"Go","go",{"page":61,"size":294,"total":130,"items":295,"first":305,"last":305,"hasNext":311,"hasPrevious":311,"totalPages":70},20,[296,332,359,385,410,436,461,486,511,536,561,586,611,636,662,688,714,740,766,792],{"metadata":297,"spec":300,"status":312,"categories":316,"tags":328},{"name":298,"creationTimestamp":299},"post-docker-repository-9d5fb9d2","2026-09-12T08:28:31.303127Z",{"title":301,"slug":302,"cover":9,"excerpt":303,"publishTime":306,"categories":307,"tags":309,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 仓库","docker-repository",{"raw":304,"autoGenerate":305},"一个 Docker Registry 中可以包含多个仓库（Repository）；每个仓库可以包含多个标签（Tag）；每个标签对应一个镜像 ...",false,"2026-09-12T08:28:31.370426Z",[308],"test-docker-cat",[126],"PUBLIC",true,{"permalink":313,"excerpt":304,"lastModifyTime":314,"phase":315},"\u002Farchives\u002Fdocker-repository","2026-09-12T08:28:31.308023Z","PUBLISHED",[317],{"metadata":318,"spec":322,"status":326,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":320},"2026-09-12T08:20:41.272236Z",{"tutorial.halo.run\u002Fstatus":321},"updating",{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},"Docker 教程","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002Ftutorial-cover-docker.png","Docker 容器化实战教程：镜像与容器、Dockerfile、Docker Compose 及常用中间件部署。",{"permalink":327,"postCount":130,"visiblePostCount":130},"\u002Fcategories\u002Fdocker",[329],{"metadata":330,"spec":331},{"name":126},{"displayName":128,"slug":129},{"metadata":333,"spec":336,"status":345,"categories":349,"tags":355},{"name":334,"creationTimestamp":335},"post-docker-remove-image-22a14910","2026-09-12T08:28:30.044587Z",{"title":337,"slug":338,"cover":339,"excerpt":340,"publishTime":342,"categories":343,"tags":344,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 删除镜像","docker-remove-image","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165641372835974.jpg",{"raw":341,"autoGenerate":305},"大家好，本小节中，将学习 Docker 如何删除镜像。有两种方式，分别是通过标签删除镜像，以及通过 ID 删除镜像。","2026-09-12T08:28:30.170036Z",[308],[126],{"permalink":346,"excerpt":347,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-remove-image","本小节中，将学习 Docker 如何删除镜像。有两种方式，分别是通过标签删除镜像，以及通过 ID 删除镜像。","2026-09-30T21:46:10.902063Z",[350],{"metadata":351,"spec":353,"status":354,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":352},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[356],{"metadata":357,"spec":358},{"name":126},{"displayName":128,"slug":129},{"metadata":360,"spec":363,"status":372,"categories":375,"tags":381},{"name":361,"creationTimestamp":362},"post-docker-ps-container-cc726a97","2026-09-12T08:28:29.271365Z",{"title":364,"slug":365,"cover":366,"excerpt":367,"publishTime":369,"categories":370,"tags":371,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 查看容器","docker-ps-container","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165692898193876.jpg",{"raw":368,"autoGenerate":305},"在 Docker 中，我们可以通过 docker ps 命令查看正在运行中的容器，docker ps -a 命令可以查看所有容器，包括运行中的、已经停止运行的容器...","2026-09-12T08:28:29.336224Z",[308],[126],{"permalink":373,"excerpt":368,"lastModifyTime":374,"phase":315},"\u002Farchives\u002Fdocker-ps-container","2026-09-13T05:19:05.550572Z",[376],{"metadata":377,"spec":379,"status":380,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":378},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[382],{"metadata":383,"spec":384},{"name":126},{"displayName":128,"slug":129},{"metadata":386,"spec":389,"status":398,"categories":400,"tags":406},{"name":387,"creationTimestamp":388},"post-docker-nginx-install-ssl-a377919f","2026-09-12T08:28:28.665687Z",{"title":390,"slug":391,"cover":392,"excerpt":393,"publishTime":395,"categories":396,"tags":397,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker Nginx 配置安装 SSL 证书（支持 Https 访问）","docker-nginx-install-ssl","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002Fcover-4ca56e528d21.png",{"raw":394,"autoGenerate":305},"上小节《Docker 安装 Nginx》中，我们已经学会了通过 Docker 快速安装 Nginx ，以及配置反向代理，本小节中，我们将学习如何为 Nginx 配置安装 SSL 证书，使网站支持通过 Https 协议访问 ...","2026-09-12T08:28:28.738926Z",[308],[126],{"permalink":399,"excerpt":394,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-nginx-install-ssl",[401],{"metadata":402,"spec":404,"status":405,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":403},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[407],{"metadata":408,"spec":409},{"name":126},{"displayName":128,"slug":129},{"metadata":411,"spec":414,"status":423,"categories":426,"tags":432},{"name":412,"creationTimestamp":413},"post-docker-look-image-6e9a9628","2026-09-12T08:28:28.024749Z",{"title":415,"slug":416,"cover":417,"excerpt":418,"publishTime":420,"categories":421,"tags":422,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 查看镜像信息","docker-look-image","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165648660235112.jpg",{"raw":419,"autoGenerate":305},"大家好，本小节中，我们将学习 Docker 如何查看镜像信息。通过命令 docker images 或者 docker image ls 即可列出本地已下载的镜像 ...","2026-09-12T08:28:28.085240Z",[308],[126],{"permalink":424,"excerpt":425,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-look-image","本小节中，我们将学习 Docker 如何查看镜像信息。通过命令 docker images 或者 docker image ls 即可列出本地已下载的镜像 ...",[427],{"metadata":428,"spec":430,"status":431,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":429},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[433],{"metadata":434,"spec":435},{"name":126},{"displayName":128,"slug":129},{"metadata":437,"spec":440,"status":449,"categories":451,"tags":457},{"name":438,"creationTimestamp":439},"post-docker-install-zookeeper-72ccf30f","2026-09-12T08:28:27.267923Z",{"title":441,"slug":442,"cover":443,"excerpt":444,"publishTime":446,"categories":447,"tags":448,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 安装 Zookeeper（图文教程）","docker-install-zookeeper","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F172293048784392.jpg",{"raw":445,"autoGenerate":305},"我们已经测试了美团 Leaf-segment 号段模式（依赖数据库）来获取分布式 ID ,  除了该模式外，还有 Leaf-snowflake  （基于雪花算法）模式，它依赖于 Zookeeper , 所以，本小节的内容是，在本地通过 Docker 将单机版的 Zookeeper 环境搭建好。","2026-09-12T08:28:27.343802Z",[308],[126],{"permalink":450,"excerpt":445,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-zookeeper",[452],{"metadata":453,"spec":455,"status":456,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":454},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[458],{"metadata":459,"spec":460},{"name":126},{"displayName":128,"slug":129},{"metadata":462,"spec":465,"status":474,"categories":476,"tags":482},{"name":463,"creationTimestamp":464},"post-docker-install-redis-5af17add","2026-09-12T08:28:26.614853Z",{"title":466,"slug":467,"cover":468,"excerpt":469,"publishTime":471,"categories":472,"tags":473,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 安装 Redis（图文教程）","docker-install-redis","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165624364123749.png",{"raw":470,"autoGenerate":305},"在星球第二个项目后续的业务功能开发中，会频繁使用到分布式缓存 Redis，那么，本小节中，我就将演示如何通过 Docker 快速的将本地的 Redis 环境搭建好...","2026-09-12T08:28:26.683365Z",[308],[126],{"permalink":475,"excerpt":470,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-redis",[477],{"metadata":478,"spec":480,"status":481,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":479},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[483],{"metadata":484,"spec":485},{"name":126},{"displayName":128,"slug":129},{"metadata":487,"spec":490,"status":499,"categories":501,"tags":507},{"name":488,"creationTimestamp":489},"post-docker-install-nginx-f7369a19","2026-09-12T08:28:25.931765Z",{"title":491,"slug":492,"cover":493,"excerpt":494,"publishTime":496,"categories":497,"tags":498,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 安装 Nginx","docker-install-nginx","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165736441796898.jpg",{"raw":495,"autoGenerate":305},"本小节中，我们将学习如何通过 Docker 快速安装 Ngnix, 并反向代理到后台的 Web 服务。 执行 docker pull nginx:1.19.4 下载 Nginx 镜像，命令执行成功后，通过 docker images 命令检查一下镜像是否下载成功...","2026-09-12T08:28:25.994216Z",[308],[126],{"permalink":500,"excerpt":495,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-nginx",[502],{"metadata":503,"spec":505,"status":506,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":504},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[508],{"metadata":509,"spec":510},{"name":126},{"displayName":128,"slug":129},{"metadata":512,"spec":515,"status":524,"categories":526,"tags":532},{"name":513,"creationTimestamp":514},"post-docker-install-mysql-4f03f35f","2026-09-12T08:28:25.312248Z",{"title":516,"slug":517,"cover":518,"excerpt":519,"publishTime":521,"categories":522,"tags":523,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 安装 MySQL（图文教程）","docker-install-mysql","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165702232024982.jpg",{"raw":520,"autoGenerate":305},"本小节中，我们将学习如何通过 Docker 快速安装 Mysql 环境。这里以安装 Mysql 5.7 版本为例，执行 docker pull mysql:5.7 命令，下载完成后，通过 docker images 检查一下镜像是否下载成功...","2026-09-12T08:28:25.380377Z",[308],[126],{"permalink":525,"excerpt":520,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-mysql",[527],{"metadata":528,"spec":530,"status":531,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":529},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[533],{"metadata":534,"spec":535},{"name":126},{"displayName":128,"slug":129},{"metadata":537,"spec":540,"status":549,"categories":551,"tags":557},{"name":538,"creationTimestamp":539},"post-docker-install-minio-b6dec88d","2026-09-12T08:28:24.603453Z",{"title":541,"slug":542,"cover":543,"excerpt":544,"publishTime":546,"categories":547,"tags":548,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 安装 Minio 分布式存储（图文教程）","docker-install-minio","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F169663913789430.jpg",{"raw":545,"autoGenerate":305},"在我们的《前后端分离博客项目中》，涉及到上传博客 LOGO 图片、作者头像，以及后续发布文章也需要支持图片上传。所以，我们首先需要搭建一个图床服务，这里我选型的是 Minio 对象存储，它不光可以存储图片，还能存储文件、视频等，非常强大...","2026-09-12T08:28:24.669227Z",[308],[126],{"permalink":550,"excerpt":545,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-minio",[552],{"metadata":553,"spec":555,"status":556,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":554},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[558],{"metadata":559,"spec":560},{"name":126},{"displayName":128,"slug":129},{"metadata":562,"spec":565,"status":574,"categories":576,"tags":582},{"name":563,"creationTimestamp":564},"post-docker-install-jenkins-cac21be2","2026-09-12T08:28:23.983351Z",{"title":566,"slug":567,"cover":568,"excerpt":569,"publishTime":571,"categories":572,"tags":573,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 安装 Jenkins（图文教程）","docker-install-jenkins","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002Fcover-b97f087a779d.png",{"raw":570,"autoGenerate":305},"Jenkins 是一个开源的持续集成（Continuous Integration）工具，它的主要作用是帮助开发团队自动化构建、测试和部署软件项目。通俗来说，Jenkins 可以在每次代码变更时，帮助我们自动进行一系列的操作，例如编译代码、运行测试、生成文档，甚至是将应用程序部署到服务器上。","2026-09-12T08:28:24.043455Z",[308],[126],{"permalink":575,"excerpt":570,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-jenkins",[577],{"metadata":578,"spec":580,"status":581,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":579},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[583],{"metadata":584,"spec":585},{"name":126},{"displayName":128,"slug":129},{"metadata":587,"spec":590,"status":599,"categories":601,"tags":607},{"name":588,"creationTimestamp":589},"post-docker-install-compose-d427ef40","2026-09-12T08:28:23.146866Z",{"title":591,"slug":592,"cover":593,"excerpt":594,"publishTime":596,"categories":597,"tags":598,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker Compose 安装与卸载","docker-install-compose","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F166366076551050.png",{"raw":595,"autoGenerate":305},"Docker Compose 支持 Linux、MacOS、Windows 10 以及更高版本等主流操作系统的安装，本文通过图文详细说明了不同系统中，Docker Compose 要如何镜像安装与卸载 ...","2026-09-12T08:28:23.213491Z",[308],[126],{"permalink":600,"excerpt":595,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-compose",[602],{"metadata":603,"spec":605,"status":606,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":604},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[608],{"metadata":609,"spec":610},{"name":126},{"displayName":128,"slug":129},{"metadata":612,"spec":615,"status":624,"categories":626,"tags":632},{"name":613,"creationTimestamp":614},"post-docker-install-cassandra-03d02f70","2026-09-12T08:28:22.473185Z",{"title":616,"slug":617,"cover":618,"excerpt":619,"publishTime":621,"categories":622,"tags":623,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 安装 Cassandra 数据库（图文教程）","docker-install-cassandra","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F172179052498364.jpg",{"raw":620,"autoGenerate":305},"本小节中，我们将通过 Docker 把本地的 Cassandra 测试环境搭建起来。Apache Cassandra 是一个开源的分布式 NoSQL（Not Only SQL）数据库管理系统，专为处理大规模数据量和高写入频率的工作负载而设计。","2026-09-12T08:28:22.546599Z",[308],[126],{"permalink":625,"excerpt":620,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-install-cassandra",[627],{"metadata":628,"spec":630,"status":631,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":629},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[633],{"metadata":634,"spec":635},{"name":126},{"displayName":128,"slug":129},{"metadata":637,"spec":640,"status":649,"categories":652,"tags":658},{"name":638,"creationTimestamp":639},"post-docker-image-e76362b6","2026-09-12T08:28:21.839619Z",{"title":641,"slug":642,"cover":643,"excerpt":644,"publishTime":646,"categories":647,"tags":648,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 镜像","docker-image","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002Fcover-c40a46c7dc01.png",{"raw":645,"autoGenerate":305},"镜像是 Docker 的三个基本概念之一，它是 Docker 运行容器的前提，仓库是存放镜像的场所。Docker 镜像是一个特殊的文件系统，除了提供容器运行时所需的程序、库、资源、配置等文件外...","2026-09-12T08:28:21.903334Z",[308],[126],{"permalink":650,"excerpt":645,"lastModifyTime":651,"phase":315},"\u002Farchives\u002Fdocker-image","2026-09-14T00:21:13.584509Z",[653],{"metadata":654,"spec":656,"status":657,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":655},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[659],{"metadata":660,"spec":661},{"name":126},{"displayName":128,"slug":129},{"metadata":663,"spec":666,"status":675,"categories":678,"tags":684},{"name":664,"creationTimestamp":665},"post-docker-export-import-container-541bad36","2026-09-12T08:28:21.240842Z",{"title":667,"slug":668,"cover":669,"excerpt":670,"publishTime":672,"categories":673,"tags":674,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 导出&amp;导入容器","docker-export-import-container","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165698500345714.jpg",{"raw":671,"autoGenerate":305},"使用 docker export 命令可以导出容器，比如想导出下面的 Redis 容器，执行  docker export 9e8d11aeef0c &gt; redis.tar 命令即可，导出的 tar 包快照存于当前目录下...","2026-09-12T08:28:21.304957Z",[308],[126],{"permalink":676,"excerpt":671,"lastModifyTime":677,"phase":315},"\u002Farchives\u002Fdocker-export-import-container","2026-09-13T05:20:25.998391Z",[679],{"metadata":680,"spec":682,"status":683,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":681},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[685],{"metadata":686,"spec":687},{"name":126},{"displayName":128,"slug":129},{"metadata":689,"spec":692,"status":701,"categories":704,"tags":710},{"name":690,"creationTimestamp":691},"post-docker-exec-container-4e90d582","2026-09-12T08:28:20.597994Z",{"title":693,"slug":694,"cover":695,"excerpt":696,"publishTime":698,"categories":699,"tags":700,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 进入容器命令","docker-exec-container","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165685069315125.jpg",{"raw":697,"autoGenerate":305},"要想进入到已运行的 Docker 容器，主要有如下两种方式，第一种使用 docker exec命令，第二种使用 docker attach 命令...","2026-09-12T08:28:20.663925Z",[308],[126],{"permalink":702,"excerpt":697,"lastModifyTime":703,"phase":315},"\u002Farchives\u002Fdocker-exec-container","2026-09-13T05:20:26.724480Z",[705],{"metadata":706,"spec":708,"status":709,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":707},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[711],{"metadata":712,"spec":713},{"name":126},{"displayName":128,"slug":129},{"metadata":715,"spec":718,"status":727,"categories":730,"tags":736},{"name":716,"creationTimestamp":717},"post-docker-download-image-bae8d2fe","2026-09-12T08:28:19.928197Z",{"title":719,"slug":720,"cover":721,"excerpt":722,"publishTime":724,"categories":725,"tags":726,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 拉取&amp;下载镜像","docker-download-image","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165648522762749.jpg",{"raw":723,"autoGenerate":305},"大家好，本文中，我们将需要学习 Docker 如何拉取&amp;下载镜像？想要在本地运行 Docker 容器，需要先下载 Docker 镜像。默认情况下，Docker 会尝试从 Docker Hub 镜像仓库下载。另外，用户也可以自定义配置镜像仓库地址 ...","2026-09-12T08:28:19.996485Z",[308],[126],{"permalink":728,"excerpt":729,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-download-image","本文中，我们将需要学习 Docker 如何拉取&amp;下载镜像？想要在本地运行 Docker 容器，需要先下载 Docker 镜像。默认情况下，Docker 会尝试从 Docker Hub 镜像仓库下载。另外，用户也可以自定义配置镜像仓库地址 ...",[731],{"metadata":732,"spec":734,"status":735,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":733},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[737],{"metadata":738,"spec":739},{"name":126},{"displayName":128,"slug":129},{"metadata":741,"spec":744,"status":753,"categories":756,"tags":762},{"name":742,"creationTimestamp":743},"post-docker-delete-container-561986e7","2026-09-12T08:28:19.306727Z",{"title":745,"slug":746,"cover":747,"excerpt":748,"publishTime":750,"categories":751,"tags":752,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 删除容器","docker-delete-container","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F165685534557469.jpg",{"raw":749,"autoGenerate":305},"本小节中将学习如何删除 Docker 容器。执行 docker container rm 命令可以删除一个已经停止运行的容器。举个例子，比如想要删除下面的 Redis 容器...","2026-09-12T08:28:19.369523Z",[308],[126],{"permalink":754,"excerpt":749,"lastModifyTime":755,"phase":315},"\u002Farchives\u002Fdocker-delete-container","2026-09-13T05:20:28.217987Z",[757],{"metadata":758,"spec":760,"status":761,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":759},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[763],{"metadata":764,"spec":765},{"name":126},{"displayName":128,"slug":129},{"metadata":767,"spec":770,"status":779,"categories":782,"tags":788},{"name":768,"creationTimestamp":769},"post-docker-container-bccc3314","2026-09-12T08:28:18.682458Z",{"title":771,"slug":772,"cover":773,"excerpt":774,"publishTime":776,"categories":777,"tags":778,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker 容器","docker-container","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002Fcover-900796218579.png",{"raw":775,"autoGenerate":305},"通过 Docker 镜像运行的实例称之为容器，两者的关系就像是面向对象程序设计中的类和实例一样，镜像是静态的定义，容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 ...","2026-09-12T08:28:18.747600Z",[308],[126],{"permalink":780,"excerpt":775,"lastModifyTime":781,"phase":315},"\u002Farchives\u002Fdocker-container","2026-09-14T00:21:13.932628Z",[783],{"metadata":784,"spec":786,"status":787,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":785},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[789],{"metadata":790,"spec":791},{"name":126},{"displayName":128,"slug":129},{"metadata":793,"spec":796,"status":805,"categories":807,"tags":813},{"name":794,"creationTimestamp":795},"post-docker-compose-example-5841178a","2026-09-12T08:28:18.028525Z",{"title":797,"slug":798,"cover":799,"excerpt":800,"publishTime":802,"categories":803,"tags":804,"priority":42,"pinned":305,"deleted":305,"visible":310,"allowComment":311},"Docker Compose 实战 web 服务","docker-compose-example","https:\u002F\u002Fcdn.mashangan.com\u002Fupload\u002F166467690411164.png",{"raw":801,"autoGenerate":305},"本小节中，我们将通过 Docker Compose 搭建一个简单的网站。这个简单的网站需实现功能：每当用户访问时，页面显示总访问次数 ...","2026-09-12T08:28:18.096894Z",[308],[126],{"permalink":806,"excerpt":801,"lastModifyTime":348,"phase":315},"\u002Farchives\u002Fdocker-compose-example",[808],{"metadata":809,"spec":811,"status":812,"postCount":130},{"name":308,"creationTimestamp":319,"annotations":810},{"tutorial.halo.run\u002Fstatus":321},{"displayName":323,"slug":129,"cover":324,"description":325,"priority":61,"hideFromList":305,"preventParentPostCascadeQuery":305},{"permalink":327,"postCount":130,"visiblePostCount":130},[814],{"metadata":815,"spec":816},{"name":126},{"displayName":128,"slug":129}]