容器学习1

本文介绍了Docker容器技术及其与虚拟化的区别,包括平台虚拟化、硬件辅助虚拟化等。在Mac上,作者演示了如何使用Docker拉取MySQL镜像。在阿里云上,通过配置yum源、安装Docker并解决与podman的冲突,成功部署了MySQL,并设置了端口映射和安全组规则,实现了远程访问。
摘要由CSDN通过智能技术生成

容器学习

IBM DeveloperWorks网站关于容器技术的描述十分准确:“容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模拟,也不需要即时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化(paravirtualization)和系统调用替换中的复杂性。”

虚拟化

平台虚拟化

1 完全虚拟化:虚拟机模拟完整的底层硬件环境和特权指令的执行过程,客户操作系统无需进行修改。例如IBM p和z系列的虚拟化、VMwareWorkstation、VirtualBox、QEMU等。
2 硬件辅助虚拟化:利用硬件(主要是CPU)辅助支持(目前x86体系结构上可用的硬件辅助虚拟化技术包括Intel-VT和AMD-V)处理敏感指令来实现完全虚拟化的功能,客户操作系统无需修改,例如VMwareWorkstation、Xen、KVM。
3 部分虚拟化:只针对部分硬件资源进行虚拟化,客户操作系统需要进行修改。现在有些虚拟化技术的早期版本仅支持部分虚拟化。
4 准虚拟化:部分硬件接口以软件的形式提供给客户机操作系统,客户操作系统需要进行修改,例如早期的Xen。
5 操作系统级虚拟化:内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程。容器相关技术即在这个范畴。
Docker以及其他容器技术,都属于操作系统虚拟化这个范畴
在这里插入图片描述

注册服务器与仓库

在这里插入图片描述

Docker使用镜像

镜像拉取

docker pull NAME[:TAG]。其中,NAME是镜像仓库的名称(用来区分镜像),TAG是镜像的标签(往往用来表示版本信息)

我的使用

在Mac上面使用了MySQL的pull

这里直接pull了一个MySQL,没有制定版本。
在这里插入图片描述

阿里云上的使用

首先我更新了一下yum的版本
yum update
因为我这个是实验性的可以更新,但是在实际开发环境中不应该直接更新,有可能会导致出乎意料的问题。

安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
在这里插入图片描述

设置仓库,这里采用了阿里的镜像。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
在这里插入图片描述

查看所有的docker版本然后选择自己需要的版本
yum list docker-ce --showduplicates | sort -r
在这里插入图片描述

如果不指明的话就是默认选择最新的镜像
yum install docker

但是我在查看docker版本的时候出现错误如下
在这里插入图片描述
这里是docker和podman冲突了

我并没有解决,但是podman和docker大部分命令好像都是兼容的,因此我就没有费力再去更改。

podman run hello-world
可以看到我是安装成功了

在阿里云上配置MySQL

首先podman pull mysql
然后通过podman run -d -p 3306:3306 --name lvyoumysql docker.io/library/mysql使得该容器的3306端口映射到宿主机的端口,然后在阿里云的安全组规则当中打开3306端口,并且允许外部访问,就可以通过3306端口直接连接到部署在阿里云上的MySQL。
在自己的PC上通过navicat连接mysql。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值