{"id":2760,"date":"2019-01-24T19:38:25","date_gmt":"2019-01-24T11:38:25","guid":{"rendered":"https:\/\/damogame.cn:15443\/wordpress\/?p=2760"},"modified":"2019-01-24T19:38:25","modified_gmt":"2019-01-24T11:38:25","slug":"%e4%b8%80%e5%b0%8f%e6%97%b6docker%e6%95%99%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/2760","title":{"rendered":"\u4e00\u5c0f\u65f6Docker\u6559\u7a0b"},"content":{"rendered":"<header id=\"masthead\" class=\"site-header clearfix\">\n<div class=\"header-post-title-container clearfix\">\n<div class=\"inner-wrap\">\n<div class=\"post-title-wrapper\">\n<h1 class=\"header-post-title-class\">Docker\u57fa\u7840<\/h1>\n<\/div>\n<\/div>\n<\/div>\n<\/header>\n<div id=\"main\" class=\"clearfix\">\n<div class=\"inner-wrap\">\n<div id=\"primary\">\n<div id=\"content\" class=\"clearfix\">\n<article id=\"post-22\" class=\"post-22 post type-post status-publish format-standard hentry category-docker tag-docker\">\n<div class=\"entry-content clearfix\">\n<p>\u8fd9\u7bc7\u57fa\u7840\u6587\u7ae0\u662f\u65b9\u4fbf\u7528\u6237\u5728\u4f7f\u7528<a href=\"https:\/\/csphere.cn\/\" target=\"_blank\" rel=\"noopener\">cSphere<\/a>\u5e73\u53f0\u4e4b\u524d,\u4e86\u89e3docker\u57fa\u7840\u77e5\u8bc6\u3002<\/p>\n<p>\u9488\u5bf9\u5df2\u7ecf\u6709\u4e00\u5b9a\u7684Linux\u57fa\u7840\u77e5\u8bc6\u7684\u7528\u6237\u3002<\/p>\n<h2 id=\"docker\u662f\u4ec0\u4e48\">Docker\u662f\u4ec0\u4e48<\/h2>\n<p>Docker\u662f\u4e00\u4e2a\u6539\u8fdb\u7684\u5bb9\u5668\u6280\u672f\u3002\u5177\u4f53\u7684\u201c\u6539\u8fdb\u201d\u4f53\u73b0\u5728\uff0cDocker\u4e3a\u5bb9\u5668\u5f15\u5165\u4e86\u955c\u50cf\uff0c\u4f7f\u5f97\u5bb9\u5668\u53ef\u4ee5\u4ece\u9884\u5148\u5b9a\u4e49\u597d\u7684\u6a21\u7248\uff08images\uff09\u521b\u5efa\u51fa\u6765\uff0c\u5e76\u4e14\u8fd9\u4e2a\u6a21\u7248\u8fd8\u662f\u5206\u5c42\u7684\u3002<\/p>\n<h3 id=\"docker\u7ecf\u5e38\u88ab\u63d0\u8d77\u7684\u7279\u70b9\">Docker\u7ecf\u5e38\u88ab\u63d0\u8d77\u7684\u7279\u70b9\uff1a<\/h3>\n<ul>\n<li>\u8f7b\u91cf\uff0c\u4f53\u73b0\u5728\u5185\u5b58\u5360\u7528\u5c0f\uff0c\u9ad8\u5bc6\u5ea6<\/li>\n<li>\u5feb\u901f\uff0c\u6beb\u79d2\u542f\u52a8<\/li>\n<li>\u9694\u79bb\uff0c\u6c99\u76d2\u6280\u672f\u66f4\u50cf\u865a\u62df\u673a<\/li>\n<\/ul>\n<h3 id=\"docker\u6280\u672f\u7684\u57fa\u7840\">Docker\u6280\u672f\u7684\u57fa\u7840\uff1a<\/h3>\n<ul>\n<li>namespace\uff0c\u5bb9\u5668\u9694\u79bb\u7684\u57fa\u7840\uff0c\u4fdd\u8bc1A\u5bb9\u5668\u770b\u4e0d\u5230B\u5bb9\u5668. 6\u4e2a\u540d\u7a7a\u95f4\uff1aUser,Mnt,Network,UTS,IPC,Pid<\/li>\n<li>cgroups\uff0c\u5bb9\u5668\u8d44\u6e90\u7edf\u8ba1\u548c\u9694\u79bb\u3002\u4e3b\u8981\u7528\u5230\u7684cgroups\u5b50\u7cfb\u7edf\uff1acpu,blkio,device,freezer,memory<\/li>\n<li>unionfs\uff0c\u5178\u578b\uff1aaufs\/overlayfs\uff0c\u5206\u5c42\u955c\u50cf\u5b9e\u73b0\u7684\u57fa\u7840<\/li>\n<\/ul>\n<h3 id=\"docker\u7ec4\u4ef6\">Docker\u7ec4\u4ef6\uff1a<\/h3>\n<ul>\n<li><strong>docker Client<\/strong>\u5ba2\u6237\u7aef\u2014\u2014\u2014\u2014&gt;\u5411docker\u670d\u52a1\u5668\u8fdb\u7a0b\u53d1\u8d77\u8bf7\u6c42\uff0c\u5982:\u521b\u5efa\u3001\u505c\u6b62\u3001\u9500\u6bc1\u5bb9\u5668\u7b49\u64cd\u4f5c<\/li>\n<li><strong>docker Server<\/strong>\u670d\u52a1\u5668\u8fdb\u7a0b\u2014\u2013&gt;\u5904\u7406\u6240\u6709docker\u7684\u8bf7\u6c42\uff0c\u7ba1\u7406\u6240\u6709\u5bb9\u5668<\/li>\n<li><strong>docker Registry<\/strong>\u955c\u50cf\u4ed3\u5e93\u2014\u2014&gt;\u955c\u50cf\u5b58\u653e\u7684\u4e2d\u592e\u4ed3\u5e93\uff0c\u53ef\u770b\u4f5c\u662f\u5b58\u653e\u4e8c\u8fdb\u5236\u7684scm<\/li>\n<\/ul>\n<h2 id=\"docker\u5b89\u88c5\">Docker\u5b89\u88c5<\/h2>\n<p>Docker\u7684\u5b89\u88c5\u975e\u5e38\u7b80\u5355\uff0c\u652f\u6301\u76ee\u524d\u6240\u6709\u4e3b\u6d41\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4eceMac\u5230Windows\u5230\u5404\u79cdLinux\u53d1\u884c\u7248<br \/>\n\u5177\u4f53\u53c2\u8003\uff1a\u00a0<a href=\"https:\/\/docs.docker.com\/installation\/\">docker\u5b89\u88c5<\/a><\/p>\n<h2 id=\"docker\u5e38\u89c1\u547d\u4ee4\">Docker\u5e38\u89c1\u547d\u4ee4<\/h2>\n<h4 id=\"\u5bb9\u5668\u76f8\u5173\u64cd\u4f5c\">\u5bb9\u5668\u76f8\u5173\u64cd\u4f5c<\/h4>\n<ul>\n<li>docker create # \u521b\u5efa\u4e00\u4e2a\u5bb9\u5668\u4f46\u662f\u4e0d\u542f\u52a8\u5b83<\/li>\n<li>docker run # \u521b\u5efa\u5e76\u542f\u52a8\u4e00\u4e2a\u5bb9\u5668<\/li>\n<li>docker stop # \u505c\u6b62\u5bb9\u5668\u8fd0\u884c\uff0c\u53d1\u9001\u4fe1\u53f7SIGTERM<\/li>\n<li>docker start # \u542f\u52a8\u4e00\u4e2a\u505c\u6b62\u72b6\u6001\u7684\u5bb9\u5668<\/li>\n<li>docker restart # \u91cd\u542f\u4e00\u4e2a\u5bb9\u5668<\/li>\n<li>docker rm # \u5220\u9664\u4e00\u4e2a\u5bb9\u5668<\/li>\n<li>docker kill # \u53d1\u9001\u4fe1\u53f7\u7ed9\u5bb9\u5668\uff0c\u9ed8\u8ba4SIGKILL<\/li>\n<li>docker attach # \u8fde\u63a5(\u8fdb\u5165)\u5230\u4e00\u4e2a\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668<\/li>\n<li>docker wait # \u963b\u585e\u5230\u4e00\u4e2a\u5bb9\u5668\uff0c\u76f4\u5230\u5bb9\u5668\u505c\u6b62\u8fd0\u884c<\/li>\n<\/ul>\n<h4 id=\"\u83b7\u53d6\u5bb9\u5668\u76f8\u5173\u4fe1\u606f\">\u83b7\u53d6\u5bb9\u5668\u76f8\u5173\u4fe1\u606f<\/h4>\n<ul>\n<li>docker ps # \u663e\u793a\u72b6\u6001\u4e3a\u8fd0\u884c\uff08Up\uff09\u7684\u5bb9\u5668<\/li>\n<li>docker ps -a # \u663e\u793a\u6240\u6709\u5bb9\u5668,\u5305\u62ec\u8fd0\u884c\u4e2d\uff08Up\uff09\u7684\u548c\u9000\u51fa\u7684(Exited)<\/li>\n<li>docker inspect # \u6df1\u5165\u5bb9\u5668\u5185\u90e8\u83b7\u53d6\u5bb9\u5668\u6240\u6709\u4fe1\u606f<\/li>\n<li>docker logs # \u67e5\u770b\u5bb9\u5668\u7684\u65e5\u5fd7(stdout\/stderr)<\/li>\n<li>docker events # \u5f97\u5230docker\u670d\u52a1\u5668\u7684\u5b9e\u65f6\u7684\u4e8b\u4ef6<\/li>\n<li>docker port # \u663e\u793a\u5bb9\u5668\u7684\u7aef\u53e3\u6620\u5c04<\/li>\n<li>docker top # \u663e\u793a\u5bb9\u5668\u7684\u8fdb\u7a0b\u4fe1\u606f<\/li>\n<li>docker diff # \u663e\u793a\u5bb9\u5668\u6587\u4ef6\u7cfb\u7edf\u7684\u524d\u540e\u53d8\u5316<\/li>\n<\/ul>\n<h4 id=\"\u5bfc\u51fa\u5bb9\u5668\">\u5bfc\u51fa\u5bb9\u5668<\/h4>\n<ul>\n<li>docker cp # \u4ece\u5bb9\u5668\u91cc\u5411\u5916\u62f7\u8d1d\u6587\u4ef6\u6216\u76ee\u5f55<\/li>\n<li>docker export # \u5c06\u5bb9\u5668\u6574\u4e2a\u6587\u4ef6\u7cfb\u7edf\u5bfc\u51fa\u4e3a\u4e00\u4e2atar\u5305\uff0c\u4e0d\u5e26layers\u3001tag\u7b49\u4fe1\u606f<\/li>\n<\/ul>\n<h4 id=\"\u6267\u884c\">\u6267\u884c<\/h4>\n<ul>\n<li>docker exec # \u5728\u5bb9\u5668\u91cc\u6267\u884c\u4e00\u4e2a\u547d\u4ee4\uff0c\u53ef\u4ee5\u6267\u884cbash\u8fdb\u5165\u4ea4\u4e92\u5f0f<\/li>\n<\/ul>\n<h4 id=\"\u955c\u50cf\u64cd\u4f5c\">\u955c\u50cf\u64cd\u4f5c<\/h4>\n<ul>\n<li>docker images # \u663e\u793a\u672c\u5730\u6240\u6709\u7684\u955c\u50cf\u5217\u8868<\/li>\n<li>docker import # \u4ece\u4e00\u4e2atar\u5305\u521b\u5efa\u4e00\u4e2a\u955c\u50cf\uff0c\u5f80\u5f80\u548cexport\u7ed3\u5408\u4f7f\u7528<\/li>\n<li>docker build # \u4f7f\u7528Dockerfile\u521b\u5efa\u955c\u50cf\uff08\u63a8\u8350\uff09<\/li>\n<li>docker commit # \u4ece\u5bb9\u5668\u521b\u5efa\u955c\u50cf<\/li>\n<li>docker rmi # \u5220\u9664\u4e00\u4e2a\u955c\u50cf<\/li>\n<li>docker load # \u4ece\u4e00\u4e2atar\u5305\u521b\u5efa\u4e00\u4e2a\u955c\u50cf\uff0c\u548csave\u914d\u5408\u4f7f\u7528<\/li>\n<li>docker save # \u5c06\u4e00\u4e2a\u955c\u50cf\u4fdd\u5b58\u4e3a\u4e00\u4e2atar\u5305\uff0c\u5e26layers\u548ctag\u4fe1\u606f<\/li>\n<li>docker history # \u663e\u793a\u751f\u6210\u4e00\u4e2a\u955c\u50cf\u7684\u5386\u53f2\u547d\u4ee4<\/li>\n<li>docker tag # \u4e3a\u955c\u50cf\u8d77\u4e00\u4e2a\u522b\u540d<\/li>\n<\/ul>\n<h4 id=\"\u955c\u50cf\u4ed3\u5e93registry\u64cd\u4f5c\">\u955c\u50cf\u4ed3\u5e93(registry)\u64cd\u4f5c<\/h4>\n<ul>\n<li>docker login # \u767b\u5f55\u5230\u4e00\u4e2aregistry<\/li>\n<li>docker search # \u4eceregistry\u4ed3\u5e93\u641c\u7d22\u955c\u50cf<\/li>\n<li>docker pull # \u4ece\u4ed3\u5e93\u4e0b\u8f7d\u955c\u50cf\u5230\u672c\u5730<\/li>\n<li>docker push # \u5c06\u4e00\u4e2a\u955c\u50cfpush\u5230registry\u4ed3\u5e93\u4e2d<\/li>\n<\/ul>\n<h4 id=\"\u83b7\u53d6container-ip\u5730\u5740container\u72b6\u6001\u5fc5\u987b\u662fup\">\u83b7\u53d6Container IP\u5730\u5740\uff08Container\u72b6\u6001\u5fc5\u987b\u662fUp\uff09<\/h4>\n<pre><code>docker inspect id | grep IPAddress | cut -d '\"' -f 4\r\n<\/code><\/pre>\n<h4 id=\"\u83b7\u53d6\u7aef\u53e3\u6620\u5c04\">\u83b7\u53d6\u7aef\u53e3\u6620\u5c04<\/h4>\n<pre><code>docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -&gt; {{(index $conf 0).HostPort}} {{end}}' id\r\n<\/code><\/pre>\n<h4 id=\"\u83b7\u53d6\u73af\u5883\u53d8\u91cf\">\u83b7\u53d6\u73af\u5883\u53d8\u91cf<\/h4>\n<pre><code>docker exec container_id env\r\n<\/code><\/pre>\n<h4 id=\"\u6740\u6389\u6240\u6709\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668\">\u6740\u6389\u6240\u6709\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668<\/h4>\n<pre><code>docker kill $(docker ps -q)\r\n<\/code><\/pre>\n<h4 id=\"\u5220\u9664\u8001\u7684\u4e00\u5468\u524d\u521b\u5efa\u5bb9\u5668\">\u5220\u9664\u8001\u7684(\u4e00\u5468\u524d\u521b\u5efa)\u5bb9\u5668<\/h4>\n<pre><code>docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs docker rm\r\n<\/code><\/pre>\n<h4 id=\"\u5220\u9664\u5df2\u7ecf\u505c\u6b62\u7684\u5bb9\u5668\">\u5220\u9664\u5df2\u7ecf\u505c\u6b62\u7684\u5bb9\u5668<\/h4>\n<pre><code>docker rm `docker ps -a -q`\r\n<\/code><\/pre>\n<h4 id=\"\u5220\u9664\u6240\u6709\u955c\u50cf\u5c0f\u5fc3\">\u5220\u9664\u6240\u6709\u955c\u50cf\uff0c\u5c0f\u5fc3<\/h4>\n<pre><code>docker rmi $(docker images -q)\r\n<\/code><\/pre>\n<h2 id=\"dockerfile\">Dockerfile<\/h2>\n<p>Dockerfile\u662fdocker\u6784\u5efa\u955c\u50cf\u7684\u57fa\u7840\uff0c\u4e5f\u662fdocker\u533a\u522b\u4e8e\u5176\u4ed6\u5bb9\u5668\u7684\u91cd\u8981\u7279\u5f81\uff0c\u6b63\u662f\u6709\u4e86Dockerfile\uff0cdocker\u7684\u81ea\u52a8\u5316\u548c\u53ef\u79fb\u690d\u6027\u624d\u6210\u4e3a\u53ef\u80fd\u3002<\/p>\n<p>\u4e0d\u8bba\u662f\u5f00\u53d1\u8fd8\u662f\u8fd0\u7ef4\uff0c\u5b66\u4f1a\u7f16\u5199Dockerfile\u51e0\u4e4e\u662f\u5fc5\u5907\u7684\uff0c\u8fd9\u6709\u52a9\u4e8e\u4f60\u7406\u89e3\u6574\u4e2a\u5bb9\u5668\u7684\u8fd0\u884c\u3002<\/p>\n<h4 id=\"from-\u4ece\u4e00\u4e2a\u57fa\u7840\u955c\u50cf\u6784\u5efa\u65b0\u7684\u955c\u50cf\">FROM , \u4ece\u4e00\u4e2a\u57fa\u7840\u955c\u50cf\u6784\u5efa\u65b0\u7684\u955c\u50cf<\/h4>\n<pre><code>FROM ubuntu \r\n<\/code><\/pre>\n<h4 id=\"maintainer-\u7ef4\u62a4\u8005\u4fe1\u606f\">MAINTAINER , \u7ef4\u62a4\u8005\u4fe1\u606f<\/h4>\n<pre><code>MAINTAINER William &lt;wlj@nicescale.com&gt;\r\n<\/code><\/pre>\n<h4 id=\"env-\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\">ENV , \u8bbe\u7f6e\u73af\u5883\u53d8\u91cf<\/h4>\n<pre><code>ENV TEST 1\r\n<\/code><\/pre>\n<h4 id=\"run-\u975e\u4ea4\u4e92\u5f0f\u8fd0\u884cshell\u547d\u4ee4\">RUN , \u975e\u4ea4\u4e92\u5f0f\u8fd0\u884cshell\u547d\u4ee4<\/h4>\n<pre><code>RUN apt-get -y update \r\nRUN apt-get -y install nginx\r\n<\/code><\/pre>\n<h4 id=\"add-\u5c06\u5916\u90e8\u6587\u4ef6\u62f7\u8d1d\u5230\u955c\u50cf\u91ccsrc\u53ef\u4ee5\u4e3aurl\">ADD , \u5c06\u5916\u90e8\u6587\u4ef6\u62f7\u8d1d\u5230\u955c\u50cf\u91cc,src\u53ef\u4ee5\u4e3aurl<\/h4>\n<pre><code>ADD http:\/\/nicescale.com\/  \/data\/nicescale.tgz\r\n<\/code><\/pre>\n<h4 id=\"workdir-pathtoworkdir-\u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\">WORKDIR \/path\/to\/workdir, \u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55<\/h4>\n<pre><code>WORKDIR \/var\/www\r\n<\/code><\/pre>\n<h4 id=\"user-\u8bbe\u7f6e\u7528\u6237id\">USER , \u8bbe\u7f6e\u7528\u6237ID<\/h4>\n<pre><code>USER nginx\r\n<\/code><\/pre>\n<h4 id=\"vulume-dir-\u8bbe\u7f6evolume\">VULUME &lt;#dir&gt;, \u8bbe\u7f6evolume<\/h4>\n<pre><code>VOLUME [\u2018\/data\u2019]\r\n<\/code><\/pre>\n<h4 id=\"expose-\u66b4\u9732\u54ea\u4e9b\u7aef\u53e3\">EXPOSE , \u66b4\u9732\u54ea\u4e9b\u7aef\u53e3<\/h4>\n<pre><code>EXPOSE 80 443 \r\n<\/code><\/pre>\n<h4 id=\"entrypoint-executable-param1param2\u6267\u884c\u547d\u4ee4\">ENTRYPOINT [\u2018executable\u2019, \u2018param1\u2019,\u2019param2\u2019]\u6267\u884c\u547d\u4ee4<\/h4>\n<pre><code>ENTRYPOINT [\"\/usr\/sbin\/nginx\"]\r\n<\/code><\/pre>\n<h4 id=\"cmd-param1param2\">CMD [\u201cparam1\u201d,\u201dparam2\u201d]<\/h4>\n<pre><code>CMD [\"start\"]\r\n<\/code><\/pre>\n<p>docker\u521b\u5efa\u3001\u542f\u52a8container\u65f6\u6267\u884c\u7684\u547d\u4ee4\uff0c\u5982\u679c\u8bbe\u7f6e\u4e86ENTRYPOINT\uff0c\u5219CMD\u5c06\u4f5c\u4e3a\u53c2\u6570<\/p>\n<h4 id=\"dockerfile\u6700\u4f73\u5b9e\u8df5\">Dockerfile\u6700\u4f73\u5b9e\u8df5<\/h4>\n<ul>\n<li>\u5c3d\u91cf\u5c06\u4e00\u4e9b\u5e38\u7528\u4e0d\u53d8\u7684\u6307\u4ee4\u653e\u5230\u524d\u9762<\/li>\n<li>CMD\u548cENTRYPOINT\u5c3d\u91cf\u4f7f\u7528json\u6570\u7ec4\u65b9\u5f0f<\/li>\n<\/ul>\n<h4 id=\"\u901a\u8fc7dockerfile\u6784\u5efaimage\">\u901a\u8fc7Dockerfile\u6784\u5efaimage<\/h4>\n<pre><code>docker build csphere\/nginx:1.7 .\r\n<\/code><\/pre>\n<h2 id=\"\u955c\u50cf\u4ed3\u5e93registry\">\u955c\u50cf\u4ed3\u5e93Registry<\/h2>\n<p>\u955c\u50cf\u4eceDockerfile build\u751f\u6210\u540e\uff0c\u9700\u8981\u5c06\u955c\u50cf\u63a8\u9001(push)\u5230\u955c\u50cf\u4ed3\u5e93\u3002\u4f01\u4e1a\u5185\u90e8\u90fd\u9700\u8981\u6784\u5efa\u4e00\u4e2a\u79c1\u6709docker registry\uff0c\u8fd9\u4e2aregistry\u53ef\u4ee5\u770b\u4f5c\u4e8c\u8fdb\u5236\u7684scm\uff0cCI\/CD\u4e5f\u9700\u8981\u56f4\u7ed5registry\u8fdb\u884c\u3002<\/p>\n<h4 id=\"\u90e8\u7f72registry\">\u90e8\u7f72registry<\/h4>\n<pre><code>mkdir \/registry\r\ndocker run  -p 80:5000  -e STORAGE_PATH=\/registry  -v \/registry:\/registry  registry:2.0\r\n<\/code><\/pre>\n<h4 id=\"\u63a8\u9001\u955c\u50cf\u4fdd\u5b58\u5230\u4ed3\u5e93\">\u63a8\u9001\u955c\u50cf\u4fdd\u5b58\u5230\u4ed3\u5e93<\/h4>\n<p>\u5047\u8bbe192.168.1.2\u662fregistry\u4ed3\u5e93\u7684\u5730\u5740\uff1a<\/p>\n<pre><code>docker tag  csphere\/nginx:1.7 192.168.1.2\/csphere\/nginx:1.7\r\ndocker push 192.168.1.2\/csphere\/nginx:1.7\r\n<\/code><\/pre>\n<h2 id=\"\u51e0\u4e2a\u7b80\u5355\u5c0f\u4f8b\u5b50\">\u51e0\u4e2a\u7b80\u5355\u5c0f\u4f8b\u5b50<\/h2>\n<h3 id=\"\u5bb9\u5668\u64cd\u4f5c\">\u5bb9\u5668\u64cd\u4f5c<\/h3>\n<p>1.\u521b\u5efa\u5e76\u62c9\u53d6busybox<\/p>\n<pre><code># docker run -it --name con01 busybox:latest\r\n\/ # ip addr    #\u5bb9\u5668\u91cc\u6267\u884c\r\n1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default \r\nlink\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\r\ninet 127.0.0.1\/8 scope host lo\r\n   valid_lft forever preferred_lft forever\r\nSegmentation fault (core dumped)\r\n\/ # ping www.csphere.cn\r\nPING www.csphere.cn (117.121.26.243): 56 data bytes\r\n64 bytes from 117.121.26.243: seq=0 ttl=48 time=3.139 ms\r\n64 bytes from 117.121.26.243: seq=1 ttl=48 time=3.027 ms\r\n^C\r\n--- www.csphere.cn ping statistics ---\r\n2 packets transmitted, 2 packets received, 0% packet loss\r\nround-trip min\/avg\/max = 3.027\/3.083\/3.139 ms\r\nexit    #\u9000\u51fa\u5bb9\u5668\r\n<\/code><\/pre>\n<p>2.\u521b\u5efa\u6d4b\u8bd5\u5bb9\u5668<\/p>\n<pre><code>docker run -d --name con03 csphere\/test:0.1\r\nefc9bda4a2ff2f479b18e0fc4698e42c47c9583a24c93f5ce6b28a828a172709\r\n<\/code><\/pre>\n<p>3.\u767b\u9646\u5230con03\u4e2d<\/p>\n<pre><code># docker exec -it con03 \/bin\/bash\r\n[root@efc9bda4a2ff \/]# exit\r\n<\/code><\/pre>\n<p>4.\u505c\u6b62con03<\/p>\n<pre><code># docker stop con03\r\ncon03\r\n<\/code><\/pre>\n<p>5.\u5f00\u542fcon03<\/p>\n<pre><code># docker start con03\r\ncon03\r\n<\/code><\/pre>\n<p>6.\u5220\u9664con03<\/p>\n<pre class=\"prettyprint\"><code class=\" hljs 1c\"><span class=\"hljs-preprocessor\"># docker ps -a<\/span>\r\nCONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS                      PORTS                                             NAMES\r\nefc9bda4a2ff        csphere\/test:<span class=\"hljs-number\">0.1<\/span>         <span class=\"hljs-string\">\"\/usr\/local\/bin\/run    4 minutes ago       Up 17 seconds                                                                 con03               <\/span>\r\n<span class=\"hljs-number\">99<\/span>aa6ee25adc        busybox:latest           <span class=\"hljs-string\">\"\/bin\/sh\"<\/span>              <span class=\"hljs-number\">14<\/span> minutes ago      Exited (<span class=\"hljs-number\">0<\/span>) <span class=\"hljs-number\">12<\/span> minutes ago                                                     con02               \r\n<span class=\"hljs-number\">831<\/span>c93de9b9f        busybox:latest           <span class=\"hljs-string\">\"\/bin\/sh\"<\/span>              <span class=\"hljs-number\">2<\/span> hours ago         Up <span class=\"hljs-number\">27<\/span> minutes                                                                 con01\r\n<span class=\"hljs-preprocessor\"># docker rm con02     #\u5bb9\u5668\u505c\u6b62\u7684\u72b6\u6001<\/span>\r\n<span class=\"hljs-preprocessor\"># docker rm -f con03  #\u5bb9\u5668\u5f00\u542f\u7684\u72b6\u6001<\/span><\/code><\/pre>\n<h3 id=\"\u955c\u50cf\u64cd\u4f5c-1\">\u955c\u50cf\u64cd\u4f5c<\/h3>\n<p>1.\u4ecedocker hub\u5b98\u65b9\u955c\u50cf\u4ed3\u5e93\u62c9\u53d6\u955c\u50cf<\/p>\n<pre><code># docker pull busybox:latest\r\natest: Pulling from busybox\r\ncf2616975b4a: Pull complete \r\n6ce2e90b0bc7: Pull complete \r\n8c2e06607696: Already exists \r\nbusybox:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.\r\nDigest: sha256:38a203e1986cf79639cfb9b2e1d6e773de84002feea2d4eb006b52004ee8502d\r\nStatus: Downloaded newer image for busybox:latest\r\n<\/code><\/pre>\n<p>2.\u4ece\u672c\u5730\u4e0a\u4f20\u955c\u50cf\u5230\u955c\u50cf\u4ed3\u5e93<\/p>\n<pre><code>docker push 192.168.1.2\/csphere\/nginx:1.7\r\n<\/code><\/pre>\n<p>3.\u67e5\u627e\u955c\u50cf\u4ed3\u5e93\u7684\u67d0\u4e2a\u955c\u50cf<\/p>\n<pre><code># docker search centos\/nginx\r\nNAME                                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED\r\njohnnyzheng\/centos-nginx-php-wordpress                                                   1                    [OK]\r\nsergeyzh\/centos6-nginx                                                                   1                    [OK]\r\nhzhang\/centos-nginx                                                                      1                    [OK]\r\n<\/code><\/pre>\n<p>4.\u67e5\u770b\u672c\u5730\u955c\u50cf\u5217\u8868<\/p>\n<pre><code># docker images\r\nTAG                 IMAGE ID            CREATED             VIRTUAL SIZE\r\ndocker.io\/csphere\/csphere   0.10.3              604c03bf0c9e        3 days ago          62.72 MB\r\ndocker.io\/csphere\/csphere   latest              604c03bf0c9e        3 days ago          62.72 MB\r\ncsphere\/csphere             0.10.3              604c03bf0c9e        3 days ago          62.72 MB\r\nregistry                    2.0                 2971b6ce766c        7 days ago          548.1 MB\r\nbusybox                     latest              8c2e06607696        3 weeks ago         2.43 MB\r\n<\/code><\/pre>\n<p>5.\u5220\u9664\u955c\u50cf<\/p>\n<pre><code>docker rmi busybox:latest        #\u6ca1\u6709\u5bb9\u5668\u4f7f\u7528\u6b64\u955c\u50cf\u521b\u5efa\uff0c\u5982\u679c\u6709\u5bb9\u5668\u5728\u4f7f\u7528\u6b64\u955c\u50cf\u4f1a\u62a5\u9519\uff1aError response from daemon: Conflict, cannot delete 8c2e06607696 because the running container 831c93de9b9f is using it, stop it and use -f to force\r\nFATA[0000] Error: failed to remove one or more images\r\ndocker rmi -f busybox:latest     #\u5bb9\u5668\u4f7f\u7528\u6b64\u955c\u50cf\u521b\u5efa\uff0c\u6b64\u5bb9\u5668\u72b6\u6001\u4e3aExited\r\n<\/code><\/pre>\n<p>6.\u67e5\u770b\u6784\u5efa\u955c\u50cf\u6240\u7528\u8fc7\u7684\u547d\u4ee4<\/p>\n<pre><code># docker history busybox:latest\r\nIMAGE               CREATED             CREATED BY                                      SIZE\r\n8c2e06607696        3 weeks ago         \/bin\/sh -c #(nop) CMD [\"\/bin\/sh\"]               0 B\r\n6ce2e90b0bc7        3 weeks ago         \/bin\/sh -c #(nop) ADD file:8cf517d90fe79547c4   2.43 MB\r\ncf2616975b4a        3 weeks ago         \/bin\/sh -c #(nop) MAINTAINER J\u00e9r\u00f4me Petazzo     0 B<\/code><\/pre>\n<div class=\"tags\">Tagged on:\u00a0<a href=\"https:\/\/blog.csphere.cn\/archives\/tag\/docker\" rel=\"tag\">docker<\/a><\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Docker\u57fa\u7840 \u8fd9\u7bc7\u57fa\u7840\u6587\u7ae0\u662f\u65b9\u4fbf\u7528\u6237<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[122],"class_list":["post-2760","post","type-post","status-publish","format-standard","hentry","tag-06-godocker"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/2760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=2760"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/2760\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=2760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=2760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=2760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}