{"id":35147,"date":"2023-02-12T05:36:55","date_gmt":"2023-04-02T20:57:37","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/"},"modified":"2024-01-15T08:32:34","modified_gmt":"2024-01-15T00:32:34","slug":"docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/","title":{"rendered":"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker"},"content":{"rendered":"<p>\u6211\u6b63\u5728\u5199\u5173\u4e8e\u6211\u5728Docker\u76f8\u5173\u65b9\u9762\u5c1d\u8bd5\u8fc7\u7684\u4e8b\u60c5\u3002\u7531\u4e8e\u662f\u7b2c\u4e00\u6b21\u5c1d\u8bd5\uff0c\u6240\u4ee5\u6211\u5c06\u4ece\u5b89\u88c5\u5f00\u59cb\u8fdb\u884c\u3002\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u8bb0\u5f55\u4e86\u6211\u7684\u64cd\u4f5c\u8fc7\u7a0b\u3002<\/p>\n<p>\u7531\u4e8e\u8bb8\u591a\u4eba\u5df2\u7ecf\u89e3\u91ca\u4e86\u201cDocker\u662f\u4ec0\u4e48\uff1f\u201d\u6216\u8005\u201c\u5b83\u7684\u5de5\u4f5c\u539f\u7406\u662f\u4ec0\u4e48\uff1f\u201d\u4e4b\u7c7b\u7684\u95ee\u9898\uff0c\u6211\u4f1a\u7701\u7565\u6389\u8fd9\u90e8\u5206\u89e3\u91ca\u3002<\/p>\n<h1>\u51c6\u5907Docker\u4e3b\u673a<\/h1>\n<p>\u6211\u4f1a\u4f7f\u7528Vagrant\u5b89\u88c5Ubuntu\u3002<br \/>\n\u8fd9\u6b21\u6211\u4eec\u5c06\u5c1d\u8bd5\u4f7f\u7528Ubuntu Vivid 15.04\uff0c\u6240\u4ee5\u6211\u5df2\u7ecf\u521b\u5efa\u4e86\u4ee5\u4e0b\u7684Vagrantfile\u3002<\/p>\n<pre class=\"post-pre\"><code>Vagrant.configure(2) do |config|\r\n  config.vm.define :docker1 do |node|\r\n    node.vm.box = 'ubuntu\/vivid64'\r\n    node.vm.network 'private_network', ip: '192.168.100.10'\r\n  end\r\nend\r\n<\/code><\/pre>\n<p>\u4f7f\u7528&#8221;vagrant up&#8221;\u547d\u4ee4\u6765\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vagrant up\r\n<\/code><\/pre>\n<p>\u4f7f\u7528vagrant ssh\u547d\u4ee4\u767b\u5f55\uff08docker1\u662f\u5728Vagrantfile\u4e2d\u6307\u5b9a\u7684\u8282\u70b9\u540d\u79f0\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vagrant ssh docker1\r\n<\/code><\/pre>\n<h1>\u5b89\u88c5Docker<\/h1>\n<p>\u8bf7\u6309\u7167Docker\u5b89\u88c5\u6307\u5357\u8fdb\u884c\u5b89\u88c5\u3002<br \/>\nhttps:\/\/docs.docker.com\/engine\/installation\/ubuntulinux\/<\/p>\n<h2>\u68c0\u67e5\u5185\u6838\u662f\u5426\u4e3a3.10\u4ee5\u4e0a<\/h2>\n<p>\u636e\u8bf4\u5982\u679c\u5185\u6838\u7248\u672c\u4f4e\u4e8e3.10\uff0c\u5c31\u65e0\u6cd5\u6b63\u5e38\u8fd0\u884c\uff0c\u6240\u4ee5\u6211\u5c06\u67e5\u627e\u5185\u6838\u7248\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">uname<\/span> <span class=\"nt\">-r<\/span>\r\n3.19.0-43-generic\r\n<\/code><\/pre>\n<p>\u6ca1\u95ee\u9898\u3002<\/p>\n<h2>\u5728apt\u4e2d\u6ce8\u518cDocker\u7684\u5b58\u50a8\u5e93\u3002<\/h2>\n<p>Docker\u7684\u8f6f\u4ef6\u5305\u4f3c\u4e4e\u662f\u901a\u8fc7Docker\u63d0\u4f9b\u7684\u5b58\u50a8\u5e93\u8fdb\u884c\u4e0b\u8f7d\u7684\uff0c\u6240\u4ee5\u9700\u8981\u5c06\u5176\u6dfb\u52a0\u5230apt\u7684\u6e90\u4e2d\u3002<\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u6ce8\u518cgpg\u5bc6\u94a5\uff08\u4ee5\u4e0b\u662f\u5b9e\u9645\u6267\u884c\u7684\u547d\u4ee4\uff0c\u4f46\u7531\u4e8e\u5173\u952e\u6027\u8d28\uff0c\u8bf7\u786e\u4fdd\u67e5\u9605\u5b98\u65b9\u5b89\u88c5\u6307\u5357\u4ee5\u786e\u4fdd\u64cd\u4f5c\u6b63\u786e\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-key adv <span class=\"nt\">--keyserver<\/span> hkp:\/\/p80.pool.sks-keyservers.net:80 <span class=\"nt\">--recv-keys<\/span> 58118E89F3A912897C070ADBF76221572C52609D\r\nExecuting: gpg <span class=\"nt\">--ignore-time-conflict<\/span> <span class=\"nt\">--no-options<\/span> <span class=\"nt\">--no-default-keyring<\/span> <span class=\"nt\">--homedir<\/span> \/tmp\/tmp.eqX8aVFex6 <span class=\"nt\">--no-auto-check-trustdb<\/span> <span class=\"nt\">--trust-model<\/span> always <span class=\"nt\">--keyring<\/span> \/etc\/apt\/trusted.gpg <span class=\"nt\">--primary-keyring<\/span> \/etc\/apt\/trusted.gpg <span class=\"nt\">--keyserver<\/span> hkp:\/\/p80.pool.sks-keyservers.net:80 <span class=\"nt\">--recv-keys<\/span> 58118E89F3A912897C070ADBF76221572C52609D\r\ngpg: requesting key 2C52609D from hkp server p80.pool.sks-keyservers.net\r\ngpg: key 2C52609D: public key <span class=\"s2\">\"Docker Release Tool (releasedocker) &lt;docker@docker.com&gt;\"<\/span> imported\r\ngpg: Total number processed: 1\r\ngpg:               imported: 1  <span class=\"o\">(<\/span>RSA: 1<span class=\"o\">)<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\u5c06\u6dfb\u52a0source\u7684\u5b9a\u4e49\u3002<br \/>\n\u5b89\u88c5\u6307\u5357\u4e2d\u8981\u6c42\u521b\u5efa\u4ee5\u4e0b\u6587\u4ef6\u3002<\/p>\n<blockquote><p>\/docker.list \u662f\u4f4d\u4e8e \/etc\/apt\/sources.list.d\/ \u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u3002<\/p><\/blockquote>\n<p>\u6839\u636e\u4e0d\u540c\u7248\u672c\uff0c\u4e0a\u8ff0\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9\u4f1a\u6709\u6240\u4e0d\u540c\u3002\u7531\u4e8e\u672c\u6b21\u662fUbuntu Vivid 15.04\u7248\u672c\uff0c\u56e0\u6b64\u6211\u505a\u4e86\u4ee5\u4e0b\u7684\u8bbe\u5b9a\u3002<\/p>\n<pre class=\"post-pre\"><code>deb https:\/\/apt.dockerproject.org\/repo ubuntu-vivid main\r\n<\/code><\/pre>\n<p>\u53ea\u9700\u8981\u5c06\u300cubuntu-vivid\u300d\u66ff\u6362\u4e3a14.04\u5219\u662ftrusty\uff0c15.10\u5219\u662fwily\u5373\u53ef\u3002<\/p>\n<p>\u56e0\u4e3a\u6dfb\u52a0\u4e86\u6e90\uff0c\u6240\u4ee5\u9700\u8981\u66f4\u65b0apt\u7684\u7d22\u5f15\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>aptitude update\r\nGet: 1 https:\/\/apt.dockerproject.org ubuntu-vivid InRelease <span class=\"o\">[<\/span>442 B]\r\nIgn https:\/\/apt.dockerproject.org ubuntu-vivid InRelease\r\nGet: 2 https:\/\/apt.dockerproject.org ubuntu-vivid Release.gpg <span class=\"o\">[<\/span>442 B]\r\nHit http:\/\/archive.ubuntu.com vivid InRelease\r\nHit http:\/\/security.ubuntu.com vivid-security InRelease\r\nGet: 3 https:\/\/apt.dockerproject.org ubuntu-vivid Release\r\nGet: 4 https:\/\/apt.dockerproject.org ubuntu-vivid\/main amd64 Packages\r\nHit http:\/\/archive.ubuntu.com vivid-updates InRelease\r\nGet: 5 http:\/\/security.ubuntu.com vivid-security\/main Sources <span class=\"o\">[<\/span>57.5 kB]\r\nGet: 6 https:\/\/apt.dockerproject.org ubuntu-vivid\/main Translation-en\r\nGet: 7 http:\/\/archive.ubuntu.com vivid-backports InRelease <span class=\"o\">[<\/span>64.5 kB]\r\n\uff08\u5f8c\u7565\uff09\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u5b89\u88c5\u6307\u5357\u4e2d\u63d0\u5230\u4e86\u8981\u5220\u9664lxc-docker\uff0c\u6240\u4ee5\u6211\u4eec\u5148\u786e\u8ba4\u4e00\u4e0b\u5b83\u662f\u5426\u6ca1\u6709\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span>aptitude search lxc\r\np   libclxclient-dev                             - Development file <span class=\"k\">for <\/span>libclxclient\r\np   libclxclient3                                - X Window System C++ access library\r\nv   liblxc0                                      -\r\np   liblxc1                                      - Linux Containers userspace tools <span class=\"o\">(<\/span>library<span class=\"o\">)<\/span>\r\np   lua-lxc                                      - Linux Containers userspace tools <span class=\"o\">(<\/span>LUA bindings<span class=\"o\">)<\/span>\r\np   lxc                                          - Linux Containers userspace tools\r\np   lxc-android-config                           - configuration to fire up an ubuntu-touch android conta\r\np   lxc-dbg                                      - Linux Containers userspace tools <span class=\"o\">(<\/span>debug<span class=\"o\">)<\/span>\r\np   lxc-dev                                      - Linux Containers userspace tools <span class=\"o\">(<\/span>development<span class=\"o\">)<\/span>\r\np   lxc-templates                                - Linux Containers userspace tools <span class=\"o\">(<\/span>templates<span class=\"o\">)<\/span>\r\np   lxc-tests                                    - Linux Containers userspace tools <span class=\"o\">(<\/span><span class=\"nb\">test <\/span>binaries<span class=\"o\">)<\/span>\r\np   lxcfs                                        - FUSE based filesystem <span class=\"k\">for <\/span>LXC\r\np   lxctl                                        - Utility to manage LXC\r\np   nova-compute-lxc                             - OpenStack Compute - compute node <span class=\"o\">(<\/span>LXC<span class=\"o\">)<\/span>\r\np   python-lxc                                   - Linux container userspace tools <span class=\"o\">(<\/span>Python 2.x bindings<span class=\"o\">)<\/span>\r\np   python3-lxc                                  - Linux Containers userspace tools <span class=\"o\">(<\/span>Python 3.x bindings<span class=\"o\">)<\/span>\r\np   unity8-lxc                                   - Unity8 LXC integration\r\n<\/code><\/pre>\n<p>\u6709\u4eba\u63d0\u9192\u8981\u786e\u8ba4\u4e00\u4e0bdocker-engine\u662f\u5426\u5df2\u4eceDocker\u7684\u5b58\u50a8\u5e93\u4e2d\u4e0b\u8f7d\uff0c\u6211\u4f1a\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span>apt-cache policy docker-engine\r\ndocker-engine:\r\n  Installed: <span class=\"o\">(<\/span>none<span class=\"o\">)<\/span>\r\n  Candidate: 1.9.1-0~vivid\r\n  Version table:\r\n     1.9.1-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.9.0-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.8.3-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.8.2-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.8.1-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.8.0-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.7.1-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.7.0-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.6.2-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.6.1-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.6.0-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n     1.5.0-0~vivid 0\r\n        500 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main amd64 Packages\r\n<\/code><\/pre>\n<p>\u770b\u8d77\u6765\u5f88\u5065\u58ee\u3002<br \/>\n\u6211\u4eec\u5148\u5728\u8fd9\u91cc\u8fdb\u884c\u4e00\u6b21\u5347\u7ea7\uff0c\u66f4\u65b0\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>aptitude upgrade\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5linux-image-extra<\/h2>\n<p>\u4e3a\u4e86\u4f7f\u7528aufs\u5b58\u50a8\u9a71\u52a8\u7a0b\u5e8f\uff0c\u5728Linux\u7cfb\u7edf\u4e0a\u5b89\u88c5\u540d\u4e3alinux-image-extra\u7684\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>aptitude <span class=\"nb\">install <\/span>linux-image-extra-<span class=\"si\">$(<\/span><span class=\"nb\">uname<\/span> <span class=\"nt\">-r<\/span><span class=\"si\">)<\/span>\r\nThe following NEW packages will be installed:\r\n  crda<span class=\"o\">{<\/span>a<span class=\"o\">}<\/span> iw<span class=\"o\">{<\/span>a<span class=\"o\">}<\/span> libnl-3-200<span class=\"o\">{<\/span>a<span class=\"o\">}<\/span> libnl-genl-3-200<span class=\"o\">{<\/span>a<span class=\"o\">}<\/span> linux-image-extra-3.19.0-43-generic\r\n  wireless-regdb<span class=\"o\">{<\/span>a<span class=\"o\">}<\/span>\r\n0 packages upgraded, 6 newly installed, 0 to remove and 0 not upgraded.\r\nNeed to get 38.6 MB of archives. After unpacking 162 MB will be used.\r\nDo you want to <span class=\"k\">continue<\/span>? <span class=\"o\">[<\/span>Y\/n\/?] y\r\nGet: 1 http:\/\/archive.ubuntu.com\/ubuntu\/ vivid\/main libnl-3-200 amd64 3.2.24-2 <span class=\"o\">[<\/span>47.3 kB]\r\nGet: 2 http:\/\/archive.ubuntu.com\/ubuntu\/ vivid\/main libnl-genl-3-200 amd64 3.2.24-2 <span class=\"o\">[<\/span>10.6 kB]\r\nGet: 3 http:\/\/archive.ubuntu.com\/ubuntu\/ vivid-updates\/main wireless-regdb all 2014.11.18-1ubuntu1~ubuntu15.04.1 <span class=\"o\">[<\/span>8290 B]\r\n\uff08\u5f8c\u7565\uff09\r\n<\/code><\/pre>\n<p>\u53e6\u5916\uff0c\u5bf9\u4e8eUbuntu Precise 12.04\uff08LTS\uff09\u7684\u60c5\u51b5\uff0c\u5b89\u88c5\u65b9\u6cd5\u4f3c\u4e4e\u6709\u6240\u4e0d\u540c\uff0c\u8bf7\u67e5\u9605\u5b98\u65b9\u7684\u5b89\u88c5\u6307\u5357\u3002<\/p>\n<h2>\u5b89\u88c5<\/h2>\n<p>\u7ec8\u4e8e\u6211\u8981\u5b89\u88c5docker-engine\u4e86\u3002<br \/>\n\u8bf4\u8d77\u6765\u4e5f\u53ea\u662f\u666e\u901a\u5730\u901a\u8fc7apt\u5b89\u88c5\u800c\u5df2\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>aptitude <span class=\"nb\">install <\/span>docker-engine\r\nThe following NEW packages will be installed:\r\n  aufs-tools<span class=\"o\">{<\/span>a<span class=\"o\">}<\/span> cgroupfs-mount<span class=\"o\">{<\/span>a<span class=\"o\">}<\/span> docker-engine\r\n0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.\r\nNeed to get 7472 kB of archives. After unpacking 37.7 MB will be used.\r\nDo you want to <span class=\"k\">continue<\/span>? <span class=\"o\">[<\/span>Y\/n\/?] y\r\nGet: 1 http:\/\/archive.ubuntu.com\/ubuntu\/ vivid\/universe aufs-tools amd64 1:3.2+20130722-1.1 <span class=\"o\">[<\/span>92.3 kB]\r\nGet: 2 https:\/\/apt.dockerproject.org\/repo\/ ubuntu-vivid\/main docker-engine amd64 1.9.1-0~vivid <span class=\"o\">[<\/span>7375 kB]\r\nGet: 3 http:\/\/archive.ubuntu.com\/ubuntu\/ vivid\/universe cgroupfs-mount all 1.1 <span class=\"o\">[<\/span>4796 B]\r\nFetched 7472 kB <span class=\"k\">in <\/span>2s <span class=\"o\">(<\/span>3373 kB\/s<span class=\"o\">)<\/span>\r\nSelecting previously unselected package aufs-tools.\r\n<span class=\"o\">(<\/span>Reading database ... 70426 files and directories currently installed.<span class=\"o\">)<\/span>\r\nPreparing to unpack ...\/aufs-tools_1%3a3.2+20130722-1.1_amd64.deb ...\r\nUnpacking aufs-tools <span class=\"o\">(<\/span>1:3.2+20130722-1.1<span class=\"o\">)<\/span> ...\r\nSelecting previously unselected package cgroupfs-mount.\r\nPreparing to unpack ...\/cgroupfs-mount_1.1_all.deb ...\r\nUnpacking cgroupfs-mount <span class=\"o\">(<\/span>1.1<span class=\"o\">)<\/span> ...\r\nSelecting previously unselected package docker-engine.\r\nPreparing to unpack ...\/docker-engine_1.9.1-0~vivid_amd64.deb ...\r\nUnpacking docker-engine <span class=\"o\">(<\/span>1.9.1-0~vivid<span class=\"o\">)<\/span> ...\r\nProcessing triggers <span class=\"k\">for <\/span>man-db <span class=\"o\">(<\/span>2.7.0.2-5<span class=\"o\">)<\/span> ...\r\nProcessing triggers <span class=\"k\">for <\/span>ureadahead <span class=\"o\">(<\/span>0.100.0-19<span class=\"o\">)<\/span> ...\r\nProcessing triggers <span class=\"k\">for <\/span>systemd <span class=\"o\">(<\/span>219-7ubuntu6<span class=\"o\">)<\/span> ...\r\nSetting up aufs-tools <span class=\"o\">(<\/span>1:3.2+20130722-1.1<span class=\"o\">)<\/span> ...\r\nSetting up cgroupfs-mount <span class=\"o\">(<\/span>1.1<span class=\"o\">)<\/span> ...\r\nSetting up docker-engine <span class=\"o\">(<\/span>1.9.1-0~vivid<span class=\"o\">)<\/span> ...\r\nProcessing triggers <span class=\"k\">for <\/span>libc-bin <span class=\"o\">(<\/span>2.21-0ubuntu4<span class=\"o\">)<\/span> ...\r\nProcessing triggers <span class=\"k\">for <\/span>ureadahead <span class=\"o\">(<\/span>0.100.0-19<span class=\"o\">)<\/span> ...\r\nProcessing triggers <span class=\"k\">for <\/span>systemd <span class=\"o\">(<\/span>219-7ubuntu6<span class=\"o\">)<\/span> ...\r\n<\/code><\/pre>\n<p>\u542f\u52a8Docker\u670d\u52a1\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>service docker start\r\n<\/code><\/pre>\n<h1>\u8ba9\u6211\u4eec\u5c1d\u8bd5\u8fd0\u884chello-world\u3002<\/h1>\n<p>\u5728\u516c\u5f0f\u7684\u5b89\u88c5\u6307\u5357\u4e2d\u4e5f\u63d0\u5230\u4e86\uff0c\u6211\u4eec\u8981\u542f\u52a8\u4e00\u4e2a\u540d\u4e3ahello-world\u7684\u5bb9\u5668\uff0c\u6765\u786e\u8ba4\u5b89\u88c5\u662f\u5426\u6210\u529f\u3002<\/p>\n<p>\u5728\u4f7f\u7528docker\u547d\u4ee4\u4e4b\u524d\uff0c\u6bcf\u6b21\u90fd\u9700\u8981\u4f7f\u7528sudo\u5f88\u9ebb\u70e6\uff0c\u6240\u4ee5\u8981\u4f7f\u666e\u901a\u7528\u6237\uff08vagrant\uff09\u80fd\u591f\u4f7f\u7528docker\u547d\u4ee4\uff0c\u9700\u8981\u5c06\u666e\u901a\u7528\u6237\u52a0\u5165docker\u7ec4\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>gpasswd <span class=\"nt\">-a<\/span> vagrant docker\r\nAdding user vagrant to group docker\r\n<\/code><\/pre>\n<p>\u5728\u5b8c\u6210\u4e0a\u8ff0\u64cd\u4f5c\u540e\uff0c\u60a8\u9700\u8981\u5148\u6ce8\u9500\uff0c\u7136\u540e\u518d\u6b21\u8fdb\u884c\u767b\u5f55\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5c1d\u8bd5\u542f\u52a8hello-world\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span>docker run hello-world\r\nUnable to find image <span class=\"s1\">'hello-world:latest'<\/span> locally\r\nlatest: Pulling from library\/hello-world\r\n\r\nb901d36b6f2f: Pull <span class=\"nb\">complete\r\n<\/span>0a6ba66e537a: Pull <span class=\"nb\">complete\r\n<\/span>Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7\r\nStatus: Downloaded newer image <span class=\"k\">for <\/span>hello-world:latest\r\n\r\nHello from Docker.\r\nThis message shows that your installation appears to be working correctly.\r\n\r\nTo generate this message, Docker took the following steps:\r\n 1. The Docker client contacted the Docker daemon.\r\n 2. The Docker daemon pulled the <span class=\"s2\">\"hello-world\"<\/span> image from the Docker Hub.\r\n 3. The Docker daemon created a new container from that image which runs the\r\n    executable that produces the output you are currently reading.\r\n 4. The Docker daemon streamed that output to the Docker client, which sent it\r\n    to your terminal.\r\n\r\nTo try something more ambitious, you can run an Ubuntu container with:\r\n <span class=\"nv\">$ <\/span>docker run <span class=\"nt\">-it<\/span> ubuntu bash\r\n\r\nShare images, automate workflows, and more with a free Docker Hub account:\r\n https:\/\/hub.docker.com\r\n\r\nFor more examples and ideas, visit:\r\n https:\/\/docs.docker.com\/userguide\/\r\n<\/code><\/pre>\n<p>\u4f3c\u4e4e\u6709\u52a8\u8fc7\u3002<\/p>\n<p>\u5728\u6d88\u606f\u4e2d\u63d0\u5230\u201c\u5c1d\u8bd5\u8fd0\u884c$ docker run -it ubuntu bash\u201d\uff0c\u6211\u4f1a\u8bd5\u4e00\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span>docker run <span class=\"nt\">-it<\/span> ubuntu bash\r\nUnable to find image <span class=\"s1\">'ubuntu:latest'<\/span> locally\r\nlatest: Pulling from library\/ubuntu\r\nfcee8bcfe180: Pull <span class=\"nb\">complete\r\n<\/span>4cdc0cbc1936: Pull <span class=\"nb\">complete\r\n<\/span>d9e545b90db8: Pull <span class=\"nb\">complete\r\n<\/span>c4bea91afef3: Pull <span class=\"nb\">complete\r\n<\/span>Digest: sha256:b53bb7b0d18842214ac7472c2a8801e8682c247d30f1ba4bab0083a2e2e091ea\r\nStatus: Downloaded newer image <span class=\"k\">for <\/span>ubuntu:latest\r\nroot@61816c709164:\/# <span class=\"nb\">uname<\/span> <span class=\"nt\">-a<\/span>\r\nLinux 61816c709164 3.19.0-43-generic <span class=\"c\">#49-Ubuntu SMP Sun Dec 27 19:43:07 UTC 2015 x86_64 x86_64 x86_64 GNU\/Linux<\/span>\r\nroot@61816c709164:\/# \/sbin\/ifconfig\r\neth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:02\r\n          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0\r\n          inet6 addr: fe80::42:acff:fe11:2\/64 Scope:Link\r\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\r\n          RX packets:8 errors:0 dropped:0 overruns:0 frame:0\r\n          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0\r\n          collisions:0 txqueuelen:0\r\n          RX bytes:648 <span class=\"o\">(<\/span>648.0 B<span class=\"o\">)<\/span>  TX bytes:648 <span class=\"o\">(<\/span>648.0 B<span class=\"o\">)<\/span>\r\n\r\nlo        Link encap:Local Loopback\r\n          inet addr:127.0.0.1  Mask:255.0.0.0\r\n          inet6 addr: ::1\/128 Scope:Host\r\n          UP LOOPBACK RUNNING  MTU:65536  Metric:1\r\n          RX packets:0 errors:0 dropped:0 overruns:0 frame:0\r\n          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0\r\n          collisions:0 txqueuelen:0\r\n          RX bytes:0 <span class=\"o\">(<\/span>0.0 B<span class=\"o\">)<\/span>  TX bytes:0 <span class=\"o\">(<\/span>0.0 B<span class=\"o\">)<\/span>\r\n<\/code><\/pre>\n<p>\u5c31\u662f\u8fd9\u6837\u4e86\u3002<\/p>\n<p>\u6211\u4e0b\u8f7d\u4e86Ubuntu\u7684\u955c\u50cf\u5e76\u542f\u52a8\u4e86\u4e00\u4e2a\u5bb9\u5668\uff0c\u770b\u8d77\u6765\u5728\u5bb9\u5668\u5185\u542f\u52a8\u4e86bash\u3002<\/p>\n<p>root@61816c709164:\/# \u8fd9\u662f\u5bb9\u5668\u7684\u63d0\u793a\u7b26\u3002\u5728\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u6211\u8bd5\u7740\u5728\u5bb9\u5668\u5185\u8fd0\u884c\u4e86uname -a\u548c\/sbin\/ifconfig\u547d\u4ee4\u3002<\/p>\n<h1>\u8bbe\u7f6e\u5728\u542f\u52a8\u65f6\u81ea\u52a8\u542f\u52a8Docker\u3002<\/h1>\n<pre class=\"post-pre\"><code>vagrant@vagrant-ubuntu-vivid-64:~<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>systemctl <span class=\"nb\">enable <\/span>docker\r\nSynchronizing state <span class=\"k\">for <\/span>docker.service with sysvinit using update-rc.d...\r\nExecuting \/usr\/sbin\/update-rc.d docker defaults\r\nExecuting \/usr\/sbin\/update-rc.d docker <span class=\"nb\">enable<\/span>\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u6b63\u5728\u5199\u5173\u4e8e\u6211\u5728Docker\u76f8\u5173\u65b9\u9762\u5c1d\u8bd5\u8fc7\u7684\u4e8b\u60c5\u3002\u7531\u4e8e\u662f\u7b2c\u4e00\u6b21\u5c1d\u8bd5\uff0c\u6240\u4ee5\u6211\u5c06\u4ece\u5b89\u88c5\u5f00\u59cb\u8fdb\u884c\u3002\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u8bb0\u5f55\u4e86 [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35147","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-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker - 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-01-\u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86docker\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker\" \/>\n<meta property=\"og:description\" content=\"\u6211\u6b63\u5728\u5199\u5173\u4e8e\u6211\u5728Docker\u76f8\u5173\u65b9\u9762\u5c1d\u8bd5\u8fc7\u7684\u4e8b\u60c5\u3002\u7531\u4e8e\u662f\u7b2c\u4e00\u6b21\u5c1d\u8bd5\uff0c\u6240\u4ee5\u6211\u5c06\u4ece\u5b89\u88c5\u5f00\u59cb\u8fdb\u884c\u3002\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u8bb0\u5f55\u4e86 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-\u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-02T20:57:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-15T00:32:34+00:00\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \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-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/\",\"name\":\"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-04-02T20:57:37+00:00\",\"dateModified\":\"2024-01-15T00:32:34+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker\"}]},{\"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker - 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-01-\u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86docker\/","og_locale":"zh_CN","og_type":"article","og_title":"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker","og_description":"\u6211\u6b63\u5728\u5199\u5173\u4e8e\u6211\u5728Docker\u76f8\u5173\u65b9\u9762\u5c1d\u8bd5\u8fc7\u7684\u4e8b\u60c5\u3002\u7531\u4e8e\u662f\u7b2c\u4e00\u6b21\u5c1d\u8bd5\uff0c\u6240\u4ee5\u6211\u5c06\u4ece\u5b89\u88c5\u5f00\u59cb\u8fdb\u884c\u3002\u8fd9\u7bc7\u6587\u7ae0\u4e3b\u8981\u8bb0\u5f55\u4e86 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-\u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86docker\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-04-02T20:57:37+00:00","article_modified_time":"2024-01-15T00:32:34+00:00","author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/","name":"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-04-02T20:57:37+00:00","dateModified":"2024-01-15T00:32:34+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"[Docker-01] \u6211\u5c1d\u8bd5\u5b89\u88c5\u4e86Docker"}]},{"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/docker-01-%e6%88%91%e5%b0%9d%e8%af%95%e5%ae%89%e8%a3%85%e4%ba%86docker\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35147","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=35147"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35147\/revisions"}],"predecessor-version":[{"id":57808,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35147\/revisions\/57808"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=35147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=35147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=35147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}