CentOS安装Docker-ce并配置国内镜像
<h2 class="md-end-block md-heading md-focus"><span class="md-expand">前提条件</span></h2><h3 class="md-end-block md-heading"><span>1.系统、内核</span></h3>
<p><span class="md-line md-end-block"><span>CentOS7 要求64位系统、内核版本3.10以上</span></span></p>
<p><span class="md-line md-end-block"><span>CentOS6 要求版本在6.5以上,系统64位、内核版本2.6.32-431以上</span></span></p>
<p><span class="md-line md-end-block"><span>查看内核版本号</span></span></p>
<pre class="md-fences md-end-block"><span>uname -r #查看内核版本<br><span>cat /etc/os-release #查看系统信息</span></span></pre>
<h3 class="md-end-block md-heading"><span>2.开启centos-extras资源库</span></h3>
<p><span class="md-line md-end-block"><span>使用Centos 7,开启<span><code>centos-extras</code><span>资源库</span></span></span></span></p>
<blockquote>
<p><span class="md-line md-end-block"><span><code>centos-extras</code><span>这个yum资源库默认是开启的,如果禁用了,请打开</span></span></span></p>
</blockquote>
<p><span class="md-line md-end-block"><span>推荐使用Overlay2作为存储驱动</span></span></p>
<h2 class="md-end-block md-heading"><span>卸载旧版本Docker容器</span></h2>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo yum remove docker \<br><span> docker-client \<br><span> docker-client-latest \<br><span> docker-common \<br><span> docker-latest \<br><span> docker-latest-logrotate \<br><span> docker-logrotate \<br><span> docker-engine</span></span></span></span></span></span></span></span></span></pre>
<p><span class="md-line md-end-block"><span>删除旧版本Docker文件</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-builtin">sudo <span class="cm-builtin">rm /var/lib/docker/ <span class="cm-attribute">-rf</span></span></span></span></pre>
<h2 class="md-end-block md-heading"><span>Centos 7在线安装Docker-CE</span></h2>
<p><span class="md-line md-end-block"><span>本节适用于可访问网络的情况</span></span></p>
<h3 class="md-end-block md-heading"><span>设置yum仓库</span></h3>
<p><span class="md-line md-end-block"><span>安装必要依赖包</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo yum install <span class="cm-attribute">-y yum-utils \<br><span>device-mapper-persistent-data \<br><span>lvm2</span></span></span></span></span></pre>
<p><span class="md-line md-end-block"><span>添加阿里镜像稳定版仓库</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo yum-config-manager <span class="cm-attribute">--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</span></span></span></pre>
<blockquote>
<p><span class="md-line md-end-block"><span>添加阿里源时有时会报错,如果报错,使用如下命令使用官方源</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-comment">#删除异常源<br><span><span class="cm-builtin">sudo <span class="cm-builtin">rm <span class="cm-attribute">-f /etc/yum.repos.d/docker-ce.repo<br><span><span class="cm-comment">#使用官方源<br><span><span class="cm-builtin">sudo yum-config-manager <span class="cm-attribute">--add-repo https://download.docker.com/linux/centos/docker-ce.repo</span></span></span></span></span></span></span></span></span></span></span></pre>
</blockquote>
<h3 class="md-end-block md-heading"><span>更新yum缓存</span></h3>
<pre class="md-fences md-end-block"><span><span class="cm-builtin">sudo yum makecache fast</span></span></pre>
<h3 class="md-end-block md-heading"><span>安装Docker-CE</span></h3>
<p><span class="md-line md-end-block"><span>注意事项:本步骤分两部分,仅需按需求使用其一</span></span></p>
<h4 class="md-end-block md-heading"><span>1 安装最新版</span></h4>
<pre class="md-fences md-end-block"><span><span class="cm-builtin">sudo yum install <span class="cm-attribute">-y docker-ce docker-ce-cli containerd.io</span></span></span></pre>
<h4 class="md-end-block md-heading"><span>2 安装指定版本</span></h4>
<p><span class="md-line md-end-block"><span>列出可用版本</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ yum list docker-ce <span class="cm-attribute">--showduplicates | <span class="cm-builtin">sort <span class="cm-attribute">-r<span><span><br><span>docker-ce.x86_64 <span class="cm-number">3:18.09.1-3.el7 docker-ce-stable<br><span>docker-ce.x86_64 <span class="cm-number">3:18.09.0-3.el7 docker-ce-stable<br><span>docker-ce.x86_64 <span class="cm-number">18.06.1.ce-3.el7 docker-ce-stable<br><span>docker-ce.x86_64 <span class="cm-number">18.06.0.ce-3.el7 docker-ce-stable</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p><span class="md-line md-end-block"><span>安装指定版本</span></span></p>
<p><span class="md-line md-end-block"><span><VERSION_STRING>需要替换为第二列的版本号,如:18.06.0.ce-3.el7</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io</span></span></pre>
<h3 class="md-end-block md-heading"><span>启动Docker服务</span></h3>
<pre class="md-fences md-end-block"><span><span class="cm-builtin">sudo systemctl <span class="cm-builtin">start docker</span></span></span></pre>
<h2 class="md-end-block md-heading"><span>Centos 7离线安装Docker-CE</span></h2>
<p><span class="md-line md-end-block"><span>本节仅适用于无外网环境下</span></span></p>
<h3 class="md-end-block md-heading"><span>下载RPM包</span></h3>
<p><span class="md-line md-end-block"><span>访问官方网站提供的下载rpm包地址</span></span></p>
<p><span class="md-line md-end-block"><span>https://download.docker.com/linux/centos/7/x86_64/stable/Packages/</span></span></p>
<p><span class="md-line md-end-block"><span>官方提供的离线包主要需要下载</span></span></p>
<ul class="ul-list" data-mark="-">
<li class="md-list-item">
<p><span class="md-line md-end-block"><span><code>containerd.io-<VERSION_STRING>.x86_64.rpm</code></span></span></p>
</li>
<li class="md-list-item">
<p><span class="md-line md-end-block"><span><code>docker-ce-<VERSION_STRING>.x86_64.rpm</code></span></span></p>
</li>
<li class="md-list-item">
<p><span class="md-line md-end-block"><span><code>docker-ce-cli-<VERSION_STRING>.x86_64.rpm</code></span></span></p>
</li>
</ul>
<blockquote>
<p><span class="md-line md-end-block"><span>注意事项:</span></span></p>
<ul class="ul-list" data-mark="-">
<li class="md-list-item">
<p><span class="md-line md-end-block"><span>在保证大版本相同下,<span><code>docker-ce</code><span> 与 <span><code>docker-ce-cli</code><span> 版本要尽量相同</span></span></span></span></span></span></p>
</li>
<li class="md-list-item">
<p><span class="md-line md-end-block"><span>不要使用<span><code>beta</code><span>与<span><code>rc</code></span></span></span></span></span></p>
</li>
<li class="md-list-item">
<p><span class="md-line md-end-block"><span>版本号带<span><code>.centos</code><span>与不带基本没什么区别</span></span></span></span></p>
</li>
</ul>
</blockquote>
<p><span class="md-line md-end-block"><span>注:未提到的<span><code>docker-ce-selinux</code><span>安装包在新版本中已经被废弃了,需要下载另外的一个依赖包<span><code>container-selinux</code></span></span></span></span></span></p>
<p><span class="md-line md-end-block"><span><code>container-selinux</code><span>安装包下载地址:<span>https://pkgs.org/download/container-selinux</span></span></span></span></p>
<h3 class="md-end-block md-heading"><span>安装RPM包</span></h3>
<h4 class="md-end-block md-heading"><span>官方方式</span></h4>
<p><span class="md-line md-end-block"><span>使用rpm按顺序安装依赖包 或 <span><code>sudo yum /path/to/package.rpm</code><span>,以下为举例</span></span></span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo rpm <span class="cm-attribute">-ivh containerd.io-1.2.5-3.1.el7.x86_64.rpm<br><span><span class="cm-def">$ sudo rpm <span class="cm-attribute">-ivh docker-ce-cli-18.09.6-3.el7.x86_64.rpm<br><span><span class="cm-def">$ sudo rpm <span class="cm-attribute">-ivh container-selinux-2.95-2.el7_6.noarch.rpm<br><span><span class="cm-def">$ sudo rpm <span class="cm-attribute">-ivh docker-ce-18.09.6-3.el7.x86_64.rpm</span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p><span class="md-line md-end-block"><span>以上均安装完成即可,以下是解决问题的思路<span class="md-line md-end-block"><span><em><span>离线安装解决问题这部分参考 <span>https://blog.csdn.net/GentleLin/article/details/90294324</span></span></em></span></span></span></span></p>
<h4 class="md-end-block md-heading"><span>官方安装方式可能出现的问题</span></h4>
<p><span class="md-line md-end-block"><span>1、在安装以上rpm包的时候,如果出现缺少依赖的错误,比如:</span></span></p>
<pre class="md-fences md-end-block"><span>error: Failed dependencies:<br><span> policycoreutils ><span class="cm-operator">= <span class="cm-number">2.5-11 is needed by container-selinux-2:2.95-2.el7_6.noarch<br><span> selinux-policy ><span class="cm-operator">= <span class="cm-number">3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch<br><span> selinux-policy-base ><span class="cm-operator">= <span class="cm-number">3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch<br><span> selinux-policy-targeted ><span class="cm-operator">= <span class="cm-number">3.13.1-216.el7 is needed by container-selinux-2:2.95-2.el7_6.noarch</span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p><span class="md-line md-end-block"><span>出现 “>=版本号”:说明你的系统上已经安装了这些包,只是这些包不是最新的,需要升级<span class="md-line md-end-block"><span>以<span><code>policycoreutils</code><span>包为例,可以在<span>https://pkgs.org/<span>上搜索对应的最新的rpm包,执行以下命令进行升级:</span></span></span></span></span></span></span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo rpm <span class="cm-attribute">-Uvh policycoreutils-2.5-29.el7.x86_64.rpm</span></span></span></pre>
<p><span class="md-line md-end-block"><span>如果对应的这个包被其它包依赖(<span><code>policycoreutils</code><span>被<span><code>policycoreutils-python</code><span>包依赖),这时会出现错误提示:</span></span></span></span></span></span></p>
<pre class="md-fences md-end-block"><span>error: Failed dependencies:<br><span> policycoreutils <span class="cm-operator">= <span class="cm-number">2.5-8.el7 is needed by (installed) policycoreutils-python-2.5-8.el7.x86_64</span></span></span></span></pre>
<p><span class="md-line md-end-block"><span><strong>解决办法:先以不依赖的方式安装policycoreutils,再下载新的policycoreutils-python包升级。</strong></span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo rpm <span class="cm-attribute">-Uvh policycoreutils-2.5-29.el7.x86_64.rpm <span class="cm-attribute">--nodeps<br><span><span class="cm-def">$ sudo rpm <span class="cm-attribute">-Uvh policycoreutils-python-2.5-29.el7.x86_64.rpm</span></span></span></span></span></span></span></pre>
<p><span class="md-line md-end-block"><span>其它类似错误,参考以上方法即可。</span></span></p>
<p><span class="md-line md-end-block"><span>2、如果出现的是:</span></span></p>
<pre class="md-fences md-end-block"><span>error: Failed dependencies:<br><span> xxxxxx is needed by xxxxxxxxxxxxxxxxxx</span></span></pre>
<p><span class="md-line md-end-block"><span>直接下载对应的包安装即可。<span>https://pkgs.org/</span></span></span></p>
<h3 class="md-end-block md-heading"><span>启动Docker服务</span></h3>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo systemctl <span class="cm-builtin">start docker</span></span></span></pre>
<h2 class="md-end-block md-heading"><span>安装后配置</span></h2>
<h3 class="md-end-block md-heading"><span>添加国内镜像</span></h3>
<p><span class="md-line md-end-block"><span>只有内网的情况下可以不配置</span></span></p>
<p><span class="md-line md-end-block"><span>国内镜像很多,如阿里云,网易蜂巢,DaoCloud,Docker中国区官方镜像等,这些都可以。</span></span></p>
<p><span class="md-line md-end-block"><span>这里选择<span><code>阿里的镜像:https://vot9n4p2.mirror.aliyuncs.com</code><span> ,当然这是我自己免费申请的</span></span></span></span></p>
<p><span class="md-line md-end-block"><span><code>sudo vim /etc/docker/daemon.json</code><span>,添加如下内容,注意替换镜像地址url</span></span></span></p>
<pre class="md-fences md-end-block"><span>{<br><span> <span class="cm-string">"registry-mirrors": [<span class="cm-string">"https://vot9n4p2.mirror.aliyuncs.com"]<br><span>}</span></span></span></span></span></pre>
<h3 class="md-end-block md-heading"><span>修改Docker根目录</span></h3>
<p><span class="md-line md-end-block"><span>推荐配置</span></span></p>
<p><span class="md-line md-end-block"><span>Docker默认安装在<span><code>/var/lib/docker</code><span>目录下,一般而言,如果我们的服务器没有把<span><code>/var</code><span>目录从<span><code>/</code><span>分离出来,那么就会占用<span><code>/</code><span>目录的空间,一般根目录设置都不会很大,镜像、容器等又比较占硬盘,推荐修改到大容量目录</span></span></span></span></span></span></span></span></span></span></p>
<p><span class="md-line md-end-block"><span><code>sudo vim /etc/docker/daemon.json</code><span>,添加<span><code>"data-root"</code><span>指定docker安装根目录,注意替换/path/to/path</span></span></span></span></span></p>
<pre class="md-fences md-end-block"><span>{<br><span>...省略其它配置...,<br><span> <span class="cm-string">"data-root": <span class="cm-string">"/path/to/path"<br><span>}</span></span></span></span></span></span></pre>
<h3 class="md-end-block md-heading"><span>容器日志配置</span></h3>
<p><span class="md-line md-end-block"><span>推荐配置</span></span></p>
<p><span class="md-line md-end-block"><span>当容器日志量变大,长期不处理的话,日志只会越来越多,占用空间不说,<span><code>docker logs -f 容器</code><span>时,日志滚动很久才会到最新的日志</span></span></span></span></p>
<p><span class="md-line md-end-block"><span>我们通过设置修改单个日志配置文件的最大值与当日志到达最大值后保留的日志文件数</span></span></p>
<p><span class="md-line md-end-block"><span><code>sudo vim /etc/docker/daemon.json</code></span></span></p>
<pre class="md-fences md-end-block"><span>{<br><span>...省略其它配置...,<br><span> <span class="cm-string">"log-driver": <span class="cm-string">"json-file",<br><span> <span class="cm-string">"log-opts": {<span class="cm-string">"max-size":<span class="cm-string">"50m", <span class="cm-string">"max-file":<span class="cm-string">"1"}<br><span>}</span></span></span></span></span></span></span></span></span></span></span></span></pre>
<blockquote>
<p><span class="md-line md-end-block"><span>日志量尽量设置得少一些,50m其实也很大,屏幕也要刷好久,最好在测试与生产环境将输出到控制台的日志写到文件或ELK中</span></span></p>
</blockquote>
<h3 class="md-end-block md-heading"><span>添加自建私有仓库支持</span></h3>
<p><span class="md-line md-end-block"><span>如果没有可以不配置</span></span></p>
<p><span class="md-line md-end-block"><span>有时我们需要将自己公司的docker镜像上传到自建私有仓库来分发镜像</span></span></p>
<p><span class="md-line md-end-block"><span>一般而言,我们不会为私有仓库添加https支持,docker官方又要求需要使用https才能login\pull\push等操作</span></span></p>
<p><span class="md-line md-end-block"><span>官方给出的解决办法是添加<span><code>insecure-registries</code><span>,可同时添加多个</span></span></span></span></p>
<p><span class="md-line md-end-block"><span><code>sudo vim /etc/docker/daemon.json</code></span></span></p>
<pre class="md-fences md-end-block"><span>{<br><span>...省略其它配置...,<br><span> <span class="cm-string">"insecure-registries": [<span class="cm-string">"10.2.7.70:5000"]<br><span>}</span></span></span></span></span></span></pre>
<h3 class="md-end-block md-heading"><span>添加用户到docker组</span></h3>
<p><span class="md-line md-end-block"><span>只用root用户可以不配置</span></span></p>
<p><span class="md-line md-end-block"><span>非root用户使用<span><code>docker</code><span>命令需要加<span><code>sudo</code><span>前缀,这是可以通过配置避免的</span></span></span></span></span></span></p>
<p><span class="md-line md-end-block"><span>您现在应该考虑将用户添加到“docker”组</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo usermod <span class="cm-attribute">-aG docker your-user-name<br><span><span class="cm-def">$ newgrp docker</span></span></span></span></span></pre>
<h3 class="md-end-block md-heading"><span>重启使Docker配置生效</span></h3>
<p><span class="md-line md-end-block"><span>所有配置修改都需要重启docker服务才能生效</span></span></p>
<pre class="md-fences md-end-block"><span>systemctl daemon-reload <br><span>systemctl <span class="cm-builtin">restart docker</span></span></span></pre>
<p><span class="md-line md-end-block"><span>通过<span><code>docker info</code><span>查看配置是否生效</span></span></span></span></p>
<h2 class="md-end-block md-heading"><span>卸载Docker</span></h2>
<p><span class="md-line md-end-block"><span>使用yum包管理方式</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo yum remove docker-ce</span></span></pre>
<p><span class="md-line md-end-block"><span>删除docker安装目录</span></span></p>
<p><span class="md-line md-end-block"><span>删除docker根目录为危险操作,会删除docker容器、镜像、数据,请谨慎操作</span></span></p>
<pre class="md-fences md-end-block"><span><span class="cm-def">$ sudo <span class="cm-builtin">rm <span class="cm-attribute">-rf /var/lib/docker <span class="cm-comment">#默认安装目录</span></span></span></span></span></pre>
<p><span class="md-line md-end-block"><span>通过<span><code>docker info | grep "Docker Root Dir"</code><span>查看安装目录,并删除此目录</span></span></span></span></p>
</div>
<div id="MySignature" role="contentinfo">
<p>本文来自博客园,作者:ZHappy-Blog,转载请注明原文链接:https://www.cnblogs.com/fqxm/p/16240585.html</p><br><br>
来源:https://www.cnblogs.com/fqxm/p/16240585.html
頁:
[1]