{"id":303,"date":"2022-07-12T16:04:07","date_gmt":"2022-07-12T08:04:07","guid":{"rendered":"http:\/\/feel.name\/?p=303"},"modified":"2022-07-13T09:56:50","modified_gmt":"2022-07-13T01:56:50","slug":"linux%e4%b8%8b%e5%ae%89%e8%a3%85%e4%bd%bf%e7%94%a8docker","status":"publish","type":"post","link":"http:\/\/feel.name\/?p=303","title":{"rendered":"Linux\u4e0b\u5b89\u88c5\u4f7f\u7528docker"},"content":{"rendered":"\n<p>\u76f4\u63a5\u5f00\u5e72\u3002<\/p>\n\n\n\n<p>uname -r<\/p>\n\n\n\n<p>\u67e5\u770b\u5185\u6838\u7248\u672c\u662f\u54263.10\u6216\u8005\u4ee5\u4e0a\u3002\u786e\u8ba4\u65e0\u8bef\u540e\uff0c\u5220\u9664\u73b0\u6709\u7684docker<\/p>\n\n\n\n<p>sudo yum remove docker docker-common docker-selinux docker-engine<\/p>\n\n\n\n<p>\u5b89\u88c5docker\u5e93\u6709\u5173\u7684<\/p>\n\n\n\n<p>sudo yum install -y yum-utils device-mapper-persistent-data lvm2<\/p>\n\n\n\n<p>yum-config-manager &#8211;add-repo http:\/\/mirrors.aliyun.com\/docker-ce\/linux\/centos\/docker-ce.repo<\/p>\n\n\n\n<p>\u4e5f\u53ef\u4ee5\u6dfb\u52a0\u5b98\u65b9\u7684\u6e90<\/p>\n\n\n\n<p>yum-config-manager &#8211;add-repo https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo<\/p>\n\n\n\n<p>yum list docker-ce &#8211;showduplicates | sort -r<\/p>\n\n\n\n<p>\u67e5\u770b\u540e\u5b89\u88c5<\/p>\n\n\n\n<p>sudo yum install docker-ce<\/p>\n\n\n\n<p>\u5b89\u88c5\u6210\u529f\u540e\u5f00\u542f\u81ea\u542f\u548c\u542f\u52a8<\/p>\n\n\n\n<p>systemctl start docker<\/p>\n\n\n\n<p>systemctl enable docker<\/p>\n\n\n\n<p>\u662f\u5426\u6210\u529f\u53ef\u4ee5\u67e5\u770b\u547d\u4ee4\u6765\u770b<\/p>\n\n\n\n<p>docker version<\/p>\n\n\n\n<p>\u641c\u7d22\u955c\u50cfhttpd nginx <\/p>\n\n\n\n<p>docker search httpd<\/p>\n\n\n\n<p>docker search nginx<\/p>\n\n\n\n<p>\u67e5\u770b\u672c\u5730\u955c\u50cf<\/p>\n\n\n\n<p>docker images<\/p>\n\n\n\n<p>\u4e0b\u8f7d\u5230\u672c\u5730<\/p>\n\n\n\n<p>docker pull httpd<\/p>\n\n\n\n<p>docker pull nginx<\/p>\n\n\n\n<p>\u8fd0\u884c\u540e\u81ea\u52a8\u7ed3\u675f<\/p>\n\n\n\n<p>docker run ubuntu echo &#8220;hello world&#8221;<\/p>\n\n\n\n<p>\u67e5\u770b\u8fd0\u884c\u72b6\u6001 <\/p>\n\n\n\n<p>docker ps -a<\/p>\n\n\n\n<p>docker top  ubuntu    docker stats ubuntu  docker inspect ubuntu<\/p>\n\n\n\n<p>\u5217\u51fa\u6240\u6709\u5bb9\u5668 ID docker ps -aq <\/p>\n\n\n\n<p>\u505c\u6b62\u6240\u6709\u5bb9\u5668 docker stop $(docker ps -aq) <\/p>\n\n\n\n<p>\u505c\u6b62\u5355\u4e2a\u5bb9\u5668 docker stop \u8981\u505c\u6b62\u7684\u5bb9\u5668\u540d <\/p>\n\n\n\n<p>\u5220\u9664\u6240\u6709\u5bb9\u5668 docker rm $(docker ps -aq) \u5220\u9664\u5355\u4e2a\u5bb9\u5668 docker rm \u8981\u5220\u9664\u7684\u5bb9\u5668\u540d<\/p>\n\n\n\n<p>\u5220\u9664\u6240\u6709\u7684\u955c\u50cf docker rmi $(docker images -q)<\/p>\n\n\n\n<p>\u67e5\u770b\u7f51\u7edc\u6a21\u5f0f docker network ls<\/p>\n\n\n\n<p>\u67e5\u770b\u67d0\u4e2a\u6a21\u5f0f \u6bd4\u5982bridge   docker network inspect bridge<\/p>\n\n\n\n<p>\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6865\u63a5\u7f51\u7edcdocker network create &#8211;driver bridge &#8211;subnet=172.18.129.0\/24 &#8211;gateway=172.18.129.1 mynet<\/p>\n\n\n\n<p>\u5220\u9664\u521a\u624d\u5efa\u7acb\u7684\u7f51\u7edc docker network rm mynet<\/p>\n\n\n\n<p>docker run -d -p 8009:80 &#8211;name apache httpd<\/p>\n\n\n\n<p>\u4ee5\u8fdb\u7a0b\u65b9\u5f0f\u542f\u52a8-d \u672c\u57308009\u7aef\u53e3\u6620\u5c04\u5230\u955c\u50cf80 \u4ee5\u547d\u540d\u4e3aapache\u540d\u5b57<\/p>\n\n\n\n<p>udp\u7aef\u53e3\u7684\u8bdd \u6bd4\u59828888:8888\/udp \u8fd9\u6837\u5199\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n\n\n\n<p>-it \u662f\u4ea4\u4e92\u6a21\u5f0f \u5728\u4ea4\u4e92\u6a21\u5f0f\u4e0b\u9000\u51fa\u76f4\u63a5exit <\/p>\n\n\n\n<p>\u8981\u662f\u8fdb\u7a0b\u6a21\u5f0f-d\u542f\u52a8\u7684\uff0c\u901a\u8fc7\u8fc7docker ps  -a \u770bname \uff0cdocker stop name\u505c\u6b62\u6389\u3002<\/p>\n\n\n\n<p>\u8fd0\u884c\u4e2d\u7684\u5bb9\u5668\u8fdb\u5165\u65b9\u5f0f docker exec -it name \/bin\/bash<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u6bd4\u5982\u8fdb\u4e86\u5bb9\u5668\u540e\uff0c\u53d1\u73b0vi\u7b49\u7f16\u8f91\u5668\u90fd\u6ca1\u3002\u53ea\u80fd\u81ea\u5df1\u5b89\u88c5\u4e86<\/p>\n\n\n\n<p>centos\u4e3a\u4f8b\u8fdb\u5165\uff0cyum.repo.d\u4e0b\u66f4\u6539\u4e0byum\u7684\u6e90 \u6bd5\u7adfcentos8\u6b7b\u4e86<\/p>\n\n\n\n<p>\u901a\u8fc7sed\u547d\u4ee4 <\/p>\n\n\n\n<p>sed -i &#8216;s\/mirrorlist\/#mirrorlist\/g&#8217; \/etc\/yum.repos.d\/CentOS-*<\/p>\n\n\n\n<p>sed -i &#8216;s|#baseurl=http:\/\/mirror.centos.org|baseurl=http:\/\/vault.centos.org|g&#8217; \/etc\/yum.repos.d\/CentOS-*<\/p>\n\n\n\n<p>yum install vi wget net-tools <\/p>\n\n\n\n<p>\u5176\u4ed6\u64cd\u4f5c\u7cfb\u7edf\u90fd\u5dee\u4e0d\u591a\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker commit name \u4fdd\u5b58\u7684docker\u955c\u50cf\n\u5bb9\u5668\u66f4\u65b0\u597d\u540e\u6267\u884cexit\u63a8\u51fa\u540ecommit\u4fdd\u5b58\u4e0b\uff0c\u5176\u4e2dname\u53ef\u4ee5docker ps -a\u53ef\u4ee5\u67e5\u5230\u7136\u540e\u540e\u9762\u4fdd\u5b58\u7684\u81ea\u5df1\u5b9a\u4e49\u7684tag\u90fd\u53ef\u4ee5\u3002\n<\/pre>\n\n\n\n<p>docker logs name\u6765\u53ef\u4ee5\u67e5\u770b\u8f93\u51fa\u7684\u5185\u5bb9 name\u53ef\u4ee5ps -a\u67e5\u770b<\/p>\n\n\n\n<p><strong>-P:<\/strong>\u5c06\u5bb9\u5668\u5185\u90e8\u4f7f\u7528\u7684\u7f51\u7edc\u7aef\u53e3\u968f\u673a\u6620\u5c04\u5230\u6211\u4eec\u4f7f\u7528\u7684\u4e3b\u673a\u4e0a\u3002\u8fd9\u4e2a\u4e5f\u53ef\u4ee5\u901a\u8fc7ps -a\u53ef\u4ee5\u770b\u5230<\/p>\n\n\n\n<p>\u66f4\u6539dns  <\/p>\n\n\n\n<p>echo &#8220;$(sed &#8216;s\/192.168.1.1\/192.168.1.254\/g&#8217; \/etc\/resolv.conf)&#8221; &gt; \/etc\/resolv.conf<\/p>\n\n\n\n<p>\u5176\u4ed6sed \u6280\u5de7<\/p>\n\n\n\n<p>\u5728\u4f7f\u7528DockerFile\u5236\u4f5cnginx\u955c\u50cf\u65f6\uff0c\u9700\u8981\u4fee\u6539nginx.conf\u7684\u914d\u7f6e\uff0c\u901a\u8fc7 sed\u547d\u4ee4\u53ef\u5b9e\u73b0\u5bf9\u955c\u50cf\u4e2d\u6587\u4ef6\u7684\u4fee\u6539\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>\u4e00\u3001\u901a\u8fc7\u6307\u5b9a\u884c\u53f7\u4fee\u6539<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li>\u5728\u6307\u5b9a\u884c\u53f7\u540e\u589e\u52a0\u5185\u5bb9\uff1a<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>RUN sed -i -e '\u884c\u53f7a\u5185\u5bb9' \u6587\u4ef6\u8def\u5f84\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\"><li>\u66ff\u6362\u6307\u5b9a\u884c\u53f7\u7684\u5185\u5bb9\uff1a<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>RUN sed -i -e '\u884c\u53f7c\u5185\u5bb9' \u6587\u4ef6\u8def\u5f84\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\"><li>\u5728\u6307\u5b9a\u884c\u53f7\u524d\u589e\u52a0\u5185\u5bb9\uff1a<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>RUN sed -i -e '\u884c\u53f7i\u5185\u5bb9' \u6587\u4ef6\u8def\u5f84\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>\u4e8c\u3001\u901a\u8fc7\u5339\u914d\u5185\u5bb9\u8fdb\u884c\u4fee\u6539<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li>\u5339\u914d\u884c\u524d\u4fee\u6539\uff1a<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>RUN sed -i '\/\u8981\u5339\u914d\u7684\u5185\u5bb9\/a\u4fee\u6539\u540e\u7684\u5185\u5bb9' \u6587\u4ef6\u8def\u5f84\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\"><li>\u5339\u914d\u884c\u540e\u4fee\u6539\uff1a<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>RUN sed -i '\/\u8981\u5339\u914d\u7684\u5185\u5bb9\/i\u4fee\u6539\u540e\u7684\u5185\u5bb9' \u6587\u4ef6\u8def\u5f84\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\"><li>\u66ff\u6362\u5339\u914d\u884c\uff1a<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>RUN sed -i '\/\u8981\u5339\u914d\u7684\u5185\u5bb9\/c\u66ff\u6362\u540e\u7684\u5185\u5bb9' \u6587\u4ef6\u8def\u5f84\n<\/code><\/pre>\n\n\n\n<p>\u8865\u5145\uff1a<br>\u5728sed\u6761\u4ef6\u4e2d\u662f\u4e0d\u8ba4\u8bc6\u53d8\u91cf\u53d6\u503c\u7684\uff0c\u6240\u4ee5\u8981\u60f3\u5b83\u80fd\u591f\u8bc6\u522b\u53d8\u91cf\uff0c\u5c31\u662f\u628a\u2019\u5355\u5f15\u53f7\u2019\u53d8\u6210&#8221;\u53cc\u5f15\u53f7&#8221;\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>sed '\/$x\/d' test\n\nsed \"\/$x\/d\/\" test\n\n\u5bb9\u5668\u8fc1\u79fb\n\u8fc1\u79fb\u5bb9\u5668\u4e09\u6b65\u9aa4\uff08\u524d\u4e24\u6b65\u90fd\u662f\u5728\u539f\u670d\u52a1\u5668\u4e0a\uff0c\u7b2c\u4e09\u6b65\u6709\u4e86tar\u5305\u5c31\u8981\u53bb\u76ee\u7684\u5730\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\u4e86\uff09\uff1a\n    1.docker commit &#91;\u5bb9\u5668ID] &#91;\u65b0\u7684\u5bb9\u5668\u7684\u540d\u79f0]:&#91;\u5bb9\u5668TAG,\u53ef\u7701\u7565\u4e0d\u5199]   -- \u5c06\u5bb9\u5668\u6253\u5305\u6210\u955c\u50cf\uff08\u5305\u62ec\u5bb9\u5668\u5185\u6240\u6709\u6587\u4ef6\u548c\u5df2\u5b89\u88c5\u7684\u8f6f\u4ef6\uff09\n    2.docker save -o &#91;tar\u7684\u4f4d\u7f6e,\u82e5\u7701\u7565\u4e0d\u5199\u7684\u5c31\u5728C\u76d8\u7684user\u76ee\u5f55\u4e0b]&#91;\u65b0\u955c\u50cf\u7684\u540d\u79f0.tar] &#91;\u539f\u955c\u50cf\u7684\u540d\u79f0] -- \u5c06\u955c\u50cf\u6253\u6210tar\u5305\n    3.docker load -i &#91;tar\u5305\u7684\u7edd\u5bf9\u8def\u5f84]  -- \u5c06tar\u5305\u6253\u6210\u955c\u50cf\n\u6709\u4e86\u955c\u50cf\u540e\u5c31\u53ef\u4ee5\u6784\u5efa\u5bb9\u5668\u4e86\uff01\n\n\u4f7f\u7528\u767b\u5f55docker hub\ndocker login  \n\u8f93\u5165id\u548c\u5bc6\u7801 \u5207\u8bb0\u4e0d\u8981\u8f93\u5165\u90ae\u7bb1\n\u9000\u51fa docker logout\ndocker tag ubuntu:18.04 username\/ubuntu:18.04\ndocker image ls\ndocker push username\/ubuntu:18.04\n\n\u5220\u9664\u5bb9\u5668\u4e86\u624d\u80fd\u5220\u9664images\n\u67e5\u770b\u5bb9\u5668\u72b6\u6001\ndocker ps -a\n\u5220\u9664\u6240\u6709\u9000\u51fa\u7684\u5bb9\u5668\ndocker rm $(docker ps -a -q)\ndocker images\ndocker rmi centos\/yum<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u76f4\u63a5\u5f00\u5e72\u3002 uname -r \u67e5\u770b\u5185\u6838\u7248\u672c\u662f\u54263.10\u6216\u8005\u4ee5\u4e0a\u3002\u786e\u8ba4\u65e0\u8bef\u540e\uff0c\u5220\u9664\u73b0\u6709\u7684docker sudo &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-303","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"http:\/\/feel.name\/index.php?rest_route=\/wp\/v2\/posts\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/feel.name\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/feel.name\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/feel.name\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/feel.name\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=303"}],"version-history":[{"count":11,"href":"http:\/\/feel.name\/index.php?rest_route=\/wp\/v2\/posts\/303\/revisions"}],"predecessor-version":[{"id":317,"href":"http:\/\/feel.name\/index.php?rest_route=\/wp\/v2\/posts\/303\/revisions\/317"}],"wp:attachment":[{"href":"http:\/\/feel.name\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/feel.name\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=303"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/feel.name\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}