口水蛋仔 發表於 2021-11-18 00:56:00

CentOS 8.4安装Docker

<h2>前言:</h2>
<div class="lake-content">
<p id="uacb216ba" class="ne-p"><span class="ne-text">  Docker 是一个用于开发、传送和运行应用程序的开放平台。Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 的快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产中运行代码之间的延迟。为了让开发、部署、测试和分发变得更高效和轻松,让我们把Docker安装起来体验一下它的魅力所在吧!</span></p>
<h2 id="系统要求">系统要求:</h2>
<ul>
<li>Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。</li>
<li>需要启用centos-extras&nbsp;<code></code><strong>repository</strong>。在 CentOS 7 中这个仓库是<strong>默认启用</strong>的,如果之前有将其禁用,则需要重新启用</li>
<li>CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如&nbsp;<code>overlay2</code>&nbsp;存储层驱动)无法使用,并且部分功能可能不太稳定。</li>
</ul>
</div>
<h2>安装环境:</h2>
<p>  本文主要是在Liunx操作系统CentOS8.4中安装Docker,我们安装之前可以先查看自己的系统版本,使用命令:<strong>lsb_release -a</strong> 进行查看(如下图所示)。</p>
<blockquote>
<p>注意:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker.</p>
</blockquote>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024130920482-1607410258.png" alt="" loading="lazy"></p>
<h2 id="uninstall-old-versions"><span>卸载旧版本:</span></h2>
<p><span>旧版本的Docker在CentOS中的包名为docker或者docker-engine。如果你之前的Linux CentOS系统中安装了Docker的旧版本,你需要先卸载旧版Docker及其相关依赖,执行以下命令:</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">sudo yum remove docker \
                  docker</span>-<span style="color: rgba(0, 0, 0, 1)">client \
                  docker</span>-client-<span style="color: rgba(0, 0, 0, 1)">latest \
                  docker</span>-<span style="color: rgba(0, 0, 0, 1)">common \
                  docker</span>-<span style="color: rgba(0, 0, 0, 1)">latest \
                  docker</span>-latest-<span style="color: rgba(0, 0, 0, 1)">logrotate \
                  docker</span>-<span style="color: rgba(0, 0, 0, 1)">logrotate \
                  docker</span>-<span style="color: rgba(0, 0, 0, 1)">selinux \
                  docker</span>-engine-<span style="color: rgba(0, 0, 0, 1)">selinux \
                  docker</span>-engine</pre>
</div>
<p>因为我的系统系刚安装的,所以执行上面的命令提示的是没有找到需要移除的包!</p>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024140349122-294943900.png" alt="" loading="lazy"></p>
<p><span>如果</span><code class="highlighter-rouge">yum</code><span><span>报告没有安装这些软件包,那也</span><span>没关系</span><span>。</span></span></p>
<p><strong>注意</strong>:<code>/var/lib/docker/</code>目录下的内容,包括<strong>镜像、容器、卷组、网络</strong>等文件将被<strong>保留</strong>。<strong>Docker CE</strong> 的新包名为<strong><code>docker-ce</code></strong>。</p>
<h2 id="articleContentId" class="title-article">yum到底是干什么的?</h2>
<p>简单描述:yum称为包管理器,主要用来解决:下载、依赖关系、安装、卸载四种问题。</p>
<blockquote>
<p>详细说明:https://blog.csdn.net/weixin_43202123/article/details/119948927</p>
</blockquote>
<h2>使用yum安装:</h2>
<p>执行以下命令安装依赖包和必要的一些系统工具:</p>
<div class="cnblogs_Highlighter">
<pre data-spm-anchor-id="a2c6h.12873639.0.i4.1aba47efl9aE7A"><code class="bash hljs" data-spm-anchor-id="a2c6h.12873639.0.i5.1aba47efl9aE7A">sudo yum install -y yum-utils device-mapper-persistent-data lvm2</code></pre>
</div>
<h2>配置yum稳定镜像源:</h2>
<p>因为国内网络原因,推荐使用阿里云提供的<strong>Docker CE 镜像源站!</strong></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024143743911-1981152977.png" alt="" loading="lazy"></p>
<p>官方镜像源地址:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 官方源
# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
</pre>
</div>
<h2>安装 Docker</h2>
<p>更新&nbsp;<code>yum</code>&nbsp;软件源缓存,并安装&nbsp;<code>docker-ce(一路yes即可)</code>。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">sudo yum install docker-ce docker-ce-cli containerd.io
</pre>
</div>
<p>如下是成功安装的依赖:  </p>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024144608450-807112451.png" alt="" loading="lazy"></p>
<p>查看安装成功的docker版本:<strong>docker -v</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024145931976-483608868.png" alt="" loading="lazy"></p>
<h2>CentOS8 额外设置</h2>
<p>由于 CentOS8 防火墙使用了&nbsp;<code>nftables</code>,但 Docker 尚未支持&nbsp;<code>nftables。</code></p>
<p>首先我们查看防火墙的状态,假如防火墙状态是开启的我们执行下面的操作:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">systemctl status firewalld
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024145536921-1706141012.png" alt="" loading="lazy"></p>
<p>我们可以使用如下设置使用&nbsp;<code>iptables</code>:更改&nbsp;<code>/etc/firewalld/firewalld.conf</code></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># FirewallBackend=nftables
FirewallBackend=iptables
</pre>
</div>
<p>或者执行以下命令:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">firewall-cmd --permanent --zone=trusted --add-interface=docker0

firewall-cmd --reload
</pre>
</div>
<h2>开启Docker服务:</h2>
<p>&nbsp;执行<strong>sudo service docker start </strong>命令开启Docker服务提示异常:<span style="color: rgba(255, 0, 0, 1)"><strong>Redirecting to /bin/systemctl start docker.service</strong></span></p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024150146335-33669840.png" alt="" loading="lazy"></p>
<p>看异常就是需要执行systemctl的相关命令,因为Linux的不同发行版开启Docker服务的命令也有所不同</p>
<div class="cnblogs_Highlighter">
<pre class="language-bash"><code><span class="token function">sudo systemctl <span class="token builtin class-name">enable docker
<span class="token function">sudo systemctl start docker</span></span></span></code></pre>
</div>
<p>最后查看docker运行状态</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">systemctl status docker
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211024151614426-2101127968.png" alt="" loading="lazy"></p>
<h2 id="start-the-docker-daemon"><span>启动 Docker 守护进程:</span></h2>
<blockquote>
<p><span>官方教程:https://docs.docker.com/config/daemon/systemd/</span></p>
</blockquote>
<h3 id="start-manually"><span>手动启动</span></h3>
<p><span><span>安装 Docker 后,您需要启动 Docker 守护程序。</span><span>大多数 Linux 发行版用于</span></span><code class="highlighter-rouge">systemctl</code><span>启动服务。</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">sudo systemctl start docker</pre>
</div>
<h3 id="start-automatically-at-system-boot"><span>在系统启动时自动启动</span></h3>
<blockquote>
<p>如果您希望 Docker 在启动时启动,请参阅&nbsp;配置 Docker 以在启动时启动👉。</p>
</blockquote>
<h2>Docker基础命令:</h2>
<blockquote>
<p>启动docker:systemctl start docker</p>
<p>停止docker:systemctl stop docker</p>
<p>重启docker:systemctl restart docker</p>
<p>查看docker状态:systemctl status docker</p>
<p>开机启动:systemctl enable docker</p>
<p>当前系统docker信息:docker info</p>
<p>列举出所有的容器:docker ps -a</p>
<p>停止容器:docker start 容器ID或容器名</p>
<p>直接关闭容器:docker kill 容器ID或容器名</p>
<p>重启容器:docker restart 容器ID或者容器名</p>
<p>删除容器:docker rm 容器ID或者容器名</p>
<p>查看镜像:docker image <span class="token function">ls</span></p>
</blockquote>
<div class="lake-content">
<blockquote>
<p id="pGXMo"><strong>更多命令搜索(推荐):<span class="ne-text">Docker命令在线速查手册</span></strong></p>
</blockquote>
</div>
<h2 id="测试-docker-是否安装正确">测试 Docker 是否安装正确</h2>
<p>首先我们输入<strong><code>docker run hello-world</code></strong>是否会出现下图所示的提示,如果出现报错,这环境配置可能出现了问题。</p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>注意:这行命令会让Docker从官方仓库中拉去hello-world的镜像到本地(是本地不存在该镜像的情况),并且将其自动实例化容器。</strong></span></p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211027001232188-1265128177.png" alt="" loading="lazy"></strong></span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/</pre>
</div>
<p><strong>查看hello-World镜像和容器:</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211026232340323-626461001.png" alt="" loading="lazy"></p>
<p><img src="https://img2020.cnblogs.com/blog/1336199/202110/1336199-20211027001601115-523709877.png" alt="" width="692" height="75" loading="lazy"></p>
<h2>Docker学习系列文章</h2>
<p>入门必备:十本你不容错过的Docker入门到精通书籍推荐👉</p>
<p>day1、全面的Docker快速入门教程👉</p>
<p>day2、CentOS 8.4安装Docker👉</p>
<p>day3、Windows10 Docker安装详细教程👉</p>
<h2>参考文章:</h2>
<p id="title">Install Docker Engine on CentOS</p>
<p data-spm-anchor-id="a2c6h.12873639.0.i8.1aba47efl9aE7A">CentOS 7 (使用yum进行安装)</p>

</div>
<div id="MySignature" role="contentinfo">
    <blockquote >
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者名称:</span>追逐时光者</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者简介:</span>一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【&hearts;推荐&hearts;】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。
</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/Can-daydayup/p/15395980.html
頁: [1]
查看完整版本: CentOS 8.4安装Docker