<?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 Jermineの博客 </title>
    <link>https://Jermine.vdo.pub/tags/docker/</link>
    <description>Recent content in Docker on Jermineの博客 </description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 20 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://Jermine.vdo.pub/tags/docker/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>基于Docker部署ceph分布式文件系统[MImic13.2</title>
      <link>https://Jermine.vdo.pub/ceph/%E5%9F%BA%E4%BA%8Edocker%E9%83%A8%E7%BD%B2ceph%E5%88%86%E5%B8%83%E5%BC%8F%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9Fmimic13.2.4%E7%89%88%E6%9C%AC/</link>
      <pubDate>Thu, 24 Jan 2019 15:32:11 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/ceph/%E5%9F%BA%E4%BA%8Edocker%E9%83%A8%E7%BD%B2ceph%E5%88%86%E5%B8%83%E5%BC%8F%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9Fmimic13.2.4%E7%89%88%E6%9C%AC/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;本文记录了基于docker部署最新ceph版本的多节点高可用测试详尽过程，切身体会比ceph-deploy方便得多，希望能给初次接触ceph的同学提供些许参考。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux安装Nvidia Docker</title>
      <link>https://Jermine.vdo.pub/linux/linux%E5%AE%89%E8%A3%85nvidia-docker/</link>
      <pubDate>Wed, 26 Dec 2018 18:14:00 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/linux/linux%E5%AE%89%E8%A3%85nvidia-docker/</guid>
      <description>&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 由于程序运行于容器之中，所以镜像中一般都是带有CUDA、CUDNN库的，因此只需要在docker所在的主机上安装显卡驱动即可，无需费太大力气去安装cuda、cuddn之类的东西。&lt;/p&gt;</description>
    </item>
    <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>LDAP集成多个系统配置截图</title>
      <link>https://Jermine.vdo.pub/devops/ldap%E9%9B%86%E6%88%90%E5%A4%9A%E4%B8%AA%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE%E6%88%AA%E5%9B%BE/</link>
      <pubDate>Fri, 07 Dec 2018 09:47:45 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/devops/ldap%E9%9B%86%E6%88%90%E5%A4%9A%E4%B8%AA%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE%E6%88%AA%E5%9B%BE/</guid>
      <description>&lt;h1 id=&#34;多个系统基于ldap用户认证&#34;&gt;多个系统基于LDAP用户认证&lt;/h1&gt;&#xA;&lt;p&gt;OpenLDAP是一个集中的用户账号管理系统。使用轻量级目录访问协议（LDAP）构建集中的身份验证系统可以减少管理成本，增强安全性，避免数据复制的问题，并提高数据的一致性。&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>使用dotnet core通过docker部署一个基于微服务的demo应用</title>
      <link>https://Jermine.vdo.pub/microservice/%E4%BD%BF%E7%94%A8dotnet-core%E9%80%9A%E8%BF%87docker%E9%83%A8%E7%BD%B2%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%9A%84demo%E5%BA%94%E7%94%A8/</link>
      <pubDate>Tue, 27 Nov 2018 13:25:20 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/microservice/%E4%BD%BF%E7%94%A8dotnet-core%E9%80%9A%E8%BF%87docker%E9%83%A8%E7%BD%B2%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%9A%84demo%E5%BA%94%E7%94%A8/</guid>
      <description>&lt;h2 id=&#34;使用dotcore通过docker部署一个基于微服务的demo应用&#34;&gt;使用dotcore通过docker部署一个基于微服务的demo应用&lt;/h2&gt;&#xA;&lt;h3 id=&#34;架构概述&#34;&gt;架构概述&lt;/h3&gt;&#xA;&lt;p&gt;这个参考应用程序在服务器和客户端是跨平台的，这要归功于.NET Core服务能够在Linux或Windows容器上运行，具体取决于您的Docker主机，以及Xamarin用于在Android，iOS或Windows / UWP plus上运行的移动应用程序客户端Web应用程序的任何浏览器。该体系结构提出了一种面向微服务的体系结构实现，具有多个自治微服务（每个都拥有自己的数据库/ db），并在每个微服务中实现不同的方法（简单的CRUD与DDD / CQRS模式），使用Http作为客户端应用程序之间的通信协议。微服务和支持异步通信，用于基于集成事件和事件总线（轻量级消息代理，在RabbitMQ或Azure Service Bus之间进行选择，跨多个服务）进行数据更新传播。&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>实时数据库InfluxDB的使用</title>
      <link>https://Jermine.vdo.pub/database/%E5%AE%9E%E6%97%B6%E6%95%B0%E6%8D%AE%E5%BA%93influxdb%E7%9A%84%E4%BD%BF%E7%94%A8/</link>
      <pubDate>Fri, 07 Sep 2018 14:00:54 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/database/%E5%AE%9E%E6%97%B6%E6%95%B0%E6%8D%AE%E5%BA%93influxdb%E7%9A%84%E4%BD%BF%E7%94%A8/</guid>
      <description>&lt;h2 id=&#34;influxdb介绍&#34;&gt;InfluxDB介绍：&lt;/h2&gt;&#xA;&lt;p&gt;InfluxDB是一个开源的时序数据库，使用GO语言开发，特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差，随机取样数据，统计数据变化比等，使数据统计和实时分析变得十分方便。在我们的容器资源监控系统中，就采用了InfluxDB存储cadvisor的监控数据。本文对InfluxDB的基本概念和一些特色功能做一个详细介绍，内容主要是翻译整理自官网文档，如有错漏，请指正。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux [re]install CUDA - Linux 安装和使用 CUDA</title>
      <link>https://Jermine.vdo.pub/linux/linux-reinstall-cuda/</link>
      <pubDate>Fri, 24 Aug 2018 13:48:25 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/linux/linux-reinstall-cuda/</guid>
      <description>&lt;h1 id=&#34;简便安装方法&#34;&gt;简便安装方法&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;此文档来源于Jermine的个人blog ：&lt;/strong&gt; &lt;a href=&#34;https://jermine.vdo.pub/linux/ubuntu-16.04-reinstall-cuda/&#34;&gt;https://jermine.vdo.pub/linux/ubuntu-16.04-reinstall-cuda/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;推荐两种玩法&#34;&gt;推荐两种玩法：&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt; ： 由于tensorflow的GPU版本依赖nvidia的cuda、cudnn库，因此一般需要包含cuda和cudnn的链接库文件，普遍做法是通过主机安装cudnn、cuda的方式。这里还有另外两种方式可以选择：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Build Opencv3.4 by docker in Raspberry pi - 在树莓派上通过docker编译opencv3.4.1</title>
      <link>https://Jermine.vdo.pub/raspberry-pi/build-opencv3.4.1-by-docker-in-pi/</link>
      <pubDate>Thu, 21 Jun 2018 15:31:01 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/raspberry-pi/build-opencv3.4.1-by-docker-in-pi/</guid>
      <description>&lt;h3 id=&#34;采用docker编译如下&#34;&gt;采用docker编译如下：&lt;/h3&gt;&#xA;&lt;p&gt;为了能在docker执行的时候加速，采用了&lt;code&gt;--build-arg&lt;/code&gt;参数，设定了代理地址&lt;/p&gt;&#xA;&lt;h4 id=&#34;在x86上编译如下&#34;&gt;在X86上编译如下：&lt;/h4&gt;&#xA;&lt;p&gt;docker build  &amp;ndash;build-arg HTTP_PROXY=http://192.168.16.254:1080 &amp;ndash;build-arg HTTPS_PROXY=http://192.168.16.254:1080 -t jermine/opencv:alpine -f Dockerfile.alpine .&lt;/p&gt;&#xA;&lt;h4 id=&#34;在arm64上编译操作如下&#34;&gt;在ARM64上编译操作如下&lt;/h4&gt;&#xA;&lt;p&gt;docker build -t jermine/opencv:alpine-arm64-3.4.1 -f Dockerfile.alpine &amp;ndash;build-arg HTTP_PROXY=http://192.168.16.254:1080 &amp;ndash;build-arg HTTPS_PROXY=http://192.168.16.254:1080 .&lt;/p&gt;&#xA;&lt;h3 id=&#34;环境变量配置如下&#34;&gt;环境变量配置如下：&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;export OPENCV_DIR=/opt/opencv&#xA;export LIBGPUARRAY_DIR=/opt/libgpuarray&#xA;export NUM_CORES=8&#xA;export NB_UID=1000&#xA;export CLONE_TAG=1.0&#xA;export OPENCV_VERSION=3.4.1&#xA;export OPENCL_ENABLED=OFF&#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;apt install g++ python3 python3-dev build-essential cmake pkg-config libprotobuf-dev protobuf-compiler libopencv-dev&#xA;&#xA;&#xA;wget https://bootstrap.pypa.io/get-pip.py &#xA;&#xA;python3 get-pip.py&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;cmake的配置如下&#34;&gt;Cmake的配置如下：&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    &#xA;    -D BUILD_opencv_xfeatures2d=OFF \&#xA;    -D BUILD_opencv_world=OFF \&#xA;&#xA;    cmake \&#xA;    -D PYTHON_EXECUTABLE=$(which python3) \&#xA;    -D WITH_CUDA=OFF \&#xA;    -D CMAKE_BUILD_TYPE=RELEASE \&#xA;    -D BUILD_PYTHON_SUPPORT=ON \&#xA;    -D CMAKE_INSTALL_PREFIX=/usr/local \&#xA;    -D INSTALL_C_EXAMPLES=ON \&#xA;    -D INSTALL_PYTHON_EXAMPLES=ON \&#xA;    -D BUILD_PYTHON_SUPPORT=ON \&#xA;    -D BUILD_NEW_PYTHON_SUPPORT=ON \&#xA;    -D PYTHON_DEFAULT_EXECUTABLE=$(which python3) \&#xA;    -D PYTHON_INCLUDE_DIR=/usr/include/python3.5m \&#xA;    -D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so \&#xA;    -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \&#xA;    -D OPENCV_EXTRA_MODULES_PATH=$OPENCV_DIR/opencv_contrib-$OPENCV_VERSION/modules \&#xA;    -D WITH_TBB=ON \&#xA;    -D WITH_PTHREADS_PF=ON \&#xA;    -D WITH_OPENNI=OFF \&#xA;    -D WITH_OPENNI2=ON \&#xA;    -D WITH_EIGEN=ON \&#xA;    -D BUILD_DOCS=ON \&#xA;    -D BUILD_TESTS=ON \&#xA;    -D BUILD_PERF_TESTS=ON \&#xA;    -D BUILD_EXAMPLES=ON \&#xA;    -D WITH_OPENCL=$OPENCL_ENABLED \&#xA;    -D USE_GStreamer=ON \&#xA;    -D WITH_GDAL=ON \&#xA;    -D WITH_CSTRIPES=ON \&#xA;    -D ENABLE_FAST_MATH=1 \&#xA;    -D WITH_OPENGL=ON \&#xA;    -D WITH_QT=OFF \&#xA;    -D WITH_IPP=ON \&#xA;    -D WITH_FFMPEG=ON \&#xA;    -D WITH_V4L=ON .. &amp;amp;&amp;amp; \&#xA;    make -j4 &amp;amp;&amp;amp; \&#xA;    make install &amp;amp;&amp;amp; \&#xA;    ldconfig &amp;amp;&amp;amp; \&#xA;    &#xA;    &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;具体参照我的github源码&#34;&gt;具体参照我的Github源码&lt;/h4&gt;&#xA;&lt;p&gt;地址为：&#xA;&lt;a href=&#34;https://github.com/JermineHu/docker-opencv&#34;&gt;https://github.com/JermineHu/docker-opencv&lt;/a&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>Setup Docker for Pi - 树莓派安装docker</title>
      <link>https://Jermine.vdo.pub/raspberry-pi/setup-docker-for-pi/</link>
      <pubDate>Tue, 11 Jul 2017 16:05:54 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/raspberry-pi/setup-docker-for-pi/</guid>
      <description>&lt;h2 id=&#34;安装步骤&#34;&gt;安装步骤&lt;/h2&gt;&#xA;&lt;h3 id=&#34;先下载对应的deb包&#34;&gt;先下载对应的deb包：&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;wget https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/arm64/docker-ce_18.06.0~ce~3-0~ubuntu_arm64.deb &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;通过dpkg进行安装&#34;&gt;通过dpkg进行安装&lt;/h3&gt;&#xA;&lt;p&gt;直接 &lt;code&gt;dpkg -i *.deb&lt;/code&gt; 进行安装&lt;/p&gt;&#xA;&lt;h3 id=&#34;然后设置开机启动&#34;&gt;然后设置开机启动&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;systemctl enable docker&#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;cat &amp;gt; /etc/docker/daemon.json&#xA;{&#xA;    &amp;#34;registry-mirrors&amp;#34;: [&#xA;        &amp;#34;https://2nmcv9vp.mirror.aliyuncs.com&amp;#34;&#xA;    ],&#xA;    &amp;#34;insecure-registries&amp;#34;: []&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;重启服务&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;systemctl restart docker&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Call Opencv Used Python3 - 通过docker在python3.6下调用opencv3.4.1</title>
      <link>https://Jermine.vdo.pub/raspberry-pi/call-opencv-used-python3.6-in-docker/</link>
      <pubDate>Wed, 21 Jun 2017 15:46:06 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/raspberry-pi/call-opencv-used-python3.6-in-docker/</guid>
      <description>&lt;h2 id=&#34;根据之前build好的镜像启动容器&#34;&gt;根据之前build好的镜像，启动容器&lt;/h2&gt;&#xA;&lt;p&gt;启动一个带有python3.6 和 opencv3.4.1的环境&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;docker run -itd --name cv -v `pwd`/app:/app --net host -w /app jermine/opencv:alpine-arm64&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;进入容器&#34;&gt;进入容器&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;docker exec -it cv sh&#xA;&lt;/code&gt;&lt;/pre&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>Make an Alpine Docker Image</title>
      <link>https://Jermine.vdo.pub/raspberry-pi/make-an-alpine-docker-image/</link>
      <pubDate>Sat, 21 May 2016 16:14:53 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/raspberry-pi/make-an-alpine-docker-image/</guid>
      <description>&lt;h2 id=&#34;步骤&#34;&gt;步骤：&lt;/h2&gt;&#xA;&lt;h3 id=&#34;运行如下代码获取基础镜像&#34;&gt;运行如下代码获取基础镜像&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;docker pull jermine/alpine&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dockerfile 源码参考：https://github.com/JermineHu/docker-alpine-armhf&lt;/p&gt;&#xA;&lt;p&gt;基于基础镜像可以安装alpine是所有软件，然后构建一个运行环境，比如&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>K8s on Raspberry Pi</title>
      <link>https://Jermine.vdo.pub/raspberry-pi/k8s-on-raspberry-pi/</link>
      <pubDate>Sat, 21 Oct 2017 16:20:55 +0800</pubDate>
      <guid>https://Jermine.vdo.pub/raspberry-pi/k8s-on-raspberry-pi/</guid>
      <description>&lt;h2 id=&#34;配置环境步骤如下&#34;&gt;配置环境步骤如下：&lt;/h2&gt;&#xA;&lt;h3 id=&#34;安装kubeadm必要的软件&#34;&gt;安装kubeadm必要的软件&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt install socat ebtables ethtool&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;安装相关的软件&#34;&gt;安装相关的软件&lt;/h3&gt;&#xA;&lt;p&gt;主要软件有：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;kubeadm_1.10.2-00_arm64 、kubectl_1.10.2-00_arm64 、kubelet_1.10.2-00_arm64 、kubernetes-cni_0.6.0-00_arm64&lt;/strong&gt;&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>
