{"id":245,"date":"2026-01-24T17:19:26","date_gmt":"2026-01-24T09:19:26","guid":{"rendered":"https:\/\/skwp.zeabur.app\/2026\/01\/24\/%e3%80%90docker-%e5%85%a5%e9%96%80%e7%b3%bb%e5%88%97%e3%80%9101-%e4%bb%80%e9%ba%bc%e6%98%af-docker%ef%bc%9f%e7%82%ba%e4%bb%80%e9%ba%bc%e9%96%8b%e7%99%bc%e8%80%85%e9%9c%80%e8%a6%81%e5%ae%83%ef%bc%9f\/"},"modified":"2026-01-24T17:19:26","modified_gmt":"2026-01-24T09:19:26","slug":"%e3%80%90docker-%e5%85%a5%e9%96%80%e7%b3%bb%e5%88%97%e3%80%9101-%e4%bb%80%e9%ba%bc%e6%98%af-docker%ef%bc%9f%e7%82%ba%e4%bb%80%e9%ba%bc%e9%96%8b%e7%99%bc%e8%80%85%e9%9c%80%e8%a6%81%e5%ae%83%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/blog.itsmygo.uk\/wordpress\/2026\/01\/24\/%e3%80%90docker-%e5%85%a5%e9%96%80%e7%b3%bb%e5%88%97%e3%80%9101-%e4%bb%80%e9%ba%bc%e6%98%af-docker%ef%bc%9f%e7%82%ba%e4%bb%80%e9%ba%bc%e9%96%8b%e7%99%bc%e8%80%85%e9%9c%80%e8%a6%81%e5%ae%83%ef%bc%9f\/","title":{"rendered":"\u3010Docker \u5165\u9580\u7cfb\u5217\u3011#01 \u4ec0\u9ebc\u662f Docker\uff1f\u70ba\u4ec0\u9ebc\u958b\u767c\u8005\u9700\u8981\u5b83\uff1f"},"content":{"rendered":"\n<div id=\"quiz-basic\">\n<style>\n#quiz-basic .question {\n            background: white;\n            border-radius: 8px;\n            padding: 20px;\n            margin: 20px 0;\n            box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n        }#quiz-basic .question h3 { margin-top: 0; color: #333; }#quiz-basic .options { list-style: none; padding: 0; }#quiz-basic .options li {\n            padding: 12px 15px;\n            margin: 8px 0;\n            border: 2px solid #ddd;\n            border-radius: 6px;\n            cursor: pointer;\n            transition: all 0.2s;\n        }#quiz-basic .options li:hover:not(.disabled) {\n            border-color: #4CAF50;\n            background: #f0fff0;\n        }#quiz-basic .options li.correct {\n            border-color: #4CAF50;\n            background: #e8f5e9;\n        }#quiz-basic .options li.wrong {\n            border-color: #f44336;\n            background: #ffebee;\n        }#quiz-basic .options li.disabled { cursor: default; opacity: 0.7; }#quiz-basic .options li.show-answer { border-color: #4CAF50; background: #e8f5e9; }#quiz-basic .feedback {\n            margin-top: 15px;\n            padding: 12px;\n            border-radius: 6px;\n            display: none;\n        }#quiz-basic .feedback.correct { background: #e8f5e9; color: #2e7d32; display: block; }#quiz-basic .feedback.wrong { background: #ffebee; color: #c62828; display: block; }#quiz-basic .score {\n            text-align: center;\n            font-size: 1.5em;\n            padding: 20px;\n            background: white;\n            border-radius: 8px;\n            margin-top: 20px;\n        }#quiz-basic .code-block {\n            background: #1e1e1e;\n            color: #d4d4d4;\n            padding: 14px;\n            border-radius: 6px;\n            font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n            font-size: 0.9em;\n            overflow-x: auto;\n            margin: 12px 0;\n            white-space: pre-wrap;\n        }\n<\/style>\n<h1>\u6e2c\u9a57\uff1aDocker \u5165\u9580 &#8211; \u57fa\u790e\u6982\u5ff5<\/h1>\n    <p>\u5171 5 \u984c\uff0c\u9ede\u9078\u7b54\u6848\u5f8c\u6703\u7acb\u5373\u986f\u793a\u7d50\u679c<\/p>\n\n    <div class=\"question\" id=\"q1\">\n        <h3>1. Docker \u4e3b\u8981\u89e3\u6c7a\u4ec0\u9ebc\u554f\u984c\uff1f<\/h3>\n        <ul class=\"options\">\n            <li onclick=\"checkAnswer(1, 'A', 'B')\">A. \u7a0b\u5f0f\u78bc\u7248\u672c\u7ba1\u7406\u7684\u554f\u984c<\/li>\n            <li onclick=\"checkAnswer(1, 'B', 'B')\">B. \u4e0d\u540c\u96fb\u8166\u74b0\u5883\u4e0d\u4e00\u81f4\u5c0e\u81f4\u7a0b\u5f0f\u7121\u6cd5\u57f7\u884c\u7684\u554f\u984c<\/li>\n            <li onclick=\"checkAnswer(1, 'C', 'B')\">C. \u7a0b\u5f0f\u57f7\u884c\u901f\u5ea6\u592a\u6162\u7684\u554f\u984c<\/li>\n            <li onclick=\"checkAnswer(1, 'D', 'B')\">D. \u7db2\u8def\u9023\u7dda\u4e0d\u7a69\u5b9a\u7684\u554f\u984c<\/li>\n        <\/ul>\n        <div class=\"feedback\" id=\"fb1\"><\/div>\n    <\/div>\n\n    <div class=\"question\" id=\"q2\">\n        <h3>2. Docker \u5bb9\u5668\u8207\u865b\u64ec\u6a5f\uff08VM\uff09\u7684\u4e3b\u8981\u5dee\u7570\u662f\u4ec0\u9ebc\uff1f<\/h3>\n        <ul class=\"options\">\n            <li onclick=\"checkAnswer(2, 'A', 'C')\">A. Docker \u5bb9\u5668\u6bd4\u865b\u64ec\u6a5f\u66f4\u5b89\u5168<\/li>\n            <li onclick=\"checkAnswer(2, 'B', 'C')\">B. Docker \u5bb9\u5668\u53ef\u4ee5\u8de8\u5e73\u53f0\uff0c\u865b\u64ec\u6a5f\u4e0d\u884c<\/li>\n            <li onclick=\"checkAnswer(2, 'C', 'C')\">C. Docker \u5bb9\u5668\u5171\u7528\u4f5c\u696d\u7cfb\u7d71\u6838\u5fc3\uff0c\u6240\u4ee5\u66f4\u8f15\u91cf\u4e14\u555f\u52d5\u66f4\u5feb<\/li>\n            <li onclick=\"checkAnswer(2, 'D', 'C')\">D. Docker \u5bb9\u5668\u6709\u5b8c\u6574\u7684\u5716\u5f62\u4ecb\u9762\uff0c\u865b\u64ec\u6a5f\u6c92\u6709<\/li>\n        <\/ul>\n        <div class=\"feedback\" id=\"fb2\"><\/div>\n    <\/div>\n\n    <div class=\"question\" id=\"q3\">\n        <h3>3. \u95dc\u65bc Docker Image\uff08\u6620\u50cf\u6a94\uff09\u7684\u63cf\u8ff0\uff0c\u4f55\u8005\u6b63\u78ba\uff1f<\/h3>\n        <ul class=\"options\">\n            <li onclick=\"checkAnswer(3, 'A', 'A')\">A. Image \u662f\u7a0b\u5f0f\u7684\u6a21\u677f\uff0c\u5305\u542b\u57f7\u884c\u9700\u8981\u7684\u6240\u6709\u6771\u897f\uff0c\u4e14\u662f\u552f\u8b80\u7684<\/li>\n            <li onclick=\"checkAnswer(3, 'B', 'A')\">B. Image \u662f\u6b63\u5728\u57f7\u884c\u7684\u7a0b\u5f0f\u5be6\u9ad4\uff0c\u53ef\u4ee5\u96a8\u6642\u4fee\u6539<\/li>\n            <li onclick=\"checkAnswer(3, 'C', 'A')\">C. \u4e00\u500b Image \u53ea\u80fd\u5efa\u7acb\u4e00\u500b Container<\/li>\n            <li onclick=\"checkAnswer(3, 'D', 'A')\">D. Image \u5fc5\u9808\u81ea\u5df1\u5f9e\u982d\u88fd\u4f5c\uff0c\u4e0d\u80fd\u5f9e\u7db2\u8def\u4e0b\u8f09<\/li>\n        <\/ul>\n        <div class=\"feedback\" id=\"fb3\"><\/div>\n    <\/div>\n\n    <div class=\"question\" id=\"q4\">\n        <h3>4. \u4ee5\u4e0b\u6307\u4ee4\u7684\u4f5c\u7528\u662f\u4ec0\u9ebc\uff1f<\/h3>\n        <div class=\"code-block\">docker pull python:3.11<\/div>\n        <ul class=\"options\">\n            <li onclick=\"checkAnswer(4, 'A', 'B')\">A. \u57f7\u884c Python 3.11 \u7684\u5bb9\u5668<\/li>\n            <li onclick=\"checkAnswer(4, 'B', 'B')\">B. \u5f9e Registry \u4e0b\u8f09 Python 3.11 \u7684 Image<\/li>\n            <li onclick=\"checkAnswer(4, 'C', 'B')\">C. \u5c07\u672c\u6a5f\u7684 Python 3.11 \u4e0a\u50b3\u5230 Registry<\/li>\n            <li onclick=\"checkAnswer(4, 'D', 'B')\">D. \u522a\u9664 Python 3.11 \u7684 Image<\/li>\n        <\/ul>\n        <div class=\"feedback\" id=\"fb4\"><\/div>\n    <\/div>\n\n    <div class=\"question\" id=\"q5\">\n        <h3>5. \u5728\u5c08\u6848\u4e2d\u770b\u5230 <code>Dockerfile<\/code> \u9019\u500b\u6a94\u6848\uff0c\u5b83\u7684\u7528\u9014\u662f\u4ec0\u9ebc\uff1f<\/h3>\n        <ul class=\"options\">\n            <li onclick=\"checkAnswer(5, 'A', 'D')\">A. \u8a18\u9304\u5bb9\u5668\u57f7\u884c\u6642\u7684 log<\/li>\n            <li onclick=\"checkAnswer(5, 'B', 'D')\">B. \u8a2d\u5b9a\u591a\u500b\u670d\u52d9\u4e00\u8d77\u555f\u52d5\u7684\u65b9\u5f0f<\/li>\n            <li onclick=\"checkAnswer(5, 'C', 'D')\">C. \u5b58\u653e Docker \u7684\u74b0\u5883\u8b8a\u6578<\/li>\n            <li onclick=\"checkAnswer(5, 'D', 'D')\">D. \u5efa\u7acb Image \u7684\u8aaa\u660e\u66f8\uff0c\u63cf\u8ff0\u5982\u4f55\u6253\u5305\u7a0b\u5f0f\u548c\u74b0\u5883<\/li>\n        <\/ul>\n        <div class=\"feedback\" id=\"fb5\"><\/div>\n    <\/div>\n\n    <div class=\"score\" id=\"score\" style=\"display:none;\"><\/div>\n<script>\n\n        let answered = 0;\n        let correct = 0;\n        const total = 5;\n        const explanations = {\n            1: \"Docker \u7684\u6838\u5fc3\u50f9\u503c\u662f\u89e3\u6c7a\u300c\u5728\u6211\u96fb\u8166\u80fd\u8dd1\u300d\u7684\u554f\u984c\uff0c\u900f\u904e\u628a\u7a0b\u5f0f\u548c\u74b0\u5883\u6253\u5305\u5728\u4e00\u8d77\uff0c\u78ba\u4fdd\u5728\u4efb\u4f55\u96fb\u8166\u4e0a\u90fd\u80fd\u4e00\u81f4\u5730\u57f7\u884c\u3002\",\n            2: \"\u865b\u64ec\u6a5f\u9700\u8981\u5305\u542b\u5b8c\u6574\u7684\u4f5c\u696d\u7cfb\u7d71\uff0c\u5360\u7528 GB \u7b49\u7d1a\u7684\u8cc7\u6e90\uff1bDocker \u5bb9\u5668\u5171\u7528\u5e95\u5c64\u4f5c\u696d\u7cfb\u7d71\u6838\u5fc3\uff0c\u53ea\u5305\u542b\u5fc5\u8981\u5957\u4ef6\uff0c\u6240\u4ee5\u555f\u52d5\u53ea\u9700\u5e7e\u79d2\u3001\u8a18\u61b6\u9ad4\u4f7f\u7528\u91cf\u4e5f\u5c0f\u5f97\u591a\u3002\",\n            3: \"Image \u662f\u552f\u8b80\u7684\u7a0b\u5f0f\u6a21\u677f\uff08\u85cd\u5716\uff09\uff0c\u4e00\u500b Image \u53ef\u4ee5\u5efa\u7acb\u591a\u500b Container\u3002Container \u624d\u662f\u57f7\u884c\u4e2d\u7684\u5be6\u9ad4\uff0c\u53ef\u4ee5\u4fee\u6539\u4f46\u901a\u5e38\u4e0d\u5efa\u8b70\u3002\",\n            4: \"<code>docker pull<\/code> \u662f\u5f9e Registry\uff08\u5982 Docker Hub\uff09\u4e0b\u8f09 Image \u7684\u6307\u4ee4\u3002\u8981\u57f7\u884c\u5bb9\u5668\u5247\u662f\u4f7f\u7528 <code>docker run<\/code>\u3002\",\n            5: \"Dockerfile \u662f\u5efa\u7acb Image \u7684\u8aaa\u660e\u66f8\uff0c\u8a18\u9304\u4e86\u6253\u5305\u7a0b\u5f0f\u6240\u9700\u7684\u6b65\u9a5f\u3002<code>docker-compose.yml<\/code> \u624d\u662f\u8a2d\u5b9a\u591a\u500b\u670d\u52d9\u4e00\u8d77\u555f\u52d5\u7684\u6a94\u6848\u3002\"\n        };\n\n        function checkAnswer(qNum, selected, correctAns) {\n            const question = document.getElementById('q' + qNum);\n            if (question.classList.contains('answered')) return;\n\n            question.classList.add('answered');\n            answered++;\n\n            const options = question.querySelectorAll('.options li');\n            options.forEach(opt => {\n                opt.classList.add('disabled');\n                if (opt.textContent.startsWith(correctAns + '.')) {\n                    opt.classList.add('show-answer');\n                }\n            });\n\n            const feedback = document.getElementById('fb' + qNum);\n            if (selected === correctAns) {\n                correct++;\n                feedback.className = 'feedback correct';\n                feedback.innerHTML = '\u2713 \u6b63\u78ba\uff01' + explanations[qNum];\n            } else {\n                feedback.className = 'feedback wrong';\n                feedback.innerHTML = '\u2717 \u932f\u8aa4\u3002\u6b63\u78ba\u7b54\u6848\u662f ' + correctAns + '\u3002' + explanations[qNum];\n                options.forEach(opt => {\n                    if (opt.textContent.startsWith(selected + '.')) {\n                        opt.classList.add('wrong');\n                    }\n                });\n            }\n\n            if (answered === total) {\n                const scoreDiv = document.getElementById('score');\n                scoreDiv.style.display = 'block';\n                scoreDiv.innerHTML = '\u6e2c\u9a57\u5b8c\u6210\uff01\u5f97\u5206\uff1a' + correct + ' \/ ' + total +\n                    (correct === total ? ' \ud83c\udf89 \u5168\u5c0d\uff01' : correct >= Math.ceil(total * 0.6) ? ' \ud83d\udc4d \u4e0d\u932f\uff01' : ' \ud83d\udcda \u518d\u8907\u7fd2\u4e00\u4e0b\u5427');\n            }\n        }\n    \n<\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e00\u53e5\u8a71\u8aaa\u660e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker \u628a\u61c9\u7528\u7a0b\u5f0f\u548c\u5b83\u9700\u8981\u7684\u74b0\u5883\u6253\u5305\u5728\u4e00\u8d77\uff0c\u78ba\u4fdd\u300c\u5728\u6211\u96fb\u8166\u80fd\u8dd1\u300d\u7b49\u65bc\u300c\u5728\u4efb\u4f55\u96fb\u8166\u90fd\u80fd\u8dd1\u300d\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u9019\u7bc7\u6587\u7ae0\u6703\u6559\u4f60<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8b80\u5b8c\u672c\u7bc7\u5f8c\uff0c\u4f60\u80fd\u5920\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7406\u89e3 Docker \u89e3\u6c7a\u4ec0\u9ebc\u554f\u984c\uff08\u74b0\u5883\u4e00\u81f4\u6027\u3001\u76f8\u4f9d\u5957\u4ef6\u7ba1\u7406\uff09<\/li>\n<li>\u5340\u5206 Docker \u8207\u865b\u64ec\u6a5f\u7684\u5dee\u7570<\/li>\n<li>\u8a8d\u8b58 Docker \u7684\u6838\u5fc3\u6982\u5ff5\uff1aImage\u3001Container\u3001Registry<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u300c\u5728\u6211\u96fb\u8166\u80fd\u8dd1\u554a\uff01\u300d\u7684\u75db<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bcf\u500b\u958b\u767c\u8005\u90fd\u9047\u904e\u9019\u7a2e\u72c0\u6cc1\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\">\u4f60\uff1a\u300c\u7a0b\u5f0f\u5beb\u597d\u4e86\uff0c\u6e2c\u8a66\u901a\u904e\uff0c\u53ef\u4ee5\u90e8\u7f72\u4e86\uff01\u300d\n\u540c\u4e8b\uff1a\u300c\u6211\u8dd1\u4e0d\u8d77\u4f86\u6b38\uff0c\u8aaa\u7f3a\u5c11\u67d0\u500b\u5957\u4ef6\u3002\u300d\n\u4f60\uff1a\u300c\u4e0d\u53ef\u80fd\uff0c\u5728\u6211\u96fb\u8166\u80fd\u8dd1\u554a\uff01\u300d\n\uff08\u4e09\u5c0f\u6642\u5f8c...\uff09\n\u4f60\uff1a\u300c\u5594\uff0c\u4f60\u7684 <span class=\"hljs-selector-tag\">Python<\/span> \u662f 3<span class=\"hljs-selector-class\">.8<\/span>\uff0c\u6211\u7684\u662f 3<span class=\"hljs-selector-class\">.11<\/span>...\u300d\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>\u554f\u984c\u51fa\u5728\u54ea\uff1f<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>\u53ef\u80fd\u7684\u5dee\u7570<\/th>\n<th>\u4f60\u7684\u96fb\u8166<\/th>\n<th>\u540c\u4e8b\u7684\u96fb\u8166<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u7a0b\u5f0f\u8a9e\u8a00\u7248\u672c<\/td>\n<td>Python 3.11<\/td>\n<td>Python 3.8<\/td>\n<\/tr>\n<tr>\n<td>\u4f5c\u696d\u7cfb\u7d71<\/td>\n<td>macOS<\/td>\n<td>Windows<\/td>\n<\/tr>\n<tr>\n<td>\u7cfb\u7d71\u5957\u4ef6<\/td>\n<td>\u5df2\u5b89\u88dd ffmpeg<\/td>\n<td>\u6c92\u5b89\u88dd<\/td>\n<\/tr>\n<tr>\n<td>\u74b0\u5883\u8b8a\u6578<\/td>\n<td>\u8a2d\u597d\u4e86<\/td>\n<td>\u6c92\u8a2d<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u9019\u4e9b\u300c\u74b0\u5883\u5dee\u7570\u300d\u8b93\u7a0b\u5f0f\u5728\u4e0d\u540c\u96fb\u8166\u4e0a\u884c\u70ba\u4e0d\u4e00\u81f4\uff0c\u751a\u81f3\u5b8c\u5168\u8dd1\u4e0d\u8d77\u4f86\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Docker \u600e\u9ebc\u89e3\u6c7a\u9019\u500b\u554f\u984c\uff1f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker \u7684\u89e3\u6cd5\u5f88\u76f4\u63a5\uff1a<strong>\u628a\u74b0\u5883\u4e5f\u6253\u5305\u9032\u53bb<\/strong>\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6c92\u6709 Docker \u6642<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f60\u4ea4\u4ed8\u7684\u662f\u300c\u7a0b\u5f0f\u78bc\u300d\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">app<\/span><span class=\"hljs-selector-class\">.py<\/span>            \u2190 \u4f60\u7684\u7a0b\u5f0f\n<span class=\"hljs-selector-tag\">requirements<\/span><span class=\"hljs-selector-class\">.txt<\/span>  \u2190 \u76f8\u4f9d\u5957\u4ef6\u6e05\u55ae\n<span class=\"hljs-selector-tag\">README<\/span><span class=\"hljs-selector-class\">.md<\/span>         \u2190 \u300c\u8acb\u5148\u5b89\u88dd <span class=\"hljs-selector-tag\">Python<\/span> 3<span class=\"hljs-selector-class\">.11<\/span>\uff0c\u7136\u5f8c <span class=\"hljs-selector-tag\">pip<\/span> <span class=\"hljs-selector-tag\">install<\/span>...\u300d\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5c0d\u65b9\u8981\u81ea\u5df1\u6e96\u5099\u74b0\u5883\uff0c\u6bcf\u500b\u4eba\u88dd\u51fa\u4f86\u53ef\u80fd\u90fd\u4e0d\u4e00\u6a23\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6709 Docker \u6642<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f60\u4ea4\u4ed8\u7684\u662f\u300c\u7a0b\u5f0f\u78bc + \u74b0\u5883\u300d\u6253\u5305\u5728\u4e00\u8d77\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><span><code class=\"hljs\">Docker Image = \u4f60\u7684\u7a0b\u5f0f + Python 3.11 + \u6240\u6709\u5957\u4ef6 + \u9700\u8981\u7684\u7cfb\u7d71\u5de5\u5177\n<\/code><\/span><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5c0d\u65b9\u53ea\u8981\u57f7\u884c\u9019\u500b Image\uff0c\u74b0\u5883\u4fdd\u8b49\u4e00\u6a21\u4e00\u6a23\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Docker vs \u865b\u64ec\u6a5f\uff1a\u5dee\u5728\u54ea\uff1f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f60\u53ef\u80fd\u60f3\uff1a\u300c\u865b\u64ec\u6a5f\u4e0d\u662f\u4e5f\u53ef\u4ee5\u628a\u6574\u500b\u74b0\u5883\u6253\u5305\u55ce\uff1f\u300d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6c92\u932f\uff0c\u4f46\u5169\u8005\u6709\u95dc\u9375\u5dee\u7570\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>\u6bd4\u8f03\u9805\u76ee<\/th>\n<th>\u865b\u64ec\u6a5f (VM)<\/th>\n<th>Docker \u5bb9\u5668<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5305\u542b\u4ec0\u9ebc<\/td>\n<td>\u5b8c\u6574\u4f5c\u696d\u7cfb\u7d71 + \u61c9\u7528\u7a0b\u5f0f<\/td>\n<td>\u53ea\u6709\u61c9\u7528\u7a0b\u5f0f + \u5fc5\u8981\u5957\u4ef6<\/td>\n<\/tr>\n<tr>\n<td>\u555f\u52d5\u6642\u9593<\/td>\n<td>\u5e7e\u5206\u9418<\/td>\n<td>\u5e7e\u79d2<\/td>\n<\/tr>\n<tr>\n<td>\u8a18\u61b6\u9ad4\u4f7f\u7528<\/td>\n<td>GB \u7b49\u7d1a<\/td>\n<td>MB \u7b49\u7d1a<\/td>\n<\/tr>\n<tr>\n<td>\u6a94\u6848\u5927\u5c0f<\/td>\n<td>\u5e7e\u5341 GB<\/td>\n<td>\u5e7e\u767e MB<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u767d\u8a71\u7ffb\u8b6f<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u865b\u64ec\u6a5f<\/strong>\u50cf\u662f\u300c\u8cb7\u4e00\u6574\u68df\u623f\u5b50\uff0c\u53ea\u7528\u4e00\u500b\u623f\u9593\u300d<\/li>\n<li><strong>Docker \u5bb9\u5668<\/strong>\u50cf\u662f\u300c\u79df\u4e00\u500b\u623f\u9593\uff0c\u5171\u7528\u5927\u6a13\u7684\u6c34\u96fb\u300d<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Docker \u5bb9\u5668\u5171\u7528\u5e95\u5c64\u7684\u4f5c\u696d\u7cfb\u7d71\u6838\u5fc3\uff0c\u6240\u4ee5\u975e\u5e38\u8f15\u91cf\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u67b6\u69cb\u5c0d\u6bd4\u5716\u89e3<\/h3>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><span><code class=\"hljs\">\u865b\u64ec\u6a5f\u67b6\u69cb\uff1a\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  App A  \u2502 \u2502  App B  \u2502 \u2502  App C  \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Guest OS\u2502 \u2502 Guest OS\u2502 \u2502 Guest OS\u2502  \u2190 \u6bcf\u500b\u90fd\u8981\u5b8c\u6574 OS\n\u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518\n     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n           \u250c\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2510\n           \u2502Hypervisor\u2502\n           \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n           \u2502 Host OS  \u2502\n           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\nDocker \u67b6\u69cb\uff1a\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  App A  \u2502 \u2502  App B  \u2502 \u2502  App C  \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \u5fc5\u8981\u5957\u4ef6 \u2502 \u2502 \u5fc5\u8981\u5957\u4ef6 \u2502 \u2502 \u5fc5\u8981\u5957\u4ef6 \u2502  \u2190 \u53ea\u88dd\u9700\u8981\u7684\n\u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2518\n     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n           \u250c\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2510\n           \u2502 Docker  \u2502  \u2190 \u5171\u7528 OS \u6838\u5fc3\n           \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n           \u2502 Host OS  \u2502\n           \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/span><\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u6838\u5fc3\u6982\u5ff5\uff1a\u4e09\u500b\u95dc\u9375\u8a5e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528 Docker \u6642\uff0c\u4f60\u6703\u4e00\u76f4\u770b\u5230\u9019\u4e09\u500b\u8a5e\uff1a<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Image\uff08\u6620\u50cf\u6a94\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e00\u53e5\u8a71<\/strong>\uff1a\u7a0b\u5f0f\u7684\u300c\u6a21\u677f\u300d\u6216\u300c\u85cd\u5716\u300d\uff0c\u5305\u542b\u6240\u6709\u57f7\u884c\u9700\u8981\u7684\u6771\u897f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u985e\u6bd4<\/strong>\uff1a\u5c31\u50cf\u9910\u5ef3\u7684\u300c\u98df\u8b5c\u300d\uff0c\u8a18\u9304\u4e86\u505a\u9019\u9053\u83dc\u9700\u8981\u7684\u6750\u6599\u548c\u6b65\u9a5f\u3002<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># \u4f60\u6703\u770b\u5230\u9019\u6a23\u7684\u6307\u4ee4<\/span>\ndocker pull python:<span class=\"hljs-number\">3.11<\/span>    <span class=\"hljs-comment\"># \u4e0b\u8f09 Python 3.11 \u7684 Image<\/span>\ndocker images              <span class=\"hljs-comment\"># \u5217\u51fa\u6240\u6709 Image<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>\u91cd\u9ede<\/strong>\uff1aImage \u662f\u552f\u8b80\u7684\uff0c\u4e0d\u6703\u6539\u8b8a\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Container\uff08\u5bb9\u5668\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e00\u53e5\u8a71<\/strong>\uff1a\u6839\u64da Image \u5efa\u7acb\u7684\u300c\u57f7\u884c\u4e2d\u7684\u5be6\u9ad4\u300d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u985e\u6bd4<\/strong>\uff1a\u98df\u8b5c\u662f Image\uff0c\u7167\u8457\u98df\u8b5c\u505a\u51fa\u4f86\u7684\u300c\u90a3\u4e00\u76e4\u83dc\u300d\u662f Container\u3002<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># \u4f60\u6703\u770b\u5230\u9019\u6a23\u7684\u6307\u4ee4<\/span>\ndocker run python:<span class=\"hljs-number\">3.11<\/span>     <span class=\"hljs-comment\"># \u6839\u64da Image \u5efa\u7acb\u4e26\u57f7\u884c Container<\/span>\ndocker ps                  <span class=\"hljs-comment\"># \u5217\u51fa\u57f7\u884c\u4e2d\u7684 Container<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>\u91cd\u9ede<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e00\u500b Image \u53ef\u4ee5\u5efa\u7acb\u591a\u500b Container<\/li>\n<li>Container \u53ef\u4ee5\u4fee\u6539\uff08\u4f46\u901a\u5e38\u4e0d\u5efa\u8b70\u76f4\u63a5\u6539\uff09<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. Registry\uff08\u5009\u5eab\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e00\u53e5\u8a71<\/strong>\uff1a\u5b58\u653e\u548c\u5206\u4eab Image \u7684\u5730\u65b9\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u985e\u6bd4<\/strong>\uff1a\u5c31\u50cf GitHub \u662f\u653e\u7a0b\u5f0f\u78bc\u7684\u5730\u65b9\uff0cRegistry \u662f\u653e Image \u7684\u5730\u65b9\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u5e38\u7528\u7684\u516c\u958b Registry \u662f <strong>Docker Hub<\/strong>\uff08hub.docker.com\uff09\u3002<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># \u9019\u884c\u6307\u4ee4\u5176\u5be6\u662f\u5f9e Docker Hub \u4e0b\u8f09<\/span>\ndocker pull nginx          <span class=\"hljs-comment\"># \u7b49\u65bc docker pull docker.io\/nginx<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u4e09\u8005\u95dc\u4fc2<\/h3>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><span><code class=\"hljs\">Registry\uff08\u5009\u5eab\uff09\n    \u2502\n    \u2502 docker pull\uff08\u4e0b\u8f09\uff09\n    \u25bc\nImage\uff08\u6620\u50cf\u6a94\uff09\n    \u2502\n    \u2502 docker run\uff08\u57f7\u884c\uff09\n    \u25bc\nContainer\uff08\u5bb9\u5668\uff09\u2500\u2500\u2192 \u6b63\u5728\u8dd1\u7684\u61c9\u7528\u7a0b\u5f0f\n<\/code><\/span><\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Docker \u7684\u5e38\u898b\u61c9\u7528\u5834\u666f<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u5834\u666f 1\uff1a\u958b\u767c\u74b0\u5883\u7d71\u4e00<\/h3>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><span><code class=\"hljs\">\u5718\u968a\u65b0\u6210\u54e1\u52a0\u5165\uff1a\n\u50b3\u7d71\u65b9\u5f0f\uff1a\u300c\u8acb\u7167\u9019\u4efd 10 \u9801\u6587\u4ef6\u8a2d\u5b9a\u74b0\u5883\u300d\u2192 \u8a2d\u5b9a 2 \u5929\nDocker \u65b9\u5f0f\uff1a\u300cdocker compose up\u300d\u2192 5 \u5206\u9418\u641e\u5b9a\n<\/code><\/span><\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u5834\u666f 2\uff1a\u6e2c\u8a66\u4e0d\u540c\u7248\u672c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u9700\u8981\u540c\u6642\u6e2c\u8a66 Python 3.8\u30013.9\u30013.11\uff1f<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">run<\/span> <span class=\"hljs-selector-tag\">python<\/span><span class=\"hljs-selector-pseudo\">:3.8<\/span> <span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">--version<\/span>\n<span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">run<\/span> <span class=\"hljs-selector-tag\">python<\/span><span class=\"hljs-selector-pseudo\">:3.9<\/span> <span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">--version<\/span>\n<span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">run<\/span> <span class=\"hljs-selector-tag\">python<\/span><span class=\"hljs-selector-pseudo\">:3.11<\/span> <span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">--version<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u7528\u5728\u96fb\u8166\u4e0a\u5b89\u88dd\u4e09\u500b\u7248\u672c\u7684 Python\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5834\u666f 3\uff1a\u4e7e\u6de8\u7684\u6e2c\u8a66\u74b0\u5883<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bcf\u6b21\u6e2c\u8a66\u90fd\u5f9e\u4e7e\u6de8\u7684\u74b0\u5883\u958b\u59cb\uff0c\u4e0d\u53d7\u4e4b\u524d\u6e2c\u8a66\u7684\u5f71\u97ff\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5834\u666f 4\uff1a\u90e8\u7f72\u4e00\u81f4\u6027<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u958b\u767c\u3001\u6e2c\u8a66\u3001\u6b63\u5f0f\u74b0\u5883\u7528\u540c\u4e00\u500b Image\uff0c\u6e1b\u5c11\u300c\u53ea\u5728\u67d0\u500b\u74b0\u5883\u51fa\u554f\u984c\u300d\u7684\u60c5\u6cc1\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Vibe Coder \u6aa2\u67e5\u9ede<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u770b\u5230\u5c08\u6848\u6709 Docker \u76f8\u95dc\u6a94\u6848\u6642\uff0c\u78ba\u8a8d\u9019\u4e9b\u4e8b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u6709 <code>Dockerfile<\/code> \u55ce\uff1f\u9019\u662f\u5efa\u7acb Image \u7684\u8aaa\u660e\u66f8<\/li>\n<li>[ ] \u6709 <code>docker-compose.yml<\/code> \u55ce\uff1f\u9019\u662f\u4e00\u6b21\u555f\u52d5\u591a\u500b\u670d\u52d9\u7684\u8a2d\u5b9a<\/li>\n<li>[ ] README \u6709\u8aaa\u660e\u600e\u9ebc\u7528 Docker \u555f\u52d5\u55ce\uff1f<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u5c0f\u7d50\uff1aDocker \u89e3\u6c7a\u7684\u6838\u5fc3\u554f\u984c<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>\u554f\u984c<\/th>\n<th>Docker \u7684\u89e3\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u74b0\u5883\u4e0d\u4e00\u81f4<\/td>\n<td>\u628a\u74b0\u5883\u6253\u5305\u9032 Image<\/td>\n<\/tr>\n<tr>\n<td>\u8a2d\u5b9a\u74b0\u5883\u9ebb\u7169<\/td>\n<td>\u4e00\u500b\u6307\u4ee4\u5c31\u80fd\u555f\u52d5<\/td>\n<\/tr>\n<tr>\n<td>\u9700\u8981\u6e2c\u8a66\u591a\u7248\u672c<\/td>\n<td>\u4e0d\u540c Image \u4e92\u4e0d\u5f71\u97ff<\/td>\n<\/tr>\n<tr>\n<td>\u90e8\u7f72\u8207\u958b\u767c\u4e0d\u540c<\/td>\n<td>\u7528\u540c\u4e00\u500b Image<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e0b\u4e00\u7bc7\u9810\u544a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b78\u6703\u6982\u5ff5\u5f8c\uff0c\u4e0b\u4e00\u7bc7\u6211\u5011\u6703\u5be6\u969b\u52d5\u624b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b89\u88dd Docker Desktop<\/li>\n<li>\u57f7\u884c\u7b2c\u4e00\u500b Container<\/li>\n<li>\u7406\u89e3 <code>docker run<\/code> \u6307\u4ee4<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u672c\u7bc7\u91cd\u9ede\u56de\u9867<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Docker \u89e3\u6c7a\u4ec0\u9ebc\u554f\u984c<\/strong>\uff1a\u74b0\u5883\u4e0d\u4e00\u81f4\u5c0e\u81f4\u300c\u5728\u6211\u96fb\u8166\u80fd\u8dd1\u300d\u7684\u56f0\u64fe<\/li>\n<li><strong>Docker vs \u865b\u64ec\u6a5f<\/strong>\uff1aDocker \u66f4\u8f15\u91cf\uff0c\u5171\u7528\u4f5c\u696d\u7cfb\u7d71\u6838\u5fc3<\/li>\n<li><strong>\u4e09\u500b\u6838\u5fc3\u6982\u5ff5<\/strong>\uff1a\n<ul>\n<li>Image\uff1a\u7a0b\u5f0f\u7684\u6a21\u677f\/\u85cd\u5716<\/li>\n<li>Container\uff1a\u57f7\u884c\u4e2d\u7684\u5be6\u9ad4<\/li>\n<li>Registry\uff1a\u5b58\u653e Image \u7684\u5009\u5eab<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div id=\"quiz-advanced\">\n<style>\n#quiz-advanced .badge {\n            display: inline-block;\n            padding: 4px 10px;\n            border-radius: 12px;\n            font-size: 0.75em;\n            font-weight: bold;\n            margin-left: 8px;\n        }#quiz-advanced .badge.scenario { background: #ebf8ff; color: #2b6cb0; }#quiz-advanced .badge.debug { background: #fef3c7; color: #92400e; }#quiz-advanced .question-adv {\n            background: white;\n            border-radius: 10px;\n            padding: 24px;\n            margin: 20px 0;\n            box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n            border-left: 4px solid #ed8936;\n        }#quiz-advanced .question-adv h3 { margin-top: 0; color: #2d3748; }#quiz-advanced .code-block {\n            background: #1e1e1e;\n            color: #d4d4d4;\n            padding: 14px;\n            border-radius: 6px;\n            font-family: 'Menlo', 'Monaco', 'Courier New', monospace;\n            font-size: 0.9em;\n            overflow-x: auto;\n            margin: 12px 0;\n            white-space: pre-wrap;\n        }#quiz-advanced .scenario-box {\n            background: #f7fafc;\n            border: 1px solid #e2e8f0;\n            border-radius: 6px;\n            padding: 14px;\n            margin: 12px 0;\n            line-height: 1.6;\n        }#quiz-advanced .options-adv { list-style: none; padding: 0; }#quiz-advanced .options-adv li {\n            padding: 14px 16px;\n            margin: 10px 0;\n            border: 2px solid #e2e8f0;\n            border-radius: 8px;\n            cursor: pointer;\n            transition: all 0.2s;\n        }#quiz-advanced .options-adv li:hover:not(.disabled) {\n            border-color: #ed8936;\n            background: #fffaf0;\n        }#quiz-advanced .options-adv li.disabled { cursor: default; opacity: 0.7; }#quiz-advanced .options-adv li.show-answer { border-color: #48bb78; background: #f0fff4; }#quiz-advanced .options-adv li.wrong { border-color: #fc8181; background: #fff5f5; }#quiz-advanced .feedback-adv {\n            margin-top: 16px;\n            padding: 14px;\n            border-radius: 8px;\n            display: none;\n            line-height: 1.6;\n        }#quiz-advanced .feedback-adv.correct { background: #f0fff4; color: #276749; display: block; }#quiz-advanced .feedback-adv.wrong { background: #fff5f5; color: #c53030; display: block; }#quiz-advanced .feedback-adv \n        .score-adv {\n            text-align: center;\n            font-size: 1.4em;\n            padding: 24px;\n            background: white;\n            border-radius: 10px;\n            margin-top: 24px;\n            box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n        }#quiz-advanced .intro {\n            background: #ebf8ff;\n            padding: 16px;\n            border-radius: 8px;\n            margin-bottom: 20px;\n            color: #2c5282;\n        }\n<\/style>\n<h1>\u9032\u968e\u6e2c\u9a57\uff1aDocker \u5165\u9580 &#8211; \u5be6\u6230\u61c9\u7528<\/h1>\n    <div class=\"intro\">\n        <strong>\u6e2c\u9a57\u76ee\u6a19\uff1a<\/strong>\u9a57\u8b49\u4f60\u662f\u5426\u80fd\u5728\u5be6\u969b\u60c5\u5883\u4e2d\u61c9\u7528\u6240\u5b78\u3002<br>\n        \u5171 5 \u984c\uff0c\u5305\u542b\u60c5\u5883\u984c\u8207\u932f\u8aa4\u8a3a\u65b7\u984c\u3002\n    <\/div>\n\n    <!-- \u60c5\u5883\u984c 1 -->\n    <div class=\"question-adv\" id=\"qAdv1\">\n        <h3>1. \u5718\u968a\u65b0\u6210\u54e1\u74b0\u5883\u8a2d\u5b9a <span class=\"badge scenario\">\u60c5\u5883\u984c<\/span><\/h3>\n        <div class=\"scenario-box\">\n            \u4f60\u662f\u8cc7\u6df1\u5de5\u7a0b\u5e2b\uff0c\u65b0\u4f86\u7684\u540c\u4e8b\u5c0f\u83ef\u8981\u52a0\u5165\u5c08\u6848\u958b\u767c\u3002\u904e\u53bb\u6bcf\u6b21\u65b0\u4eba\u4f86\uff0c\u90fd\u8981\u82b1 1-2 \u5929\u8a2d\u5b9a\u958b\u767c\u74b0\u5883\uff08Python \u7248\u672c\u3001\u76f8\u4f9d\u5957\u4ef6\u3001\u8cc7\u6599\u5eab\u9023\u7dda\u7b49\uff09\u3002\n            <br><br>\n            \u4f60\u60f3\u6539\u5584\u9019\u500b\u554f\u984c\uff0c\u8b93\u65b0\u4eba\u53ef\u4ee5\u5feb\u901f\u958b\u59cb\u958b\u767c\u3002\u6839\u64da Docker \u7684\u7279\u6027\uff0c\u6700\u4f73\u7684\u89e3\u6c7a\u65b9\u6848\u662f\uff1f\n        <\/div>\n        <ul class=\"options-adv\">\n            <li onclick=\"checkAnswerAdv(1, 'A', 'C')\">A. \u5beb\u4e00\u4efd\u8a73\u7d30\u7684\u74b0\u5883\u8a2d\u5b9a\u6587\u4ef6\uff0c\u8b93\u65b0\u4eba\u7167\u8457\u505a<\/li>\n            <li onclick=\"checkAnswerAdv(1, 'B', 'C')\">B. \u628a\u81ea\u5df1\u96fb\u8166\u7684\u74b0\u5883\u8907\u88fd\u4e00\u4efd\u7d66\u65b0\u4eba<\/li>\n            <li onclick=\"checkAnswerAdv(1, 'C', 'C')\">C. \u7528 Docker \u628a\u958b\u767c\u74b0\u5883\u6253\u5305\u6210 Image\uff0c\u65b0\u4eba\u53ea\u9700\u57f7\u884c\u4e00\u500b\u6307\u4ee4\u5c31\u80fd\u555f\u52d5<\/li>\n            <li onclick=\"checkAnswerAdv(1, 'D', 'C')\">D. \u5b89\u88dd\u865b\u64ec\u6a5f\u4e26\u628a\u6574\u500b\u7cfb\u7d71\u8907\u88fd\u7d66\u65b0\u4eba\u4f7f\u7528<\/li>\n        <\/ul>\n        <div class=\"feedback-adv\" id=\"fbAdv1\"><\/div>\n    <\/div>\n\n    <!-- \u60c5\u5883\u984c 2 -->\n    <div class=\"question-adv\" id=\"qAdv2\">\n        <h3>2. \u591a\u7248\u672c\u76f8\u5bb9\u6027\u6e2c\u8a66 <span class=\"badge scenario\">\u60c5\u5883\u984c<\/span><\/h3>\n        <div class=\"scenario-box\">\n            \u4f60\u7684 Python \u5957\u4ef6\u9700\u8981\u652f\u63f4 Python 3.8\u30013.9\u30013.10\u30013.11 \u56db\u500b\u7248\u672c\u3002\u4f60\u9700\u8981\u5728\u672c\u6a5f\u6e2c\u8a66\u9019\u56db\u500b\u7248\u672c\u7684\u76f8\u5bb9\u6027\u3002\n            <br><br>\n            \u6700\u6709\u6548\u7387\u7684\u505a\u6cd5\u662f\uff1f\n        <\/div>\n        <ul class=\"options-adv\">\n            <li onclick=\"checkAnswerAdv(2, 'A', 'B')\">A. \u5728\u96fb\u8166\u4e0a\u5b89\u88dd\u56db\u500b\u7248\u672c\u7684 Python\uff0c\u7528 pyenv \u5207\u63db<\/li>\n            <li onclick=\"checkAnswerAdv(2, 'B', 'B')\">B. \u7528\u4e0d\u540c\u7248\u672c\u7684 Python Docker Image \u5206\u5225\u57f7\u884c\u6e2c\u8a66<\/li>\n            <li onclick=\"checkAnswerAdv(2, 'C', 'B')\">C. \u5efa\u7acb\u56db\u53f0\u865b\u64ec\u6a5f\uff0c\u6bcf\u53f0\u88dd\u4e00\u500b Python \u7248\u672c<\/li>\n            <li onclick=\"checkAnswerAdv(2, 'D', 'B')\">D. \u53ea\u6e2c\u8a66\u6700\u65b0\u7248\u672c\uff0c\u5047\u8a2d\u5176\u4ed6\u7248\u672c\u4e5f\u80fd\u7528<\/li>\n        <\/ul>\n        <div class=\"feedback-adv\" id=\"fbAdv2\"><\/div>\n    <\/div>\n\n    <!-- \u60c5\u5883\u984c 3 -->\n    <div class=\"question-adv\" id=\"qAdv3\">\n        <h3>3. \u958b\u767c\u8207\u90e8\u7f72\u74b0\u5883\u5dee\u7570 <span class=\"badge scenario\">\u60c5\u5883\u984c<\/span><\/h3>\n        <div class=\"scenario-box\">\n            \u4f60\u5728\u672c\u6a5f\u958b\u767c\u7684\u7db2\u7ad9\u529f\u80fd\u90fd\u6b63\u5e38\uff0c\u4f46\u90e8\u7f72\u5230\u6b63\u5f0f\u4f3a\u670d\u5668\u5f8c\u537b\u51fa\u73fe\u554f\u984c\u3002\u7d93\u904e\u8abf\u67e5\uff0c\u767c\u73fe\u662f\u56e0\u70ba\u6b63\u5f0f\u4f3a\u670d\u5668\u7684\u4f5c\u696d\u7cfb\u7d71\u548c\u4f60\u7684\u958b\u767c\u74b0\u5883\u4e0d\u540c\u3002\n            <br><br>\n            \u8981\u9810\u9632\u9019\u985e\u554f\u984c\u518d\u767c\u751f\uff0c\u4f60\u61c9\u8a72\uff1f\n        <\/div>\n        <ul class=\"options-adv\">\n            <li onclick=\"checkAnswerAdv(3, 'A', 'D')\">A. \u628a\u958b\u767c\u96fb\u8166\u63db\u6210\u548c\u6b63\u5f0f\u4f3a\u670d\u5668\u4e00\u6a23\u7684\u4f5c\u696d\u7cfb\u7d71<\/li>\n            <li onclick=\"checkAnswerAdv(3, 'B', 'D')\">B. \u8981\u6c42\u71df\u904b\u5718\u968a\u628a\u6b63\u5f0f\u4f3a\u670d\u5668\u6539\u6210\u548c\u4f60\u4e00\u6a23\u7684\u74b0\u5883<\/li>\n            <li onclick=\"checkAnswerAdv(3, 'C', 'D')\">C. \u6bcf\u6b21\u90e8\u7f72\u524d\u90fd\u4ed4\u7d30\u5c0d\u7167\u74b0\u5883\u8a2d\u5b9a<\/li>\n            <li onclick=\"checkAnswerAdv(3, 'D', 'D')\">D. \u958b\u767c\u3001\u6e2c\u8a66\u3001\u90e8\u7f72\u90fd\u4f7f\u7528\u540c\u4e00\u500b Docker Image<\/li>\n        <\/ul>\n        <div class=\"feedback-adv\" id=\"fbAdv3\"><\/div>\n    <\/div>\n\n    <!-- \u932f\u8aa4\u8a3a\u65b7\u984c 1 -->\n    <div class=\"question-adv\" id=\"qAdv4\">\n        <h3>4. \u6307\u4ee4\u7406\u89e3\u8a3a\u65b7 <span class=\"badge debug\">\u932f\u8aa4\u8a3a\u65b7<\/span><\/h3>\n        <div class=\"scenario-box\">\n            \u5c0f\u660e\u60f3\u8981\u57f7\u884c\u4e00\u500b Python 3.11 \u7684\u5bb9\u5668\u4f86\u6e2c\u8a66\u7a0b\u5f0f\uff0c\u4ed6\u57f7\u884c\u4e86\u4ee5\u4e0b\u6307\u4ee4\uff1a\n        <\/div>\n        <div class=\"code-block\">docker pull python:3.11<\/div>\n        <div class=\"scenario-box\">\n            \u57f7\u884c\u5b8c\u6210\u5f8c\uff0c\u5c0f\u660e\u8aaa\uff1a\u300c\u5947\u602a\uff0c\u6211\u7684\u7a0b\u5f0f\u600e\u9ebc\u6c92\u6709\u8dd1\u8d77\u4f86\uff1f\u300d<br><br>\n            \u554f\u984c\u51fa\u5728\u54ea\u88e1\uff1f\n        <\/div>\n        <ul class=\"options-adv\">\n            <li onclick=\"checkAnswerAdv(4, 'A', 'B')\">A. python:3.11 \u9019\u500b Image \u4e0d\u5b58\u5728<\/li>\n            <li onclick=\"checkAnswerAdv(4, 'B', 'B')\">B. <code>docker pull<\/code> \u53ea\u662f\u4e0b\u8f09 Image\uff0c\u8981\u57f7\u884c\u5bb9\u5668\u9700\u8981\u7528 <code>docker run<\/code><\/li>\n            <li onclick=\"checkAnswerAdv(4, 'C', 'B')\">C. \u9700\u8981\u5148\u57f7\u884c <code>docker images<\/code> \u624d\u80fd\u4f7f\u7528<\/li>\n            <li onclick=\"checkAnswerAdv(4, 'D', 'B')\">D. Python \u7248\u672c\u5beb\u932f\u4e86\uff0c\u61c9\u8a72\u662f 3.11.0<\/li>\n        <\/ul>\n        <div class=\"feedback-adv\" id=\"fbAdv4\"><\/div>\n    <\/div>\n\n    <!-- \u932f\u8aa4\u8a3a\u65b7\u984c 2 -->\n    <div class=\"question-adv\" id=\"qAdv5\">\n        <h3>5. \u6982\u5ff5\u6df7\u6dc6\u8a3a\u65b7 <span class=\"badge debug\">\u932f\u8aa4\u8a3a\u65b7<\/span><\/h3>\n        <div class=\"scenario-box\">\n            \u65b0\u540c\u4e8b\u554f\u4f60\uff1a\u300c\u6211\u60f3\u8981\u4fee\u6539\u76ee\u524d\u6b63\u5728\u8dd1\u7684 Container \u88e1\u9762\u7684\u7a0b\u5f0f\u78bc\uff0c\u9019\u6a23\u4ee5\u5f8c\u6bcf\u6b21\u7528\u9019\u500b Image \u555f\u52d5\u90fd\u6703\u6709\u65b0\u7684\u7a0b\u5f0f\u78bc\u5c0d\u5427\uff1f\u300d\n            <br><br>\n            \u9019\u500b\u8aaa\u6cd5\u6709\u4ec0\u9ebc\u554f\u984c\uff1f\n        <\/div>\n        <ul class=\"options-adv\">\n            <li onclick=\"checkAnswerAdv(5, 'A', 'C')\">A. Container \u5167\u7684\u7a0b\u5f0f\u78bc\u4e0d\u80fd\u4fee\u6539<\/li>\n            <li onclick=\"checkAnswerAdv(5, 'B', 'C')\">B. \u4fee\u6539\u5f8c\u9700\u8981\u91cd\u65b0\u555f\u52d5 Container \u624d\u6703\u751f\u6548<\/li>\n            <li onclick=\"checkAnswerAdv(5, 'C', 'C')\">C. \u4fee\u6539 Container \u4e0d\u6703\u5f71\u97ff\u539f\u672c\u7684 Image\uff0c\u4e0b\u6b21\u5f9e\u540c\u4e00\u500b Image \u555f\u52d5\u9084\u662f\u820a\u7684\u7a0b\u5f0f\u78bc<\/li>\n            <li onclick=\"checkAnswerAdv(5, 'D', 'C')\">D. \u53ea\u6709\u7ba1\u7406\u54e1\u6b0a\u9650\u624d\u80fd\u4fee\u6539 Container<\/li>\n        <\/ul>\n        <div class=\"feedback-adv\" id=\"fbAdv5\"><\/div>\n    <\/div>\n\n    <div class=\"score-adv\" id=\"scoreAdv\" style=\"display:none;\"><\/div>\n<script>\n\n        let answeredAdv = 0;\n        let correctAdv = 0;\n        const totalAdv = 5;\n        const explanationsAdv = {\n            1: \"Docker \u53ef\u4ee5\u628a\u7a0b\u5f0f\u548c\u57f7\u884c\u74b0\u5883\u6253\u5305\u5728\u4e00\u8d77\u3002\u65b0\u4eba\u53ea\u9700\u8981\u5b89\u88dd Docker\uff0c\u7136\u5f8c\u57f7\u884c <code>docker run<\/code> \u6216 <code>docker compose up<\/code>\uff0c\u5c31\u80fd\u5728\u5e7e\u5206\u9418\u5167\u5f97\u5230\u8207\u5718\u968a\u4e00\u81f4\u7684\u958b\u767c\u74b0\u5883\u3002\u76f8\u6bd4\u4e4b\u4e0b\uff0c\u6587\u4ef6\u5bb9\u6613\u904e\u6642\u3001\u76f4\u63a5\u8907\u88fd\u5bb9\u6613\u51fa\u932f\u3001\u865b\u64ec\u6a5f\u592a\u904e\u7b28\u91cd\u3002\",\n            2: \"Docker \u7684\u8f15\u91cf\u7279\u6027\u8b93\u4f60\u53ef\u4ee5\u5feb\u901f\u555f\u52d5\u4e0d\u540c\u7248\u672c\u7684\u74b0\u5883\u9032\u884c\u6e2c\u8a66\u3002\u4f7f\u7528 <code>docker run python:3.8<\/code>\u3001<code>docker run python:3.9<\/code> \u7b49\u6307\u4ee4\uff0c\u53ef\u4ee5\u5728\u4e0d\u6c61\u67d3\u672c\u6a5f\u74b0\u5883\u7684\u60c5\u6cc1\u4e0b\u6e2c\u8a66\u591a\u500b\u7248\u672c\u3002\u9019\u6bd4\u5b89\u88dd\u591a\u7248\u672c Python \u6216\u5efa\u7acb\u591a\u53f0\u865b\u64ec\u6a5f\u90fd\u66f4\u6709\u6548\u7387\u3002\",\n            3: \"Docker \u7684\u6838\u5fc3\u50f9\u503c\u5c31\u662f\u78ba\u4fdd\u74b0\u5883\u4e00\u81f4\u6027\u3002\u4f7f\u7528\u540c\u4e00\u500b Image \u5728\u958b\u767c\u3001\u6e2c\u8a66\u3001\u6b63\u5f0f\u74b0\u5883\u57f7\u884c\uff0c\u53ef\u4ee5\u78ba\u4fdd\u300c\u5728\u6211\u96fb\u8166\u80fd\u8dd1\u300d\u5c31\u7b49\u65bc\u300c\u5728\u4efb\u4f55\u5730\u65b9\u90fd\u80fd\u8dd1\u300d\u3002\u9019\u662f\u5f9e\u6839\u672c\u4e0a\u89e3\u6c7a\u74b0\u5883\u5dee\u7570\u554f\u984c\u7684\u65b9\u6cd5\u3002\",\n            4: \"<code>docker pull<\/code> \u7684\u4f5c\u7528\u662f\u5f9e Registry\uff08\u5982 Docker Hub\uff09\u4e0b\u8f09 Image \u5230\u672c\u6a5f\uff0c\u4e0d\u6703\u57f7\u884c\u4efb\u4f55\u7a0b\u5f0f\u3002\u8981\u5be6\u969b\u57f7\u884c\u5bb9\u5668\uff0c\u9700\u8981\u4f7f\u7528 <code>docker run python:3.11<\/code> \u6307\u4ee4\uff0c\u5b83\u6703\u6839\u64da Image \u5efa\u7acb\u4e26\u555f\u52d5\u4e00\u500b Container\u3002\",\n            5: \"Image \u662f\u552f\u8b80\u7684\u6a21\u677f\uff0cContainer \u662f\u6839\u64da Image \u5efa\u7acb\u7684\u57f7\u884c\u5be6\u9ad4\u3002\u96d6\u7136 Container \u53ef\u4ee5\u88ab\u4fee\u6539\uff0c\u4f46\u9019\u4e9b\u4fee\u6539\u4e0d\u6703\u56de\u5beb\u5230\u539f\u672c\u7684 Image\u3002\u4e0b\u6b21\u7528\u540c\u4e00\u500b Image \u555f\u52d5\u65b0\u7684 Container\uff0c\u9084\u662f\u6703\u4f7f\u7528 Image \u4e2d\u7684\u539f\u59cb\u5167\u5bb9\u3002\u5982\u679c\u8981\u4fdd\u7559\u4fee\u6539\uff0c\u9700\u8981\u5c07 Container \u53e6\u5b58\u70ba\u65b0\u7684 Image\u3002\"\n        };\n\n        function checkAnswerAdv(qNum, selected, correctAns) {\n            const question = document.getElementById('qAdv' + qNum);\n            if (question.classList.contains('answered')) return;\n\n            question.classList.add('answered');\n            answeredAdv++;\n\n            const options = question.querySelectorAll('.options-adv li');\n            options.forEach(opt => {\n                opt.classList.add('disabled');\n                if (opt.textContent.startsWith(correctAns + '.')) {\n                    opt.classList.add('show-answer');\n                }\n            });\n\n            const feedback = document.getElementById('fbAdv' + qNum);\n            if (selected === correctAns) {\n                correctAdv++;\n                feedback.className = 'feedback-adv correct';\n                feedback.innerHTML = '\u2713 \u6b63\u78ba\uff01' + explanationsAdv[qNum];\n            } else {\n                feedback.className = 'feedback-adv wrong';\n                feedback.innerHTML = '\u2717 \u932f\u8aa4\u3002\u6b63\u78ba\u7b54\u6848\u662f ' + correctAns + '\u3002' + explanationsAdv[qNum];\n                options.forEach(opt => {\n                    if (opt.textContent.startsWith(selected + '.')) {\n                        opt.classList.add('wrong');\n                    }\n                });\n            }\n\n            if (answeredAdv === totalAdv) {\n                const scoreDiv = document.getElementById('scoreAdv');\n                scoreDiv.style.display = 'block';\n                let msg = '';\n                if (correctAdv === totalAdv) msg = '\ud83c\udfaf \u5b8c\u7f8e\uff01\u4f60\u5df2\u7d93\u6e96\u5099\u597d\u5be6\u6230\u4e86\uff01';\n                else if (correctAdv >= Math.ceil(totalAdv * 0.8)) msg = '\ud83d\udcaa \u5f88\u68d2\uff01\u518d\u8907\u7fd2\u4e00\u4e0b\u932f\u7684\u984c\u76ee';\n                else if (correctAdv >= Math.ceil(totalAdv * 0.6)) msg = '\ud83d\udcd6 \u5efa\u8b70\u91cd\u8b80\u76f8\u95dc\u6bb5\u843d\u5f8c\u518d\u8a66\u4e00\u6b21';\n                else msg = '\ud83d\udd04 \u5efa\u8b70\u91cd\u65b0\u95b1\u8b80\u6587\u4ef6\uff0c\u7279\u5225\u6ce8\u610f\u64cd\u4f5c\u6d41\u7a0b';\n                scoreDiv.innerHTML = '\u6e2c\u9a57\u5b8c\u6210\uff01\u5f97\u5206\uff1a' + correctAdv + ' \/ ' + totalAdv + '<br>' + msg;\n            }\n        }\n    \n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u6e2c\u9a57\uff1aDocker \u5165\u9580 &#8211; \u57fa\u790e\u6982\u5ff5 \u5171 5 \u984c\uff0c\u9ede\u9078\u7b54\u6848\u5f8c\u6703\u7acb\u5373\u986f\u793a\u7d50\u679c 1. Docker  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rolpb_likes":0,"footnotes":""},"categories":[238],"tags":[138,11,149],"class_list":["post-245","post","type-post","status-publish","format-standard","hentry","category-docker--","tag-docker","tag-11","tag-149"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"_links":{"self":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/posts\/245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":0,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}