为了更好地进行后续实验,本实验将基于VMware Workstation和CentOS-Stream-8,进行Docker环境的搭建。
1.Docker简介:
Docker是一种开源的容器化平台,用于构建、发布和运行应用程序和服务。它允许开发者将应用程序及其依赖项打包成一个称为容器的独立单元。这些容器可以在任何支持Docker的环境中运行,无论是开发者的本地计算机、测试环境还是生产服务器,都可以保持一致性和可移植性。
Docker的框架:
Docker 中容器实例(container)和镜像(image)是密切相关的概念,它们之间的关系可以用以下方式来理解:
1. 镜像(Image):镜像是一个静态的、只读的文件系统快照,它包含了一个完整的文件系统结构和一个或多个软件应用程序的配置。镜像是一个模板,用于创建容器。镜像通常包括操作系统的基础层以及要运行的应用程序、库文件、环境变量等。镜像是不可修改的,一旦创建,它的内容不会改变。
2. 容器实例(Container):容器实例是镜像的一个实例或运行时环境。容器实例可以被启动、停止、删除和暂停。当你运行一个镜像时,Docker会创建一个新的容器实例,该容器包含了镜像的内容,并且可以独立运行。容器是可修改的,你可以在容器内进行文件操作、安装新的软件、修改配置等,但这些修改通常会被保存在容器的上层存储层中,不会影响原始镜像。
总之,镜像是一个只读模板,用于创建容器。容器实例是镜像的运行时实例,它包含了镜像的内容以及在运行时所做的任何修改。多个容器实例可以基于同一个镜像创建,每个容器之间相互隔离,拥有自己的文件系统和运行环境。
一个镜像可以用来创建多个相同或相似的容器实例。这种镜像和容器实例的关系类似于类和对象的关系,镜像是类,容器实例是对象。你可以使用相同的镜像创建多个容器实例,每个容器实例都是相互独立的,可以在同一镜像的基础上运行不同的应用程序实例或服务。这种方式实现了资源的高度复用和隔离,使得容器化应用程序非常灵活和可伸缩。
另外,Docker Hub 是一个中央仓库(Registry),用于存储和分享 Docker 镜像。它是一个公共注册表,其中包含了数千个开源和官方的 Docker 镜像,可以免费获取。Docker Hub 允许开发人员和社区成员上传、分享和获取 Docker 镜像,使镜像的共享和分发变得非常容易。
2.具体配置:
2.1准备工作:
1.选中上个实验配置好的CentOS-Stream-8,参考:基于VMware的Cent OS Stream 8安装与配置及远程连接软件的介绍-CSDN博客。
2.然后通过,鼠标右键-》管理-》克隆,进入如下图所示的克隆向导界面。
3.然后点击“下一页”,进入如下图所示的界面。
4.然后点击“下一页”,进入如下图所示的界面。
5.选择“创建完整克隆”,点击“下一页”,进入如下图所示的界面。
6.设置好新虚拟机的名字,点击完成,进行克隆,具体如图所示。
7.克隆完成后,如图所示。
8.点击关闭,查看新克隆出来的虚拟机CentOS-Stream-8-Docker,具体如图所示。
9.点击图1中的“开启此虚拟机”,启动Cent OS Stream 8,输入账号和密码,进入系统,如图所示。
至此,通过从CentOS-Stream虚拟机进行克隆,完成了CentOS-Stream-8-Docker的初始化。
2.2初始化配置:
2.2.1开启网络:
1.首先,查看当前的网络连接信息。
nmcli connection show
2.使用以下命令修改网络连接配置。
# 注意使用自己的IP地址和网关
nmcli connection modify ens160 ipv4.addr 192.168.58.20/24 ipv4.gateway 192.168.58.2 connection.autoconnect yes ipv4.dns "114.114.114.114"
注意这里的ens160和图中的ens160是相对应的。
3.再接着,通过以下命令激活网络连接配置,使它生效。
nmcli connection up ens160
4.最后,在Firefox火狐狸浏览器中,访问百度首页,以确保网络联通。
2.2.2设置主机名:
1.使用以下命令将主机名更改为docker_dev。
hostnamectl set-hostname docker_dev
bash
2.3设置Docker仓库:
1.由于网络限制,我需要更改docker的默认仓库地址为国内镜像源。本实验采用的是阿里云提供的镜像源,具体命令如下所示。
yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
这将在/etc/yum.repos.d目录下创建一个名为docker-ce.repo的文件。该文件定义了多个仓库的地址,但是默认只有稳定版(Stable)被启用。
2.4安装Docker Engine 软件包:
1.为了避免冲突,先卸载系统默认的容器引擎Podman,具体命令如下所示。
yum erase podman buildah
2.执行命令安装Docker Engine,具体命令如下所示。
yum install docker-ce-20.10.21 docker-ce-cli-20.10.21 containerd.io-1.6.10
3. 使用以下命令确定docker engine安装成功。
docker --version
2.5配置Docker 中央仓库的国内镜像源:
由于网络限制,我需要更改docker中央仓库的默认地址为国内镜像源。
1.创建 Docker 配置目录。
mkdir -p /etc/docker
2.执行以命令,配置 Docker 镜像源。
vim /etc/docker/daemon.json
3. 然后输入以下内容,并进行保存。
{
"registry-mirrors": ["https://docker.unsee.tech","https://mirror.ccs.tencentyun.com","https://docker.m.daocloud.io"]
}
4.重启守护进程并重启 Docker。
systemctl daemon-reload && systemctl restart docker
重启完成后,镜像加速即配置成功。
2.6运行hell-world进行验证:
1.以hello-world例,我们使用 docker run 命令可以直接拉取镜像并运行一个容器。
# 这行命令会直接拉取 hello-world 镜像,然后创建一个名为 hello 容器,并启动运行它
docker run --name=hello hello-world
2.可以通过以下命令查看该容器的进程。
docker ps -a
此实验到此结束。