【鲲鹏服务器麒麟系统arm架构部署docker】 - 教程
<style>pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14px !important; line-height: 1.6 !important; padding: 16px !important; margin: 16px 0 !important; background-color: rgba(248, 248, 248, 1) !important; border: 1px solid rgba(225, 228, 232, 1) !important; border-radius: 6px !important; tab-size: 4 !important; -moz-tab-size: 4 !important; max-width: 100% !important; box-sizing: border-box !important }code { font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14px !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow-wrap: normal !important; display: inline !important; background: rgba(0, 0, 0, 0) !important; border: none !important; padding: 0 !important; margin: 0 !important; line-height: inherit !important }
pre code { background: rgba(0, 0, 0, 0) !important; border: 0 !important; border-radius: 0 !important; display: block !important; line-height: 1.6 !important; margin: 0 !important; max-width: none !important; overflow: visible !important; padding: 0 !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; color: inherit !important }
.token.comment, .token.prolog, .token.doctype, .token.cdata { color: rgba(112, 128, 144, 1) !important; font-style: italic !important }
.token.punctuation { color: rgba(153, 153, 153, 1) !important }
.token.atrule, .token.attr-value, .token.keyword { color: rgba(0, 119, 170, 1) !important; font-weight: bold !important }
.token.function, .token.class-name { color: rgba(221, 74, 104, 1) !important; font-weight: bold !important }
.token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: rgba(102, 153, 0, 1) !important }
.token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted { color: rgba(153, 0, 85, 1) !important }
.cnblogs-markdown pre, .cnblogs-post-body pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; background-color: rgba(248, 248, 248, 1) !important; border: 1px solid rgba(225, 228, 232, 1) !important; border-radius: 6px !important; padding: 16px !important; margin: 16px 0 !important }
pre, pre, pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important }</style>
<div class="markdown_views prism-atom-one-light" id="content_views"><svg style="display: none" xmlns="http://www.w3.org/2000/svg"><path d="M5,0 0,2.5 5,5z" id="raphael-marker-block" stroke-linecap="round" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path></svg><h2>一、背景</h2><p>客户更换了服务器,鲲鹏服务器,安装的麒麟系统,需要重新部署,由于使用的docker部署服务,所以需要在鲲鹏服务器上部署docker</p><h2>二、麒麟系统arm架构部署docker</h2><blockquote><p>使用 Docker 官方静态二进制包部署在云服务器上成功,并且在客户服务器上也部署成功。</p></blockquote><h3>1.检查环境</h3><ul><li>查看系统信息:Kylin V10</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">cat</span> /etc/os-release</code></pre>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token assign-left variable">NAME</span><span class="token operator">=</span><span class="token string">"Kylin Linux Advanced Server"</span>
<span class="token assign-left variable">VERSION</span><span class="token operator">=</span><span class="token string">"V10 (Halberd)"</span>
<span class="token assign-left variable">ID</span><span class="token operator">=</span><span class="token string">"kylin"</span>
<span class="token assign-left variable">VERSION_ID</span><span class="token operator">=</span><span class="token string">"V10"</span>
<span class="token assign-left variable">PRETTY_NAME</span><span class="token operator">=</span><span class="token string">"Kylin Linux Advanced Server V10 (Halberd)"</span>
<span class="token assign-left variable">ANSI_COLOR</span><span class="token operator">=</span><span class="token string">"0;31"</span></code></pre>
<table><thead><tr><th>字段</th><th>含义</th></tr></thead><tbody><tr><td><strong>NAME</strong></td><td>系统名称(Kylin Linux Advanced Server)</td></tr><tr><td><strong>VERSION</strong></td><td>系统版本号(V10 Halberd,Halberd 是“戟”版)</td></tr><tr><td><strong>ID</strong></td><td>系统标识(kylin)</td></tr><tr><td><strong>VERSION_ID</strong></td><td>简化版号(V10)</td></tr><tr><td><strong>PRETTY_NAME</strong></td><td>完整可读的系统名称</td></tr><tr><td><strong>ANSI_COLOR</strong></td><td>控制台显示颜色(可忽略)</td></tr></tbody></table><ul><li>查看cpu架构:鲲鹏ARM 64位架构</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">uname</span> -m</code></pre>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash">aarch64</code></pre>
<table><thead><tr><th>输出结果</th><th>含义</th></tr></thead><tbody><tr><td><code>x86_64</code></td><td>说明是 <strong>Intel / AMD 64位架构</strong></td></tr><tr><td><code>aarch64</code></td><td>说明是 <strong>ARM 64位架构(鲲鹏、飞腾、海光等)</strong></td></tr><tr><td><code>armv7l</code></td><td>说明是 <strong>ARM 32位架构</strong></td></tr></tbody></table><h3>2. 部署docker</h3><h4>1. 搭建测试环境:</h4><p>由于客户服务器是离线,且自己不在现场,需要远程部署,并且好多镜像只有在arm架构上才能下载对应架构的镜像(比如在电脑windows(amd)上下载的镜像是amd的),所以为了快速部署,在阿里云上购买了服务器,方便测试部署,采用按量付费。</p><ul><li>选择arm架构</li><li>银河麒麟高级服务器操作系统(ARM版)V10<br><img alt="在这里插入图片描述" src="https://i-blog.csdnimg.cn/direct/b69f726dc16c478da81d1841e9591339.png"></li></ul><h4>2. 使用 Docker 官方静态二进制包部署,适配不同架构(推荐)</h4><h5>1. 下载二进制包:(下载链接)</h5><p>拷贝到服务器上,解压</p>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">tar</span> xzvf docker-24.0.2.tgz</code></pre>
<h5>2. 安装docker</h5><ul><li>将docker目录下所有文件拷贝到/usr/local/bin/下面</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">cp</span> docker/* /usr/local/bin/</code></pre>
<ul><li>添加docker.service</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">vim</span> /usr/lib/systemd/system/docker.service</code></pre>
<p>将下面的内容复制到刚创建的docker.service文件中</p><blockquote><p>注意:/usr/local/bin/dockerd是docker安装目录,有的拷贝到/usr/bin下面就写/usr/bin目录</p></blockquote>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token punctuation">[</span>Unit<span class="token punctuation">]</span>
<span class="token assign-left variable">Description</span><span class="token operator">=</span>Docker Application Container Engine
<span class="token assign-left variable">Documentation</span><span class="token operator">=</span>https://docs.docker.com
<span class="token assign-left variable">After</span><span class="token operator">=</span>network-online.target firewalld.service
<span class="token assign-left variable">Wants</span><span class="token operator">=</span>network-online.target
<span class="token punctuation">[</span>Service<span class="token punctuation">]</span>
<span class="token assign-left variable">Type</span><span class="token operator">=</span>notify
<span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/local/bin/dockerd
<span class="token assign-left variable">ExecReload</span><span class="token operator">=</span>/bin/kill -s HUP <span class="token variable">$MAINPID</span>
<span class="token assign-left variable">LimitNOFILE</span><span class="token operator">=</span>infinity
<span class="token assign-left variable">LimitNPROC</span><span class="token operator">=</span>infinity
<span class="token assign-left variable">TimeoutStartSec</span><span class="token operator">=</span><span class="token number">0</span>
<span class="token assign-left variable">Delegate</span><span class="token operator">=</span>yes
<span class="token assign-left variable">KillMode</span><span class="token operator">=</span>process
<span class="token assign-left variable">Restart</span><span class="token operator">=</span>on-failure
<span class="token assign-left variable">StartLimitBurst</span><span class="token operator">=</span><span class="token number">3</span>
<span class="token assign-left variable">StartLimitInterval</span><span class="token operator">=</span>60s
<span class="token punctuation">[</span>Install<span class="token punctuation">]</span>
<span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target</code></pre>
<ul><li>为docker.service赋权限</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token comment"># 为docker.service添加执行权限</span>
<span class="token function">chmod</span> +x /usr/lib/systemd/system/docker.service</code></pre>
<ul><li>重新加载配置</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token comment"># 重新加载系统控制器</span>
systemctl daemon-reload</code></pre>
<ul><li>配置 Docker 服务并开机自启</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash">systemctl <span class="token builtin class-name">enable</span> docker
systemctl start docker
systemctl status docker</code></pre>
<ul><li>验证docker安装:</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash">docker -v</code></pre>
<h5>3. 按需求是否安装docker-compose 下载链接</h5><ul><li>拷贝docker-compose到/usr/local/bin/</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">mv</span> docker-compose-linux-aarch64 /usr/local/bin/docker-compose</code></pre>
<ul><li>给于执行权限</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">chmod</span> +x /usr/local/bin/docker-compose</code></pre>
<h3>3. 配置docker镜像加速</h3><h4>1. 阿里云加速,请访问链接,比较慢,大的镜像拉不下来添加链接描述</h4><h4>2. 阿里云不好用就访问这个连接大佬写的很细,镜像基本都可以拉取到</h4><hr><h2>三. 其它部署方式</h2><blockquote><p>(鲲鹏服务器和麒麟系统上没有部署成功。但是这个可以用在其他服务器上部署,我自己记录保留一下存档,后面好复用)</p></blockquote><h3>1. Kylin V10(基于 centos)安装 Docker</h3><p>注:判断是否有rpm或者:which rpm</p><ul><li>下载了arm架构对应的rpm(下载链接)<ul><li><code>containerd.io-1.6.9-3.1.el8.aarch64.rpm</code></li><li><code>docker-ce-26.1.3-1.el8.aarch64.rpm</code></li><li><code>docker-ce-cli-26.1.3-1.el8.aarch64.rpm</code><br><img alt="在这里插入图片描述" src="https://i-blog.csdnimg.cn/direct/883459cb0df0469fb5b39cc2fb5dffb7.png"></li></ul></li><li>安装 Docker RPM 包</li></ul>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token builtin class-name">cd</span> /tmp/docker_rpm
<span class="token comment"># 安装顺序:containerd -> docker-ce-cli -> docker-ce</span>
<span class="token function">rpm</span> -ivh containerd.io-1.7.28-1.el8.aarch64.rpm
<span class="token function">rpm</span> -ivh docker-ce-cli-28.5.2-3.el8.aarch64.rpm
<span class="token function">rpm</span> -ivh docker-ce-28.5.2-3.el8.aarch64.rpm</code></pre>
<h3>2. Kylin V10(基于 Debian/Ubuntu)安装 Docker(下载链接):</h3><ol><li>下载以下 .deb 包(Docker CE + 依赖)
<ul><li><code>containerd.io_1.7.28-2~debian.11~bullseye_arm64.deb</code></li><li><code>docker-ce_28.5.2-1~debian.11~bullseye_arm64.deb</code></li><li><code>docker-ce-cli_28.5.2-1~debian.11~bullseye_arm64.deb</code></li></ul></li><li>用 dpkg -i package.deb 安装</li></ol>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash">dpkg -i containerd.io_1.7.3-1_amd64.deb
dpkg -i docker-ce-cli_24.0.2~3-0~debian-buster_amd64.deb
dpkg -i docker-ce_24.0.2~3-0~debian-buster_amd64.deb</code></pre>
<ol start="4"><li>配置 Docker 服务并开机自启</li></ol>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash">systemctl <span class="token builtin class-name">enable</span> docker
systemctl start docker
systemctl status docker</code></pre>
<ol start="5"><li>验证安装</li></ol>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash">docker version
docker info
docker run hello-world</code></pre>
<p><img alt="在这里插入图片描述" src="https://i-blog.csdnimg.cn/direct/2cb5c210091e41e8872768bac4189041.png"></p><h3>3. 安装 docker-compose(可选)</h3>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="prism language-bash"><span class="token function">sudo</span> <span class="token function">mv</span> docker-compose-linux-x86_64 /usr/local/bin/docker-compose
<span class="token function">sudo</span> <span class="token function">chmod</span> +x /usr/local/bin/docker-compose
docker-compose version</code></pre>
<h2>总结</h2><p>使用 Docker 官方静态二进制包部署,适配不同架构,只是部署步骤多一些。</p></div><br><br>
来源:https://www.cnblogs.com/yangykaifa/p/19571345
頁:
[1]