{"id":34911,"date":"2023-03-01T16:57:34","date_gmt":"2023-01-15T16:31:33","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/"},"modified":"2024-04-29T16:53:38","modified_gmt":"2024-04-29T08:53:38","slug":"docker%e6%80%bb%e7%bb%93-3","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/","title":{"rendered":"Docker\u603b\u7ed3"},"content":{"rendered":"<p>\u6211\u5728\u7f16\u7a0b\u5b66\u6821\u91cc\u6709\u4f7f\u7528Docker\u7684\u7ecf\u9a8c\uff0c\u4f46\u662f\u56e0\u4e3a\u6709\u6bb5\u65f6\u95f4\u6ca1\u6709\u4f7f\u7528\uff0c\u6240\u4ee5\u5df2\u7ecf\u5fd8\u5f97\u5dee\u4e0d\u591a\u4e86\uff0c\u6240\u4ee5\u6211\u590d\u4e60\u4e86\u4e00\u4e0b\u3002<\/p>\n<h1>Docker\u547d\u4ee4<\/h1>\n<p>\u30ed\u30b0\u30a4\u30f3\u3059\u308b<br \/>\ndocker login<\/p>\n<p>\u30a4\u30e1\u30fc\u30b8\u3092\u524a\u9664\u3059\u308b<br \/>\ndocker rmi<\/p>\n<p>image\u306b\u540d\u524d\u3092\u3064\u3051\u308b<br \/>\ndocker tag IMAGE_ID IMAGE_NAME:TAG<\/p>\n<p>docker hub\u304b\u3089\u30a4\u30e1\u30fc\u30b8\u3092pull<br \/>\ndocker pull<\/p>\n<p>docker hub\u306b\u30a4\u30e1\u30fc\u30b8\u3092push<br \/>\ndocker push<\/p>\n<p>\u5982\u679c\u5c1a\u672a\u6346\u7ed1\u5b8c\u6210\u7684\u8bdd\uff0c<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">docker-compose down\/ docker-compose build\/ docker-compose up<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u3067down\u3057\u76f4\u3057\u3066\u304b\u3089\u3001\u518d\u5ea6build\u3068up\u3092\u3059\u308b<\/ul>\n<p>\u6216\u8005\uff0c\u60a8\u53ef\u4ee5\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u8fdb\u5165\u540e\u7aef\u5bb9\u5668\u5e76\u6267\u884cbundle install\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b3\u30f3\u30c6\u30ca\u306e\u518d\u8d77\u52d5\u30dd\u30ea\u30b7\u30fc\u3092\u4e0a\u66f8\u304d\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u306e\u5b9f\u884c\u5f8c\u306b\u524a\u9664<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">docker-compose run &#8211;rm image bash<\/ul>\n<div>\u8981\u5728dockerhub\u4e0a\u63a8\u9001\u65f6\u6ce8\u610f\u5c06\u6620\u50cf\u7684\u540d\u79f0\u548c\u4ed3\u5e93\u7684\u540d\u79f0\u4fdd\u6301\u4e00\u81f4\u3002\u5728\u4ee5\u4e0b\u540d\u79f0\u66f4\u6539\u547d\u4ee4\u4e2d\u66f4\u6539\u540e\u518d\u8fdb\u884c\u63a8\u9001\uff1adocker tag\u3002<\/div>\n<p>\u30b3\u30f3\u30c6\u30ca\u4f5c\u6210\uff0b\u30b9\u30bf\u30fc\u30c8<br \/>\ndocker run<br \/>\n#run = create + start<\/p>\n<p>\u30d7\u30ed\u30bb\u30b9\u3092\u8868\u793a<br \/>\ndocker ps -a<\/p>\n<p>\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308b<br \/>\ndocker run -it ubuntu bash<br \/>\n-i: \u30a4\u30f3\u30d7\u30c3\u30c8\u53ef\u80fd\u3000-t: \u8868\u793a\u3092\u7dba\u9e97\u306b\u3059\u308b<\/p>\n<p>container\u3092\u6b62\u3081\u308b<br \/>\ndocker stop container<\/p>\n<p>\u505c\u6b62\u3057\u305f\u30b3\u30f3\u30c6\u30ca\u3092up\u72b6\u614b\u306b\u3059\u308b\u3002\u307e\u3060\u3001container\u306b\u306f\u5165\u3063\u3066\u3044\u306a\u3044\u3002<br \/>\ndocker restart container<\/p>\n<p>\u30b3\u30f3\u30c6\u30ca\u306b\u5165\u308b<br \/>\ndocker exec -it container bash<\/p>\n<p>\u30b3\u30f3\u30c6\u30ca\u306b\u540d\u524d\u3092\u3064\u3051\u308b<br \/>\ndocker run \u2014name ubuntu<\/p>\n<p>\u7ed9\u5bb9\u5668\u547d\u540d\u7684\u76ee\u7684\u5305\u62ec\u4ee5\u4e0b\u4e09\u70b9\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u521b\u5efa\u4e00\u4e2a\u6301\u7eed\u8fd0\u884c\u7684\u5bb9\u5668\uff0c<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u4f7f\u7528\u5171\u4eab\u670d\u52a1\u5668\uff0c<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u65f6<\/ol>\n<p>container\u3092\u524a\u9664\u3059\u308b<br \/>\ndocker rm container<\/p>\n<p>container\u3092\u5168\u524a\u9664\u3059\u308b<br \/>\ndocker system prune<\/p>\n<p>detached mode\u00a0\u30b3\u30f3\u30c6\u30ca\u3092\u8d77\u52d5\u5f8c\u306bdetach\u3059\u308b\uff08\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u52d5\u304b\u3059\uff09<br \/>\ndocker run -d<\/p>\n<p>foreground mode\u30b3\u30f3\u30c6\u30ca\u3092exit\u5f8c\u306b\u524a\u9664\u3059\u308b\uff08\uff11\u56de\u304d\u308a\u306e\u30b3\u30f3\u30c6\u30ca\uff09<br \/>\ndocker run \u2014rm<\/p>\n<h1>\u66f4\u65b0Docker\u955c\u50cf\u7684\u65b9\u6cd5<\/h1>\n<p>\u7528\u5bb9\u5668\u521b\u5efaDocker\u955c\u50cf\u3002<\/p>\n<ul class=\"post-ul\">docker commit container<\/ul>\n<pre class=\"post-pre\"><code>xxx ~ % docker commit 98hogehogeohe ubuntu:updated\r\n#:\u3067\u30bf\u30b0\u4ed8\u3051\u3057\u3066\u3044\u308b\r\nsha256:7hogehogeohoegoeohehoehoeogeohoeoheoohogeoheg644d7ab3c8690e8147e6\r\nxxx ~ % docker images\u00a0 \r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#image\u304c2\u500b\u3067\u304d\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3002\r\nREPOSITORY \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 TAG \u00a0 \u00a0 \u00a0 IMAGE ID \u00a0 \u00a0 \u00a0 CREATED\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 SIZE\r\nubuntu \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 updated \u00a0 76sgsgasdgsd \u00a0 18 seconds ago \u00a0 77.8MB\r\nubuntu \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 latest\u00a0 \u00a0 d2hogehogeho \u00a0 11 months ago\u00a0 \u00a0 77.8MB\r\n<\/code><\/pre>\n<p>\u901a\u5e38\u60c5\u51b5\u4e0b\uff0c\u4eceDocker\u6587\u4ef6\u521b\u5efa\u955c\u50cf\u6bd4\u7b2c\u4e00\u79cd\u65b9\u6cd5\u66f4\u5e38\u89c1\u3002<\/p>\n<h3>Docker\u6587\u4ef6<\/h3>\n<p>\u4f7f\u7528Docker\u6587\u4ef6\u6765\u521b\u5efaDocker\u955c\u50cf\uff0c\u5b83\u53ef\u4ee5\u88ab\u89c6\u4e3aDocker\u955c\u50cf\u7684\u8bbe\u8ba1\u84dd\u56fe\u3002<\/p>\n<p>\u79fb\u52d5\u5230\u5b58\u5728Docker\u6587\u4ef6\u7684\u76ee\u5f55\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u521b\u5efa\u955c\u50cf\u3002<\/p>\n<pre class=\"post-pre\"><code>docker build .\r\n<\/code><\/pre>\n<p>\u30fb\u521a\u51fa\u7089\u7684\u5f62\u8c61 (TAG \u65e0) \u662f\u60ac\u800c\u672a\u51b3\u7684\u5f62\u8c61<\/p>\n<pre class=\"post-pre\"><code>docker images -f dangling=true\r\n#\u3067\u691c\u7d22\u3067\u304d\u308b\u3002\r\n<\/code><\/pre>\n<p>FROM<br \/>\n\u30d9\u30fc\u30b9\u3068\u306a\u308b\u30a4\u30e1\u30fc\u30b8\u3092\u6c7a\u5b9a<br \/>\nDocker\u30d5\u30a1\u30a4\u30eb\u306fFROM\u304b\u3089\u59cb\u3081\u308b<br \/>\n\u57fa\u672c\u7684\u306b\u306f\u3001OS\u3092\u6307\u5b9a\u3059\u308b=&gt;ubuntu\u3084alpine<br \/>\nalpine\u306f5MB\u306a\u306e\u3067\u8efd\u91cf\u3067\u4f7f\u7528\u53ef\u80fd<\/p>\n<p>RUN<br \/>\nLinux\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c<br \/>\nRUN\u3092\u4f7f\u3046\u3053\u3068\u3067\u597d\u304d\u306a\u3088\u3046\u306b\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<br \/>\nRUN\u6bce\u306bLayer\u304c\u4f5c\u3089\u308c\u308b<\/p>\n<p>CMD<br \/>\n\u30b3\u30de\u30f3\u30c9\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30b3\u30de\u30f3\u30c9<br \/>\nCMD[\u201cexecutable\u201d, \u201cparam1\u201d, \u201dparam2\u201d]\u3000\u4f8b\u3048\u3070\u3001[\u201c\/bin\/bash\u201c]\u307f\u305f\u3044\u306a\u611f\u3058\u3002<br \/>\n\u539f\u5247Docker\u30d5\u30a1\u30a4\u30eb\u306e\u6700\u5f8c\u306b\u8a18\u8ff0<br \/>\nLayer\u306f\u4f5c\u3089\u306a\u3044<br \/>\nCMD\u3068ENTRYPOINT\u306f\u4f3c\u3066\u3044\u308b\u306e\u3067\u6ce8\u610f\uff01<\/p>\n<p>\u5728Ubuntu\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528apt-get\uff08\u6216apt\uff09\u547d\u4ee4\u8fdb\u884c\u8f6f\u4ef6\u5305\u7ba1\u7406\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">apt-get update:<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u65b0\u3057\u3044\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30b9\u30c8\u3092\u53d6\u5f97<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">apt-get install<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<p>\u6700\u4f73\u5b9e\u8df5\uff1a\u5c3d\u91cf\u51cf\u5c11Docker\u955c\u50cf\u7684\u5206\u5c42\u6570\uff01\u5206\u5c42\u662f\u901a\u8fc7\u4ee5\u4e0b\u4e24\u4e2a\u6307\u4ee4\uff1aRUN\uff0cCOPY\u548cADD\u6765\u5b9e\u73b0\u7684\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b3\u30de\u30f3\u30c9\u3092 &amp;&amp;\u3067\u3064\u306a\u3052\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5\u3067\u6539\u884c\u3059\u308b<\/ul>\n<div>\u5728\u751f\u6210\u8fc7\u7a0b\u4e2d\uff0c\u4e3a\u4e86\u5229\u7528\u7f13\u5b58\uff0c\u6dfb\u52a0RUN\u8fdb\u884c\u6784\u5efa\u3002<br \/>\n\u786e\u8ba4\u4e00\u5207\u90fd\u6b63\u5e38\u540e\uff0c\u5c06RUN\u5408\u5e76\u4e3a\u4e00\u4e2a\u3002<\/div>\n<p>\u4e3a\u4ec0\u4e48\u8981\u6307\u5b9a\u5f53\u524d\u76ee\u5f55\u800c\u4e0d\u662f\u6307\u5b9aDocker\u6587\u4ef6\uff1f\u56e0\u4e3a\u53ef\u4ee5\u5c06\u8be5\u76ee\u5f55\u4f5c\u4e3a\u6784\u5efa\u4e0a\u4e0b\u6587\u6765\u4f7f\u7528\uff01<\/p>\n<p>\u5728Docker\u4e2d\uff0c\u4e00\u65e6\u6784\u5efa\u5b8c\u6210\uff0c\u5c31\u4f1a\u4f20\u9012\u7ed9Docker\u5b88\u62a4\u8fdb\u7a0b\u3002<br \/>\n\u901a\u5e38\u60c5\u51b5\u4e0b\uff0c\u4e0d\u4f1a\u5c06\u65e0\u9700\u7528\u4e8e\u6784\u5efa\u7684\u6587\u4ef6\u653e\u5165\u6784\u5efa\u4e0a\u4e0b\u6587\u4e2d\u3002<br \/>\n\u5982\u679c\u6709\u9700\u8981\u4f7f\u7528\u7684\u6587\u4ef6\uff0c\u53ef\u4ee5\u4f7f\u7528ADD\u6216COPY\u5c06\u6784\u5efa\u4e0a\u4e0b\u6587\u4e2d\u7684\u6587\u4ef6\u6dfb\u52a0\u5230\u955c\u50cf\u4e2d\u3002<\/p>\n<h3>\u590d\u5236<\/h3>\n<pre class=\"post-pre\"><code>COPY &lt;src&gt; &lt;destination&gt;\r\n<\/code><\/pre>\n<p>\u5982\u679c\u4f7f\u7528\u8fd9\u4e2a\u4e1c\u897f\uff0c\u53ef\u4ee5\u5c06\u653e\u5728build context\u4e2d\u7684\u6587\u4ef6\u7b49\u5e26\u5230\u5bb9\u5668\u4e2d\u3002<\/p>\n<h3>\u589e\u52a0<\/h3>\n<p>\u53ef\u4ee5\u505a\u7c7b\u4f3c\u4e8e\u590d\u5236\u7684\u4e8b\u60c5\u3002<\/p>\n<p>\u90a3\u4e48\uff0cCOPY\u548cADD\u7684\u533a\u522b\u662f\u4ec0\u4e48\uff1f<\/p>\n<div>\u62f7\u8d1d<br \/>\n\u5982\u679c\u53ea\u662f\u7b80\u5355\u5730\u62f7\u8d1d\u6587\u4ef6\u6216\u6587\u4ef6\u5939<br \/>\n\u6dfb\u52a0<br \/>\n\u60f3\u8981\u590d\u5236\u5e76\u89e3\u538b\u7f29tar\u538b\u7f29\u6587\u4ef6\u7684\u60c5\u51b5<\/div>\n<h3>\u5982\u679c\u6784\u5efa\u4e0a\u4e0b\u6587\u4e2d\u6ca1\u6709\u540d\u4e3aDockerfile\u7684\u6587\u4ef6<\/h3>\n<p>\u5f53\u4ee5\u4ee5\u4e0b\u65b9\u5f0f\u6267\u884c\u65f6\uff0c\u53ef\u4ee5\u6307\u5b9a\u9664\u4e86\u6784\u5efa\u4e0a\u4e0b\u6587\u4e4b\u5916\u7684\u5176\u4ed6\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code>docker build -f &lt;docker file name&gt;&lt;build context&gt;\r\n# \u30d1\u30b9\u3067\u3082\u6307\u5b9a\u53ef\u80fd \r\ndocker build -f ..\/Dockerfile.dev\r\n<\/code><\/pre>\n<h3>\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf<\/h3>\n<pre class=\"post-pre\"><code>ENV &lt;key&gt; &lt;value&gt;\r\nENV &lt;key&gt;=&lt;value&gt;\r\n<\/code><\/pre>\n<h3>\u5c55\u793a\u73af\u5883\u53d8\u91cf\u7684\u6e05\u5355<\/h3>\n<pre class=\"post-pre\"><code>$ env\r\n<\/code><\/pre>\n<h3>\u5de5\u4f5c\u76ee\u5f55<\/h3>\n<p>\u66f4\u6539Docker\u6307\u4ee4\u7684\u6267\u884c\u76ee\u5f55\u3002<\/p>\n<p>RUN\u6307\u4ee4\u4f1a\u5728\u6839\u76ee\u5f55\u4e0b\u6267\u884c\uff0c\u4f8b\u5982\uff0c<\/p>\n<pre class=\"post-pre\"><code>RUN mkdir sample_folder\r\nRUN cd sample_folder\r\nRUN touch sample_file\r\n<\/code><\/pre>\n<p>\u63cf\u8ff0\u5982\u4e0b\uff0c\u6837\u672c\u6587\u4ef6\u5939\u4e2d\u4e0d\u4f1a\u521b\u5efa\u6587\u4ef6\u3002<\/p>\n<p>\u90a3\u4e48\uff0c\u5982\u4f55\u5728\u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u6587\u4ef6\uff1f<\/p>\n<p>\u4f7f\u7528WORKDIR\u6765\u5f97\u51fa\u7ed3\u8bba\u3002<\/p>\n<pre class=\"post-pre\"><code>FROM ubuntu:latest\r\nRUN mkdir sample_folder\r\n\r\n#\u7d76\u5bfe\u30d1\u30b9\u3067\u6307\u5b9a\u3059\u308b\r\nWORKDIR \/sample_folder\r\nRUN touch sample_file\r\n<\/code><\/pre>\n<ul class=\"post-ul\">WORKDIR\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u52dd\u624b\u306b\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u3063\u3066\u304f\u308c\u308b\u306e\u3067RUN mkdir\u3059\u308b\u5fc5\u8981\u306f\u306a\u3044\u3002<\/ul>\n<h1>\u5c06\u6587\u4ef6\u7cfb\u7edf\u6302\u8f7d\u5230\u5bb9\u5668\u4e0a\uff08\u542c\u8d77\u6765\u8d85\u7ea7\u91cd\u8981\uff09<\/h1>\n<pre class=\"post-pre\"><code>-v host:container\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u5bb9\u5668\uff0c\u53ef\u4ee5\u6a21\u62df\u5bbf\u4e3b\u673a\u7684\u6587\u4ef6\u7cfb\u7edf\u3002\u4ee3\u7801\u653e\u5728\u5bbf\u4e3b\u673a\u4e0a\uff0c\u4f7f\u7528\u5bb9\u5668\u4f5c\u4e3a\u6267\u884c\u73af\u5883\u548c\u5206\u6790\u73af\u5883\u3002<\/p>\n<h3>\u6307\u5b9a\u7528\u6237ID\u548c\u7ec4ID\u4ee5\u8fd0\u884c\u5bb9\u5668\u3002<\/h3>\n<p>\u5f53\u5c1d\u8bd5\u5728Dockerfile\u4e2d\u5199\u5165created_in_Dockerfile\u65f6\uff0c\u4f1a\u906d\u5230\u6743\u9650\u62d2\u7edd\u3002<br \/>\n\u4f7f\u7528ls -la\u547d\u4ee4\u68c0\u67e5\u6743\u9650\uff0c\u7ed3\u679c\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<h3>\u5c06Docker\u955c\u50cf\u538b\u7f29\u4e3atar\u6587\u4ef6\u3002<\/h3>\n<pre class=\"post-pre\"><code>docker save myimage &gt; mydocker.tar\r\nssh -i mydocker.pem ubuntu@&lt;hostname&gt;\r\n# tar\u30d5\u30a1\u30a4\u30eb\u3092Dockerimage\u306b\u5909\u63db\r\ndocker load &lt; mydocker.tar\r\ndocker run -it myimage bash\r\n<\/code><\/pre>\n<h3>\u4f7f\u7528ec2\u7684\u79c1\u94a5\u6587\u4ef6(pem key)\u8fdb\u884csftp\u64cd\u4f5c\u3002<\/h3>\n<pre class=\"post-pre\"><code>sftp -i mydocker.pem ubuntu@&lt;hostname&gt; \u00a0\r\n\uff03ec2\u306b\u30c7\u30fc\u30bf\u3092\u8ee2\u9001\u3059\u308b\r\nput local\/path\r\n# ec2\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3059\u308b\r\nget remote\/path\r\n<\/code><\/pre>\n<h1>docker-compose<\/h1>\n<p>Docker\u7ec4\u5408<\/p>\n<p>\u5f53\u4f7f\u7528Docker\u547d\u4ee4\u542f\u52a8\u5bb9\u5668\u65f6\uff0c\u9700\u8981\u6307\u5b9a\u9009\u9879\u3002<br \/>\n\u4f8b\u5982\uff0c\u53ef\u4ee5\u4f7f\u7528-it\u3001-v\u3001-p\u7b49\u591a\u4e2a\u9009\u9879\u3002<\/p>\n<p>\u7531\u4e8e\u6bcf\u6b21\u90fd\u5c06\u5176\u63cf\u8ff0\u4e0b\u6765\u592a\u957f\u800c\u4e14\u9ebb\u70e6\uff0c\u6240\u4ee5\u63d0\u524d\u8bbe\u7f6e\u597d\u8fd9\u4e2a\u914d\u7f6e\uff0c\u5e76\u4f7f\u7528docker-compose\u547d\u4ee4\u6765\u7b80\u5316\u64cd\u4f5c\u3002<\/p>\n<p>\u800c\u4e14\uff0c\u8fd8\u6709\u53e6\u4e00\u4e2a\u7406\u7531\u662f\u4f3c\u4e4e\u53ef\u4ee5\u5728\u60f3\u8981\u4f7f\u7528\u591a\u4e2aDocker\u5bb9\u5668\u7684\u60c5\u51b5\u4e0b\u4f7f\u7528\u3002<\/p>\n<h3>docker-compose\u547d\u4ee4<\/h3>\n<p>docker-compose.yml\u3092\u5143\u306b\u30b3\u30f3\u30c6\u30ca\u7fa4\u3092\u4f5c\u6210\u3057\u8d77\u52d5<br \/>\ndocker-compose up<\/p>\n<p>Docker\u30a4\u30e1\u30fc\u30b8\u306e\u30d3\u30eb\u30c9<br \/>\n\u2013build<\/p>\n<p>Docker\u30b3\u30f3\u30c6\u30ca\u3092\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u8d77\u52d5<br \/>\n-d<\/p>\n<p>\u505c\u6b62\u5bb9\u5668<br \/>\ndocker-compose stop<\/p>\n<p>\u5220\u9664\u5bb9\u5668<br \/>\ndocker-compose rm -f<\/p>\n<p>docker-compose.yml\u3092\u5143\u306b\u30b3\u30f3\u30c6\u30ca\u7fa4\u3092\u505c\u6b62\u3057\u3066\u524a\u9664<br \/>\ndocker-compose down<\/p>\n<p>Docker\u30b3\u30f3\u30c6\u30ca\u306e\u518d\u8d77\u52d5<br \/>\ndocker-compose restart<\/p>\n<p>Docker\u30b3\u30f3\u30c6\u30ca\u304c\u8d77\u52d5\u3057\u3066\u3044\u308b\u304b\u78ba\u8a8d<br \/>\ndocker-compose ps<\/p>\n<p>\u30b3\u30f3\u30c6\u30ca\u3067\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u30b3\u30de\u30f3\u30c9<br \/>\ndocker-compose run [\u30b3\u30f3\u30c6\u30ca\u540d] [\u30b3\u30f3\u30c6\u30ca\u3067\u5b9f\u884c\u3057\u305f\u3044\u30b3\u30de\u30f3\u30c9]<br \/>\ndocker-compose exec [\u30b3\u30f3\u30c6\u30ca\u540d] [\u30b3\u30f3\u30c6\u30ca\u3067\u5b9f\u884c\u3057\u305f\u3044\u30b3\u30de\u30f3\u30c9]<\/p>\n<p>Gemfile\u306b\u8a18\u8ff0\u3057\u305fGem\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\ndocker-compose build<\/p>\n<h1>\u8fd0\u884c\u548c\u6267\u884c\u7684\u533a\u522b<\/h1>\n<p>\u8dd1\u6b65 b\u00f9)<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b3\u30f3\u30c6\u30ca\u3092\u65b0\u3057\u304f\u4f5c\u3063\u3066\u5b9f\u884c\u3059\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u300cdocker-compose up\u300d\u7b49\u3067\u30b3\u30f3\u30c6\u30ca\u304c\u8d77\u52d5\u3057\u3066\u3044\u306a\u304f\u3066\u3082\u4f7f\u3048\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u65b0\u3057\u3044\u30b3\u30f3\u30c6\u30ca\u306b\u63a5\u7d9a\u3059\u308b\u306e\u3067\u30b3\u30de\u30f3\u30c9\u5c65\u6b74\u304c\u6b8b\u3089\u306a\u3044\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4f4e\u901f\u7528\u9014\u30b3\u30f3\u30bd\u30fc\u30eb\u7528\u306e\u30b3\u30f3\u30c6\u30ca\u7b49\u3001\u666e\u6bb5\u306f\u7acb\u3061\u4e0a\u3052\u3082\u3057\u306a\u3044\u304c\u3001\u3044\u3056\u30b3\u30de\u30f3\u30c9\u4f5c\u696d\u306e\u969b\u306b\u306e\u307f\u4f7f\u3046\u30b3\u30f3\u30c6\u30ca\u3067\u4f5c\u696d\u3092\u3059\u308b\u5834\u5408\u306f\u3053\u308c\u3092\u4f7f\u3046\u3002<\/ul>\n<p>\u6267\u884c<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">docker-compose up \u306a\u3069\u3067\u8d77\u52d5\u3057\u3066\u3044\u308b\u30b3\u30f3\u30c6\u30ca\u3092\u5229\u7528\u3059\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u8d77\u52d5\u4e2d\u306e docker \u30b3\u30f3\u30c6\u30ca\u304c\u306a\u3044\u3068\u5b9f\u884c\u3067\u304d\u306a\u3044\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u540c\u3058\u30b3\u30f3\u30c6\u30ca\u306b\u63a5\u7d9a\u3059\u308b\u306e\u3067\u30b3\u30de\u30f3\u30c9\u5c65\u6b74\u304c\u6b8b\u3063\u3066\u3044\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u9ad8\u901f\u7528\u9014DB\u30b3\u30f3\u30c6\u30ca\u7b49\u3001\u666e\u6bb5\u304b\u3089\u5f53\u305f\u308a\u524d\u306b\u7acb\u3061\u4e0a\u3052\u3066\u3044\u308b\u30b3\u30f3\u30c6\u30ca\u306b\u63a5\u7d9a\u3059\u308b\u5834\u5408\u306f\u3053\u3061\u3089\u3092\u4f7f\u3046\u3002<\/ul>\n<h1>\u642d\u5efaRAILS\u7684\u73af\u5883<\/h1>\n<pre class=\"post-pre\"><code><span class=\"na\">version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">3'<\/span>\r\n<span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"na\">\u00a0 db-data<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"na\">services<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"na\">\u00a0 web<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 build<\/span><span class=\"pi\">:<\/span> <span class=\"s\">.<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 ports<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 - 3000:3000<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 volumes<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 - \".:\/product-register\"<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 environment<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 - \"DATABASE_PASSWORD=postgres\"<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 tty<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">true<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">true<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 depends_on<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 - db<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 links<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 - db<\/span>\r\n<span class=\"na\">\u00a0 db<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 volumes<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 - \"db-data:\/var\/lib\/postgresql\/data\"<\/span>\r\n<span class=\"na\">\u00a0 \u00a0 environment<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 - 'POSTGRES_USER=postgres'<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 - 'POSTGRES_PASSWORD=postgres'<\/span>\r\n\r\n<span class=\"s\">dockerfile<\/span>\r\n\r\n<span class=\"s\">FROM ruby:2.5<\/span>\r\n<span class=\"s\">RUN apt-get update &amp;&amp; apt-get install -y \\<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 \u00a0 build-essential\\<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 \u00a0 libpq-dev\\<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 \u00a0 nodejs\\<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 \u00a0 postgresql-client\\<\/span>\r\n<span class=\"s\">\u00a0 \u00a0 \u00a0 \u00a0 yarn<\/span>\r\n<span class=\"s\">WORKDIR \/product-register<\/span>\r\n<span class=\"s\">COPY Gemfile Gemfile.lock \/product-register\/<\/span>\r\n<span class=\"s\">RUN bundle install<\/span>\r\n<\/code><\/pre>\n<h1>\u521b\u5efaRails\u9879\u76ee<\/h1>\n<pre class=\"post-pre\"><code>docker-compose run web rails new . --force --no-deps --database=postgresql\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>docker-compose build\r\n<\/code><\/pre>\n<p>\u8bf7\u914d\u7f6e\u6570\u636e\u5e93\u8fde\u63a5\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">default<\/span><span class=\"pi\">:<\/span> <span class=\"nl\">&amp;default<\/span>\r\n  <span class=\"na\">adapter<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgresql<\/span>\r\n  <span class=\"na\">encoding<\/span><span class=\"pi\">:<\/span> <span class=\"s\">utf8<\/span>\r\n  <span class=\"c1\"># For details on connection pooling, see Rails configuration guide<\/span>\r\n  <span class=\"c1\"># https:\/\/guides.rubyonrails.org\/configuring.html#database-pooling<\/span>\r\n  <span class=\"na\">pool<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;%= ENV.fetch(\"RAILS_MAX_THREADS\") { 5 } %&gt;<\/span>\r\n  <span class=\"na\">host<\/span><span class=\"pi\">:<\/span> <span class=\"s\">db<\/span>\r\n  <span class=\"na\">username<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;%= ENV['POSTGRES_USER'] %&gt;<\/span>\r\n  <span class=\"na\">password<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;%= ENV['POSTGRES_PASSWORD'] %&gt;<\/span>\r\n\r\n<span class=\"na\">development<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">&lt;&lt;<\/span><span class=\"pi\">:<\/span> <span class=\"nv\">*default<\/span>\r\n  <span class=\"na\">database<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app_development<\/span>\r\n\r\n<span class=\"na\">test<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">&lt;&lt;<\/span><span class=\"pi\">:<\/span> <span class=\"nv\">*default<\/span>\r\n  <span class=\"na\">database<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app_test<\/span>\r\n<span class=\"s\">.<\/span>\r\n<span class=\"s\">.<\/span>\r\n<span class=\"s\">.<\/span>\r\n<\/code><\/pre>\n<h2>\u521b\u5efa\u6570\u636e\u5e93<\/h2>\n<pre class=\"post-pre\"><code>docker-compose run web rails db:create\r\n<\/code><\/pre>\n<h3>\u542f\u52a8\u56fe\u50cf<\/h3>\n<p>\u6267\u884cdocker-compose up\u547d\u4ee4\u540e\uff0c\u8bbf\u95eehttp:\/\/localhost:3000\/\uff0c\u5982\u679c\u80fd\u591f\u6b63\u5e38\u663e\u793a\u9875\u9762\u5219\u8868\u793a\u6210\u529f\u3002<br \/>\n\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0c\u7531\u4e8e\u5728\u672c\u5730\u73af\u5883\u4e2d\u4f7f\u7528\u4e86docker-compose.yml\u6587\u4ef6\u4e2d\u7684ports\u914d\u7f6e\uff0c\u5176\u4e2d\u5de6\u4fa7\u76843000:3000\u7aef\u53e3\u7528\u4e8e\u672c\u5730\uff0c\u6240\u4ee5\u5982\u679c\u5c06\u5176\u66f4\u6539\u4e3a\u5176\u4ed6\u7aef\u53e3\uff0c\u8bf7\u4f7f\u7528\u5bf9\u5e94\u7684\u7aef\u53e3\u8fdb\u884c\u8bbf\u95ee\u3002\u53f3\u4fa7\u662fdocker\u7684\u7aef\u53e3\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u5728\u7f16\u7a0b\u5b66\u6821\u91cc\u6709\u4f7f\u7528Docker\u7684\u7ecf\u9a8c\uff0c\u4f46\u662f\u56e0\u4e3a\u6709\u6bb5\u65f6\u95f4\u6ca1\u6709\u4f7f\u7528\uff0c\u6240\u4ee5\u5df2\u7ecf\u5fd8\u5f97\u5dee\u4e0d\u591a\u4e86\uff0c\u6240\u4ee5\u6211\u590d\u4e60\u4e86\u4e00\u4e0b\u3002 D [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-34911","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker\u603b\u7ed3 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/docker\u603b\u7ed3-3\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker\u603b\u7ed3\" \/>\n<meta property=\"og:description\" content=\"\u6211\u5728\u7f16\u7a0b\u5b66\u6821\u91cc\u6709\u4f7f\u7528Docker\u7684\u7ecf\u9a8c\uff0c\u4f46\u662f\u56e0\u4e3a\u6709\u6bb5\u65f6\u95f4\u6ca1\u6709\u4f7f\u7528\uff0c\u6240\u4ee5\u5df2\u7ecf\u5fd8\u5f97\u5dee\u4e0d\u591a\u4e86\uff0c\u6240\u4ee5\u6211\u590d\u4e60\u4e86\u4e00\u4e0b\u3002 D [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/docker\u603b\u7ed3-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-15T16:31:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T08:53:38+00:00\" \/>\n<meta name=\"author\" content=\"\u79d1, \u96c5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u96c5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/\",\"name\":\"Docker\u603b\u7ed3 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-01-15T16:31:33+00:00\",\"dateModified\":\"2024-04-29T08:53:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker\u603b\u7ed3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\",\"name\":\"\u79d1, \u96c5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u96c5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Docker\u603b\u7ed3 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/docker\u603b\u7ed3-3\/","og_locale":"zh_CN","og_type":"article","og_title":"Docker\u603b\u7ed3","og_description":"\u6211\u5728\u7f16\u7a0b\u5b66\u6821\u91cc\u6709\u4f7f\u7528Docker\u7684\u7ecf\u9a8c\uff0c\u4f46\u662f\u56e0\u4e3a\u6709\u6bb5\u65f6\u95f4\u6ca1\u6709\u4f7f\u7528\uff0c\u6240\u4ee5\u5df2\u7ecf\u5fd8\u5f97\u5dee\u4e0d\u591a\u4e86\uff0c\u6240\u4ee5\u6211\u590d\u4e60\u4e86\u4e00\u4e0b\u3002 D [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/docker\u603b\u7ed3-3\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-01-15T16:31:33+00:00","article_modified_time":"2024-04-29T08:53:38+00:00","author":"\u79d1, \u96c5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u96c5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/","name":"Docker\u603b\u7ed3 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-01-15T16:31:33+00:00","dateModified":"2024-04-29T08:53:38+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker\u603b\u7ed3"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a","name":"\u79d1, \u96c5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","caption":"\u79d1, \u96c5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker%e6%80%bb%e7%bb%93-3\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/34911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=34911"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/34911\/revisions"}],"predecessor-version":[{"id":86477,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/34911\/revisions\/86477"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=34911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=34911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=34911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}