[{"data":1,"prerenderedAt":299},["ShallowReactive",2],{"content:\u002Fposts\u002Fdocker-guide":3,"surround:\u002Fposts\u002Fdocker-guide":290},{"id":4,"title":5,"body":6,"categories":265,"date":267,"description":268,"draft":269,"extension":270,"image":271,"meta":272,"navigation":274,"path":275,"permalink":271,"pinned":269,"published":271,"readingTime":276,"recommend":271,"references":271,"seo":281,"sitemap":282,"stem":283,"tags":284,"type":287,"updated":288,"__hash__":289},"content\u002Fposts\u002Fposts\u002Fdocker-guide.md","Docker 安装与配置指南",{"type":7,"value":8,"toc":247},"minimark",[9,19,24,29,43,48,59,63,69,73,79,82,88,92,106,109,116,127,133,142,148,151,156,162,178,184,193,198,205,208,222,228,231,237,241],[10,11,15],"alert",{"type":12,"icon":13,"title":14},"info","tabler:robot","AI 迁移提示",[16,17,18],"p",{},"本文由 AI 协助从旧站迁移，尚未完成逐篇人工审校；内容如有疏漏，将在复核后修订。",[20,21,23],"h2",{"id":22},"一安装","一、安装",[10,25,26],{"type":12},[16,27,28],{},"安装前必读：本文的命令使用的是 root 用户登录执行，不是 root 的话所有命令前面要加 sudo",[10,30,32],{"type":31},"tip",[16,33,34,35,42],{},"现在可以使用",[36,37,41],"a",{"href":38,"rel":39},"https:\u002F\u002Fxuanyuan.cloud",[40],"nofollow","轩辕镜像站","的一键安装脚本进行安装了",[44,45,47],"h3",{"id":46},"centos","CentOS",[49,50,56],"pre",{"className":51,"code":53,"language":54,"meta":55},[52],"language-bash","# 查看当前内核版本（官方建议 3.10 以上）\nuname -r\n\n# 卸载旧版本\nyum remove docker docker-common docker-selinux docker-engine\n\n# 安装需要的软件包\nyum install -y yum-utils device-mapper-persistent-data lvm2\n\n# 设置 yum 源（推荐阿里源）\nyum-config-manager --add-repo http:\u002F\u002Fmirrors.aliyun.com\u002Fdocker-ce\u002Flinux\u002Fcentos\u002Fdocker-ce.repo\n\n# 查看可用版本\nyum list docker-ce --showduplicates | sort -r\n\n# 安装 Docker\nyum -y install docker-ce\n","bash","",[57,58,53],"code",{"__ignoreMap":55},[44,60,62],{"id":61},"ubuntu","Ubuntu",[49,64,67],{"className":65,"code":66,"language":54,"meta":55},[52],"# 卸载旧版本\nsudo apt-get remove docker docker-engine docker.io containerd runc\n\n# 安装必要支持\nsudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release\n\n# 添加 Docker 阿里源 GPG key\ncurl -fsSL https:\u002F\u002Fmirrors.aliyun.com\u002Fdocker-ce\u002Flinux\u002Fubuntu\u002Fgpg | sudo gpg --dearmor -o \u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg\n\n# 添加 apt 源\necho \"deb [arch=$(dpkg --print-architecture) signed-by=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg] https:\u002F\u002Fmirrors.aliyun.com\u002Fdocker-ce\u002Flinux\u002Fubuntu $(lsb_release -cs) stable\" | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fdocker.list > \u002Fdev\u002Fnull\n\n# 更新源并安装\nsudo apt update\nsudo apt install docker-ce docker-ce-cli containerd.io\n\n# 查看版本和状态\nsudo docker version\nsudo systemctl status docker\n",[57,68,66],{"__ignoreMap":55},[44,70,72],{"id":71},"alpine","Alpine",[49,74,77],{"className":75,"code":76,"language":54,"meta":55},[52],"# 启用 cgroups（不启用会导致 Docker 无法启动）\nrc-update add cgroups boot\nrc-service cgroups start\nmount | grep cgroup\n\n# 安装 Docker\napk add docker docker-compose\n\n# 创建配置目录\nmkdir -p \u002Fetc\u002Fdocker\n\n# 写入基础配置\ncat > \u002Fetc\u002Fdocker\u002Fdaemon.json \u003C\u003C 'EOF'\n{\n  \"log-driver\": \"json-file\",\n  \"log-opts\": {\n    \"max-size\": \"5m\",\n    \"max-file\": \"2\"\n  },\n  \"storage-driver\": \"overlay2\",\n  \"default-ulimits\": {\n    \"nofile\": {\n      \"Name\": \"nofile\",\n      \"Hard\": 1024,\n      \"Soft\": 512\n    }\n  },\n  \"max-concurrent-downloads\": 1,\n  \"max-concurrent-uploads\": 1\n}\nEOF\n\n# 重启 Docker\nrc-service docker restart\n",[57,78,76],{"__ignoreMap":55},[44,80,81],{"id":81},"常用服务命令",[49,83,86],{"className":84,"code":85,"language":54,"meta":55},[52],"# systemctl 系统（CentOS \u002F Ubuntu）\nsystemctl start docker\nsystemctl stop docker\nsystemctl restart docker\nsystemctl enable docker\n\n# rc-service 系统（Alpine）\nrc-service docker start\nrc-service docker stop\nrc-service docker restart\n",[57,87,85],{"__ignoreMap":55},[20,89,91],{"id":90},"二daemonjson-配置","二、daemon.json 配置",[10,93,94],{"type":31},[16,95,96,97,101,102],{},"Docker Compose 的安装与使用参见：",[36,98,100],{"href":99},"\u002Fposts\u002Fdocker-compose-setup","Docker Compose 安装配置","，YML 编写参见：",[36,103,105],{"href":104},"\u002Fposts\u002Fdocker-compose-yml","Docker Compose YML 编写",[44,107,108],{"id":108},"迁移存储目录",[16,110,111,112,115],{},"Docker 默认将所有数据（镜像、容器、卷）存储在 ",[57,113,114],{"code":114},"\u002Fvar\u002Flib\u002Fdocker\u002F","，生产环境系统盘通常空间有限，建议迁移到数据盘。",[10,117,119],{"type":118},"warning",[16,120,121,122,126],{},"此操作建议在",[123,124,125],"strong",{},"刚安装完 Docker 后","执行，迁移前务必停止所有容器，避免数据丢失。",[49,128,131],{"className":129,"code":130,"language":54,"meta":55},[52],"# 1. 停止 Docker 服务\nsudo systemctl stop docker\n\n# 2. 创建新的数据目录\nmkdir -p \u002Fopt\u002Fdocker\u002F\nchmod -R 755 \u002Fopt\u002Fdocker\u002F\n\n# 3. 迁移现有数据（如有）\nsudo cp -a \u002Fvar\u002Flib\u002Fdocker\u002F* \u002Fopt\u002Fdocker\u002F\n\n# 4. 修改配置\nmkdir -p \u002Fetc\u002Fdocker\nvim \u002Fetc\u002Fdocker\u002Fdaemon.json\n",[57,132,130],{"__ignoreMap":55},[49,134,140],{"className":135,"code":137,"filename":138,"language":139,"meta":55},[136],"language-json","{\n  \"data-root\": \"\u002Fopt\u002Fdocker\"\n}\n","\u002Fetc\u002Fdocker\u002Fdaemon.json","json",[57,141,137],{"__ignoreMap":55},[49,143,146],{"className":144,"code":145,"language":54,"meta":55},[52],"# 5. 重载配置并重启\nsudo systemctl daemon-reload\nsudo systemctl restart docker\n\n# 6. 验证新目录是否生效\nsudo docker info | grep \"Docker Root Dir\"\n\n# 7. 确认数据无误后删除旧目录（可选）\nrm -rf \u002Fvar\u002Flib\u002Fdocker\n",[57,147,145],{"__ignoreMap":55},[44,149,150],{"id":150},"限制容器日志大小",[16,152,153],{},[123,154,155],{},"方法一：全局配置（推荐，对新容器生效）",[49,157,160],{"className":158,"code":159,"filename":138,"language":139,"meta":55},[136],"{\n  \"log-opts\": {\n    \"max-size\": \"500m\",\n    \"max-file\": \"3\"\n  }\n}\n",[57,161,159],{"__ignoreMap":55},[163,164,165,172],"ul",{},[166,167,168,171],"li",{},[57,169,170],{"code":170},"max-size","：单个日志文件最大 500MB",[166,173,174,177],{},[57,175,176],{"code":176},"max-file","：最多保留 3 个日志文件（滚动）",[49,179,182],{"className":180,"code":181,"language":54,"meta":55},[52],"systemctl daemon-reload\nsystemctl restart docker\n",[57,183,181],{"__ignoreMap":55},[10,185,186],{"type":12},[16,187,188,189,192],{},"此配置只对",[123,190,191],{},"重启后新创建的容器","生效，已运行的容器需重建才能应用。",[16,194,195],{},[123,196,197],{},"方法二：脚本主动清理日志",[49,199,203],{"className":200,"code":201,"filename":202,"language":54,"meta":55},[52],"#!\u002Fbin\u002Fbash\n# 根据实际 data-root 修改此路径（默认 \u002Fvar\u002Flib\u002Fdocker\u002Fcontainers）\nlog_path=\"\u002Fvar\u002Flib\u002Fdocker\u002Fcontainers\"\nfor container_id in $(ls \"$log_path\"); do\n    log_file=\"${log_path}\u002F${container_id}\u002F${container_id}-json.log\"\n    if [ -f \"$log_file\" ]; then\n        echo \"清理容器 ${container_id} 的日志\"\n        truncate -s 0 \"$log_file\"\n    fi\ndone\necho \"日志清理完成\"\n","\u002Fopt\u002Fscripts\u002Fclean-docker-logs.sh",[57,204,201],{"__ignoreMap":55},[44,206,207],{"id":207},"私服仓库地址",[10,209,210],{"type":12},[16,211,212,213,217,218],{},"如需搭建私有镜像仓库，参见：",[36,214,216],{"href":215},"\u002Fposts\u002Fharbor-install","Harbor 私有镜像仓库安装指南","。使用自签名证书时还需配置信任：",[36,219,221],{"href":220},"\u002Fposts\u002Fdocker-private-cert","Docker 配置私服自签名证书信任",[49,223,226],{"className":224,"code":225,"filename":138,"language":139,"meta":55},[136],"{\n  \"insecure-registries\": [\n    \"http:\u002F\u002Fharbor:30001\"\n  ]\n}\n",[57,227,225],{"__ignoreMap":55},[44,229,230],{"id":230},"镜像加速",[49,232,235],{"className":233,"code":234,"filename":138,"language":139,"meta":55},[136],"{\n  \"registry-mirrors\": [\n    \"http:\u002F\u002Fharbor:30001\",\n    \"https:\u002F\u002Fdocker.1panel.live\"\n  ]\n}\n",[57,236,234],{"__ignoreMap":55},[20,238,240],{"id":239},"三完整-daemonjson-参考","三、完整 daemon.json 参考",[49,242,245],{"className":243,"code":244,"filename":138,"language":139,"meta":55},[136],"{\n  \"data-root\": \"\u002Fopt\u002Fdocker\",\n  \"log-opts\": {\n    \"max-size\": \"500m\",\n    \"max-file\": \"3\"\n  },\n  \"insecure-registries\": [\n    \"harbor.example.com\"\n  ],\n  \"registry-mirrors\": [\n    \"https:\u002F\u002Fdocker.example.com\"\n  ]\n}\n",[57,246,244],{"__ignoreMap":55},{"title":55,"searchDepth":248,"depth":248,"links":249},4,[250,258,264],{"id":22,"depth":251,"text":23,"children":252},2,[253,255,256,257],{"id":46,"depth":254,"text":47},3,{"id":61,"depth":254,"text":62},{"id":71,"depth":254,"text":72},{"id":81,"depth":254,"text":81},{"id":90,"depth":251,"text":91,"children":259},[260,261,262,263],{"id":108,"depth":254,"text":108},{"id":150,"depth":254,"text":150},{"id":207,"depth":254,"text":207},{"id":230,"depth":254,"text":230},{"id":239,"depth":251,"text":240},[266],"容器","2022-09-18 13:25:00","介绍 Docker 在 CentOS、Ubuntu、Alpine 上的安装方法，以及生产环境中常用的 daemon.json 配置（存储目录迁移、日志限制、私服镜像等）。",false,"md",null,{"slots":273},{},true,"\u002Fposts\u002Fdocker-guide",{"text":277,"minutes":278,"time":279,"words":280},"5 min read",4.3,258000,860,{"title":5,"description":268},{"loc":275},"posts\u002Fposts\u002Fdocker-guide",[285,286],"Docker","软件安装","tech","2026-06-27 13:25:00","XR-6xil991jzIab20Sb4tt_0cSrvS1yQagOXYW0AYiY",[291,294],{"title":292,"path":99,"stem":293,"date":267,"type":287,"children":-1},"Docker Compose 工具使用教程","posts\u002Fposts\u002Fdocker-compose-setup",{"title":295,"path":296,"stem":297,"date":298,"type":287,"children":-1},"Linux 管理 JAR 服务的 Shell 脚本","\u002Fposts\u002Fjar-service-script","posts\u002Fposts\u002Fjar-service-script","2022-10-20 10:11:22",1788712226415]