<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker on 菜鸟程序员</title><link>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/</link><description>Recent content in Docker on 菜鸟程序员</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>docker-compose</title><link>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/docker-compose/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/docker-compose/</guid><description>&lt;h2 id="docker-composeyml中添加自定义网络">docker-compose.yml中添加自定义网络&lt;a class="td-heading-self-link" href="#docker-composeyml%e4%b8%ad%e6%b7%bb%e5%8a%a0%e8%87%aa%e5%ae%9a%e4%b9%89%e7%bd%91%e7%bb%9c" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;pre tabindex="0">&lt;code>1. 如果是3.5以下版本（3.4及以下）
网络配置如下定义
networks:
 自定义网络名1:#此名称在当前docker-compose文件中作为id出现，当前文件使用网络写 &amp;#34;自定义网络名1&amp;#34;即可
 driver: &amp;#34;bridge&amp;#34;
运行后使用 docker network list
会创建一个名为： &amp;#34;目录名_自定义网络名1&amp;#34; 的docker网络

2. 在3.5版本的docker-compose.yml文件中可以定义网络
networks:
 自定义网络2:
 name: 自定义网络2-custom
 driver: &amp;#34;bridge&amp;#34;
此时添加了name属性，在运行 docker network list 命令则创建的docker网络名即为 &amp;#34;自定义网络2-custom&amp;#34;
&lt;/code>&lt;/pre>&lt;h2 id="在docker-composeyml中使用已有的网络">在docker-compose.yml中使用已有的网络&lt;a class="td-heading-self-link" href="#%e5%9c%a8docker-composeyml%e4%b8%ad%e4%bd%bf%e7%94%a8%e5%b7%b2%e6%9c%89%e7%9a%84%e7%bd%91%e7%bb%9c" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;pre tabindex="0">&lt;code>此以3.4 3.5版本文件为例
此时另一个目录中的docker-compose.yml文件的容器启动也要使用 &amp;#34;目录名_自定义网络名1&amp;#34; 的docker网络
可以如下写法
networks:
 自定义网络3:#&amp;#34;自定义网络3&amp;#34; 作为当前文件中的一个ID标记使用
 external:
 name: 自定义网络2-custom || 目录名_自定义网络名1 
 #(也就是在运行docker network list 命令能打印出来的网络名称)
&lt;/code>&lt;/pre>&lt;h2 id="覆盖镜像中启动的默认命令">覆盖镜像中启动的默认命令&lt;a class="td-heading-self-link" href="#%e8%a6%86%e7%9b%96%e9%95%9c%e5%83%8f%e4%b8%ad%e5%90%af%e5%8a%a8%e7%9a%84%e9%bb%98%e8%ae%a4%e5%91%bd%e4%bb%a4" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>command: [&amp;ldquo;bundle&amp;rdquo;, &amp;ldquo;exec&amp;rdquo;, &amp;ldquo;thin&amp;rdquo;, &amp;ldquo;-p&amp;rdquo;, &amp;ldquo;3000&amp;rdquo;]&lt;/p></description></item><item><title>DockerNetword</title><link>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/dockernetwork/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/dockernetwork/</guid><description>&lt;h1 id="docker-网络与容器互联">&lt;a href="https://einverne.github.io/post/2020/07/docker-network.html">Docker 网络与容器互联&lt;/a>&lt;a class="td-heading-self-link" href="#docker-%e7%bd%91%e7%bb%9c%e4%b8%8e%e5%ae%b9%e5%99%a8%e4%ba%92%e8%81%94" aria-label="Heading self-link">&lt;/a>&lt;/h1>
&lt;p>简单整理一下 Docker 中 network 子命令，以及 docker 中相关 network 方面的内容。&lt;/p>
&lt;p>在安装完 Docker 后，使用 &lt;code>ifconfig -a&lt;/code> 查看可以看到多出一个虚拟的 docker0 接口，这个接口是 Docker 默认的网关地址。&lt;/p>
&lt;h2 id="不同-network-driver-介绍">不同 Network driver 介绍&lt;a class="td-heading-self-link" href="#%e4%b8%8d%e5%90%8c-network-driver-%e4%bb%8b%e7%bb%8d" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Docker 容器默认有三种连接方式：&lt;/p>
&lt;ul>
&lt;li>bridge&lt;/li>
&lt;li>host&lt;/li>
&lt;li>none&lt;/li>
&lt;/ul>
&lt;h3 id="bridge-模式">bridge 模式&lt;a class="td-heading-self-link" href="#bridge-%e6%a8%a1%e5%bc%8f" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>Docker 默认会生成一个 docker0 网桥，如果不指定，默认创建的容器都会默认走此网桥，使用 bridge 模式联网。默认 bridge 会产生 docker0 的虚拟接口，在宿主机上可以使用 &lt;code>ifconfig -a&lt;/code> 来查看，一般的网关地址是 &lt;code>172.17.0.1&lt;/code>，所有的容器都会使用这个地址作为网关，容器的 IP 地址会从 &lt;code>172.17.0.2&lt;/code> 到 &lt;code>172.17.0.254&lt;/code> 这个范围 IP 段划分。&lt;/p>
&lt;p>此模式下，容器可以单向连接外网，外网或宿主要访问容器则需要容器映射端口。&lt;/p>
&lt;h3 id="host-模式">host 模式&lt;a class="td-heading-self-link" href="#host-%e6%a8%a1%e5%bc%8f" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>host 模式等同于容器直接使用物理机的网络，宿主机的 IP 就是容器的 IP，端口也可以直接调用。&lt;/p></description></item><item><title>拉取并推送到阿里云docker仓库的shell脚本</title><link>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/%E6%8B%89%E5%8F%96%E5%B9%B6%E6%8E%A8%E9%80%81%E5%88%B0%E9%98%BF%E9%87%8C%E4%BA%91docker%E4%BB%93%E5%BA%93%E7%9A%84shell%E8%84%9A%E6%9C%AC/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/%E6%8B%89%E5%8F%96%E5%B9%B6%E6%8E%A8%E9%80%81%E5%88%B0%E9%98%BF%E9%87%8C%E4%BA%91docker%E4%BB%93%E5%BA%93%E7%9A%84shell%E8%84%9A%E6%9C%AC/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">#使用脚本前 需要登录到阿里云仓库 命令&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">#docker login --username=#{你的用户名} registry.cn-beijing.aliyuncs.com&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">#输入密码 &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">image_name&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000">$1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">image_tag&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000">$2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"># 检查 image_name 是否为空&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">if&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">[&lt;/span> -z &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_name&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">]&lt;/span>&lt;span style="color:#000;font-weight:bold">;&lt;/span>&lt;span style="color:#204a87;font-weight:bold">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87">echo&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;请输入镜像名称&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87">exit&lt;/span> &lt;span style="color:#0000cf;font-weight:bold">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"># 检查 image_tag 是否为空&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">if&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">[&lt;/span> -z &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_tag&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">]&lt;/span>&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#204a87;font-weight:bold">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87">echo&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;image_tag 为空，赋值为 latest&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">image_tag&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;latest&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"># 在本地拉去镜像&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">image_all&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_name&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>:&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_tag&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo docker pull &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_all&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"># 获取镜像id&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">image_id&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">`&lt;/span>sudo docker images --filter&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000">reference&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000">$image_all&lt;/span> -q&lt;span style="color:#4e9a06">`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic"># 获取镜像名称&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">image_last_part&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87;font-weight:bold">$(&lt;/span>&lt;span style="color:#204a87">echo&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_name&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span> &lt;span style="color:#000;font-weight:bold">|&lt;/span> awk -F&lt;span style="color:#4e9a06">&amp;#39;/&amp;#39;&lt;/span> &lt;span style="color:#4e9a06">&amp;#39;{print $NF}&amp;#39;&lt;/span>&lt;span style="color:#204a87;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">aliyun_image_path&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>registry.cn-beijing.aliyuncs.com/#&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>这里填你的命名空间&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>$/&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_last_part&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>:&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$image_tag&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo docker tag &lt;span style="color:#000">$image_id&lt;/span> &lt;span style="color:#000">$aliyun_image_path&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo docker push &lt;span style="color:#000">$aliyun_image_path&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo docker rmi &lt;span style="color:#000">$aliyun_image_path&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87">echo&lt;/span> &lt;span style="color:#000">$aliyun_image_path&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo docker images
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">#sudo docker $image_all&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>容器相关命令解析</title><link>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4%E8%A7%A3%E6%9E%90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.azhw.com.cn/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7%E5%92%8C%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1/docker/%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4%E8%A7%A3%E6%9E%90/</guid><description>&lt;h1 id="一命名空间相关">一、命名空间相关&lt;a class="td-heading-self-link" href="#%e4%b8%80%e5%91%bd%e5%90%8d%e7%a9%ba%e9%97%b4%e7%9b%b8%e5%85%b3" aria-label="Heading self-link">&lt;/a>&lt;/h1>
&lt;blockquote>
&lt;p>貌似在docker里面没有命名空间&lt;br>
容器启动的时候，默认会在默认的命名空间中启动 即 default&lt;br>
可以通过-n 指定命名空间&lt;br>
Docker 使用的 containerd 下面的命名空间默认是 moby，而不是 default&lt;br>
所以假如我们有用 docker 启动容器，那么我们也可以通过 ctr -n moby&lt;br>
同样 Kubernetes 下使用的 containerd 默认命名空间是 k8s.io，所以我们可以使用 ctr -n k8s.io 来查看 Kubernetes 下面创建的容器&lt;/p>&lt;/blockquote>
&lt;ol>
&lt;li>查看命名空间&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>ctr ns ls&lt;/p>&lt;/blockquote>
&lt;ol start="2">
&lt;li>创建命名空间&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>ctr ns create my-ns&lt;/p>&lt;/blockquote>
&lt;ol start="3">
&lt;li>删除命名空间&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>ctr ns rm my-ns&lt;br>
ctr ns remove my-ns&lt;/p>&lt;/blockquote>
&lt;ol start="4">
&lt;li>指定命名空间操作&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>ctr -n test i ls -q&lt;/p>&lt;/blockquote>
&lt;h1 id="一镜像相关命令">一、镜像相关命令&lt;a class="td-heading-self-link" href="#%e4%b8%80%e9%95%9c%e5%83%8f%e7%9b%b8%e5%85%b3%e5%91%bd%e4%bb%a4" aria-label="Heading self-link">&lt;/a>&lt;/h1>
&lt;ol>
&lt;li>拉取镜像&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>docker&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>docker pull nginx:latest&lt;/p></description></item></channel></rss>