Docker-你要知道的事(三)

本文讲解了Docker中镜像与容器的关系,如类和实例,以及如何使用Dockerfile构建基于Nginx的容器。通过实例演示了FROM和RUN指令的应用,展示了从创建Dockerfile到运行容器的完整过程。

镜像和容器的关系

理解镜像和容器的关系对于理解Docker是非常有帮助的。它们之间的关系有些类似[类/Class]和[实例/Instance]之间的关系,也有些类似程序与进程之间的关系。

Dockerfile的简单用法

Dockerfile可以将一系列对镜像或启动容器的一些操作可以分为不同的步骤来完成,使得创建容器的思路更清晰。如下我们以一个简单的例子来说明Dockerfile的用法。创建Dockerfile文件,内容如下。

FROM nginx
RUN echo '<h2>This is the nginx demo~</h2>' > /usr/share/nginx/html/index.html

以上Dockerfile的内容分为2步,第1步是FROM命令,目的是选择基础镜像为nginx;第2步为执行一个shell命令,内容比较简单,即将nginx的index.html内容设置为“

This is the nginx demo~

“。

执行容器构建操作命令如下。

docker build -t nginx:v1 .

创建完成后可以查看构建的镜像。
在这里插入图片描述

启动一个nginx容器,命令如下。

docker run --name nginx-1 -p 8082:80 -d nginx:v1

启动成功后,可以在container页面查看到如下已启动的容器。
在这里插入图片描述

打开浏览器,输入网址localhost:8082,显示内容如下,和我们预期是一致的。
在这里插入图片描述
在这里插入图片描述
如果大家想掌握第一手的资讯更新,请关注公众号“测试DAO”。

<think>好的,我需要帮助用户通过yum正确安装Docker及其相关组件。首先,我应该回顾用户提供的引用内容,特别是引用[1]和引用[2],因为它们直接涉及安装和卸载步骤。 首先,用户可能已经安装了旧版本的Docker,根据引用[2],必须先卸载旧版本。步骤包括停止Docker服务,用yum remove卸载相关软件包,并删除残留文件。所以,我应该建议用户先执行这些卸载步骤,确保系统干净。 接下来,安装新版本。引用[1]给出了两种安装方式:安装特定版本或最新版本。用户的问题中没有指定版本,所以应该默认推荐安装最新版本。命令是sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin。需要确保用户正确执行这条命令。 另外,引用[4]提到安装时可能出现公钥错误。这可能是因为缺少GPG密钥。解决方法应该是导入Docker的官方GPG密钥,或者在yum命令中添加--nogpgcheck选项。不过,推荐先导入密钥,因为禁用GPG检查可能有安全风险。因此,步骤中需要包括添加Docker仓库和导入密钥的步骤,这可能用户之前没做导致错误。 引用[3]提到安装docker-compose,但用户的问题中已经包含docker-compose-plugin,所以可能需要确认是否需要额外的步骤,但根据引用[1],安装docker-compose-plugin已经通过yum完成,所以可能不需要单独安装。 最后,安装完成后,启动并启用Docker服务,以及验证安装是否成功,这些步骤也是必要的。用户可能需要知道如何测试Docker是否正常工作。 需要确保所有步骤顺序正确:卸载旧版本 -> 安装依赖 -> 添加仓库 -> 安装 -> 启动服务 -> 验证。 可能遗漏的步骤是添加Docker的yum仓库,因为默认的CentOS仓库可能不包含Docker CE。因此,用户需要先设置Docker的官方仓库,这涉及到安装yum-utils包,添加仓库,并更新yum缓存。这些步骤在引用中没有提到,但根据Docker官方文档,这是必须的,否则用户可能找不到docker-ce等包。 综上,正确的步骤应该是: 1. 卸载旧版本Docker(引用[2]) 2. 安装必要依赖包(yum-utils等) 3. 添加Docker的yum仓库 4. 安装所需软件包(引用[1]) 5. 处理可能的GPG错误(引用[4]) 6. 启动并启用服务 7. 验证安装 需要将这些步骤详细写出,并注意可能的错误处理,比如公钥问题。</think>以下是通过yum命令安装Docker及相关组件的分步指南: ### 一、卸载旧版本(必须操作) 1. 停止Docker服务 ```bash sudo systemctl stop docker ``` 2. 卸载旧版本组件 ```bash sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-engine docker-client docker-common ``` 3. 清理残留文件 ```bash sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd ``` 此步骤确保旧版本完全清除[^2] ### 二、安装前置依赖 1. 安装基础工具 ```bash sudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 2. 添加Docker官方仓库 ```bash sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ``` 3. 更新yum缓存 ```bash sudo yum makecache fast ``` ### 、安装新版本组件 1. 安装最新版(推荐) ```bash sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` 或安装指定版本: ```bash sudo yum install docker-ce-23.0.3-1 docker-ce-cli-23.0.3-1 containerd.io-1.6.22-3.1.el7 docker-buildx-plugin-0.10.5-1.el7 docker-compose-plugin-2.17.3-1.el7 ``` [^1] ### 四、处理GPG错误 若出现`Public key for XXXXXXX.rpm is not installed`错误: ```bash sudo rpm --import https://download.docker.com/linux/centos/gpg ``` 然后重试安装命令[^4] ### 五、启动服务 ```bash sudo systemctl start docker sudo systemctl enable docker ``` ### 六、验证安装 ```bash sudo docker run hello-world ``` 成功输出包含`Hello from Docker!`即表示安装完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试论道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值