<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Dockers on Jermineの博客 </title>
    <link>https://Jermine.vdo.pub/docker/</link>
    <description>Recent content in Dockers on Jermineの博客 </description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Fri, 22 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://Jermine.vdo.pub/docker/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>本地服务器搭建Harbor</title>
      <link>https://Jermine.vdo.pub/docker/%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BAharbor/</link>
      <pubDate>Mon, 10 Dec 2018 17:38:45 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/docker/%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BAharbor/</guid>
      <description>&lt;h2 id=&#34;unix下安装harbor镜像仓库&#34;&gt;Unix下安装Harbor镜像仓库&lt;/h2&gt;&#xA;&lt;p&gt;harbor的&lt;a href=&#34;https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md&#34;&gt;官方安装指南&lt;/a&gt;介绍了harbor有三种安装方式，分别是在线安装、离线安装和OVA安装，本文主要采用离线安装的方式。&lt;/p&gt;&#xA;&lt;p&gt;官方文档上面说明需要依赖Python 2.7或以上版本，Docker引擎1.10以上，还有Docker Compose 1.6.0或以上版本，openssl。&lt;/p&gt;</description>
    </item>
    <item>
      <title>关于Docker远程连接</title>
      <link>https://Jermine.vdo.pub/docker/%E5%85%B3%E4%BA%8Edocker_%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5/</link>
      <pubDate>Thu, 29 Nov 2018 11:24:37 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/docker/%E5%85%B3%E4%BA%8Edocker_%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5/</guid>
      <description>&lt;h2 id=&#34;非安全的连接方式&#34;&gt;非安全的连接方式&lt;/h2&gt;&#xA;&lt;p&gt;先介绍 &lt;code&gt;非安全&lt;/code&gt; 的连接方式。&lt;/p&gt;&#xA;&lt;h3 id=&#34;服务端配置&#34;&gt;服务端配置&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;CoreOS &lt;/code&gt;请使用第二种方法，其他 Linux 系统配置时选择以下两种方法之一&lt;/p&gt;&#xA;&lt;h3 id=&#34;通常的配置方法&#34;&gt;通常的配置方法&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;docker.service&lt;/code&gt; 中 &lt;code&gt;dockerd&lt;/code&gt; 的&lt;code&gt; -H&lt;/code&gt; 参数不能与 &lt;code&gt;daemon.json&lt;/code&gt; 中的 &lt;code&gt;hosts &lt;/code&gt;键值对冲突。(其他参数同理)&lt;/p&gt;&#xA;&lt;p&gt;新建 &lt;code&gt;/etc/systemd/system/docker.service.d/docker.conf&lt;/code&gt; 文件。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nvidia Docker可以指定GPU以及数量</title>
      <link>https://Jermine.vdo.pub/docker/nvidia-docker/</link>
      <pubDate>Fri, 23 Nov 2018 18:17:44 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/docker/nvidia-docker/</guid>
      <description>&lt;h2 id=&#34;docker可以指定gpu以及数量操作如下&#34;&gt;docker可以指定GPU以及数量操作如下：&lt;/h2&gt;&#xA;&lt;p&gt;docker调用GPU时可以明确指定用哪一张显卡，同时也可以指定数量&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://Jermine.vdo.pub/img/docker/1.png&#34; alt=&#34;1&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker中使用深度学习框架并支持GPU加速</title>
      <link>https://Jermine.vdo.pub/docker/docker%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A1%86%E6%9E%B6%E5%B9%B6%E6%94%AF%E6%8C%81gpu%E5%8A%A0%E9%80%9F/</link>
      <pubDate>Wed, 23 Aug 2017 15:40:16 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/docker/docker%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A1%86%E6%9E%B6%E5%B9%B6%E6%94%AF%E6%8C%81gpu%E5%8A%A0%E9%80%9F/</guid>
      <description>&lt;h2 id=&#34;docker中使用深度学习框架并支持gpu加速&#34;&gt;Docker中使用深度学习框架并支持GPU加速&lt;/h2&gt;&#xA;&lt;h3 id=&#34;启动一个支持gpu的容器&#34;&gt;启动一个支持gpu的容器&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;docker run --runtime=nvidia --restart=always --name tensorflow  -dit -v `pwd`:/app -w /app  nvidia/cuda:9.0-cudnn7-runtime-ubuntu16.04&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;进入容器&#34;&gt;进入容器&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;docker exec -it tensorflow bash&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;设置源&#34;&gt;设置源&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;Jermine@ubuntu:~$ cat &amp;gt; /etc/apt/sources.list&#xA;&#xA;deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse&#xA;deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse&#xA;deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse&#xA;deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse&#xA;##测试版源&#xA;deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;更新源&#34;&gt;更新源&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt-get update &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;安装相关依赖&#34;&gt;安装相关依赖&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# 导入环境变量&#xA; TENSORFLOW_VERSION=1.7.0 &#xA; &#xA; apt-get update -y  &amp;amp;&amp;amp; apt-get install -y --no-install-recommends python3 python3-pip  protobuf-compiler;\&#xA;    pip3 install --upgrade pip ;\&#xA;    python3 -V &amp;amp;&amp;amp; pip3 -V ;\&#xA;    pip3  --no-cache-dir install setuptools  ;\&#xA;    pip3 --no-cache-dir install  \&#xA;    https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-${TENSORFLOW_VERSION}-cp35-cp35m-linux_x86_64.whl ;\&#xA;    apt-get autoremove &amp;amp;&amp;amp; apt-get autoclean ;\&#xA;    rm -rf /var/lib/apt/lists/*&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;测试程序&#34;&gt;测试程序&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;import numpy as np&#xA;np.random.seed(0)&#xA;import tensorflow as tf&#xA;import time&#xA;&#xA;N,D = 6000,8000&#xA;&#xA;with tf.device(&amp;#39;/cpu:0&amp;#39;):&#xA;    x = tf.placeholder(tf.float32)&#xA;    y = tf.placeholder(tf.float32)&#xA;    z = tf.placeholder(tf.float32)&#xA;&#xA;    a = x * y&#xA;    b = a + z&#xA;    c = tf.reduce_sum(b)&#xA;&#xA;grad_x, grad_y, grad_z = tf.gradients(c, [x,y,z])&#xA;&#xA;start_time = time.time()&#xA;with tf.Session() as sess:&#xA;    values = {&#xA;        x: np.random.randn(N, D),&#xA;        y: np.random.randn(N, D),&#xA;        z: np.random.randn(N, D),&#xA;    }&#xA;    out = sess.run([c, grad_x, grad_y, grad_z],&#xA;                   feed_dict=values)&#xA;    c_val, grad_x_val, grad_y_val, grad_z_val = out&#xA;elapsed = time.time() - start_time&#xA;print(time.strftime(&amp;#34;%H:%M:%S&amp;#34;, time.gmtime(elapsed)))&#xA;print(&amp;#34;exit 0&amp;#34;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;将其存为 test_gpu_for_tensorflow.py  ， 使用 &lt;code&gt;python3 test_gpu_for_tensorflow.py &lt;/code&gt; 执行结果如下：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Certificate Signed by Unknown Authority Error</title>
      <link>https://Jermine.vdo.pub/docker/certificate-signed-by-unknown-authority-error/</link>
      <pubDate>Sat, 13 May 2017 16:21:51 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/docker/certificate-signed-by-unknown-authority-error/</guid>
      <description>&lt;h2 id=&#34;certificate-signed-by-unknown-authority-error&#34;&gt;Certificate signed by unknown authority error&lt;/h2&gt;&#xA;&lt;p&gt;x509: certificate signed by unknown authority&#xA;This error message means that you do not have a trusted certificate. You need to trust the default certificates generated during your Docker Trusted Registry (DTR) installation.&lt;/p&gt;&#xA;&lt;p&gt;You can do so by running these commands on the nodes from where you want to access your DTR (be sure to replace &lt;my-dtr-domain&gt; with your DTR Domain name.):&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;CentOS/RHEL&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;export DOMAIN_NAME=hub.fi.vdo.pub&#xA;export TCP_PORT=443&#xA;openssl s_client -connect $DOMAIN_NAME:$TCP_PORT -showcerts &amp;lt;/dev/null 2&amp;gt;/dev/null | openssl x509 -outform PEM | sudo tee /etc/pki/ca-trust/source/anchors/$DOMAIN_NAME.crt&#xA;update-ca-trust&#xA;systemctl restart docker.service&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>GDB in Docker for Debug - 如何在Docker容器内部使用gdb进行debug</title>
      <link>https://Jermine.vdo.pub/docker/gdb-in-docker-for-debug/</link>
      <pubDate>Wed, 08 Mar 2017 10:02:33 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/docker/gdb-in-docker-for-debug/</guid>
      <description>&lt;p&gt;安全计算模式（secure computing mode，seccomp）是 Linux 内核功能，可以使用它来限制容器内可用的操作。&lt;/p&gt;&#xA;&lt;p&gt;Docker 的默认 seccomp 配置文件是一个白名单，它指定了允许的调用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>在docker中搭建Samba服务器</title>
      <link>https://Jermine.vdo.pub/docker/docker-samba/</link>
      <pubDate>Sun, 20 Mar 2016 12:13:19 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/docker/docker-samba/</guid>
      <description>&lt;h2 id=&#34;在docker中搭建samba服务器&#34;&gt;在docker中搭建Samba服务器&lt;/h2&gt;&#xA;&lt;p&gt;要是想把容器的权限与宿主主机的用户权限一致的话，则只需要把用户和组文件映射到容器里面即可：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;docker run --restart=always -d --name samba -p 139:139 -p 445:445 -v /data/samba_server:/share -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro dperson/samba -s &amp;#34;lnh;/share/;yes;no;no;all;none&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果只是设置账户直接访问可以直接run：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes 部署 SSH 跳板机：用 autossh 打通内网访问</title>
      <link>https://Jermine.vdo.pub/docker/k8s-ssh-tunnel-autossh/</link>
      <pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate>
      <guid>https://Jermine.vdo.pub/docker/k8s-ssh-tunnel-autossh/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;在 Kubernetes 集群中，很多时候服务没有对外暴露的网络入口，排查问题或日常运维都需要进入集群内部。通常的做法是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;在集群内部署一个 SSH 服务作为跳板机&lt;/li&gt;&#xA;&lt;li&gt;通过 SSH 反向隧道将跳板机暴露到外部可访问的服务器上&lt;/li&gt;&#xA;&lt;li&gt;开发者通过隧道连接跳板机，再访问集群内部服务&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;本文介绍如何在 K8s 中用一个 Pod 两个容器实现 SSH 跳板机 + autossh 自动隧道，实现稳定的内网穿透。&lt;/p&gt;</description>
    </item>
    <item>
      <title>autossh SSH 反向隧道：从 Docker 到 Kubernetes 部署</title>
      <link>https://Jermine.vdo.pub/docker/autossh-tunnel-docker-k8s/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://Jermine.vdo.pub/docker/autossh-tunnel-docker-k8s/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;在内网环境中，经常需要将本地服务暴露到远程服务器上，常见场景如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;本地开发环境需要被外部访问&lt;/li&gt;&#xA;&lt;li&gt;内网服务需要通过跳板机访问&lt;/li&gt;&#xA;&lt;li&gt;Kubernetes 集群服务需要临时暴露到外部网络&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;使用 SSH 反向隧道（&lt;code&gt;-R&lt;/code&gt; 参数）可以将本地端口映射到远程服务器端口，而 &lt;code&gt;autossh&lt;/code&gt; 则能自动保持 SSH 连接稳定，在断线时自动重连。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
