容器与K8s

一、容器

容器 vs 虚拟机

二、Docker容器使用

三个概念:

2.1 镜像

Docker镜像除了运行程序也打包了程序运行环境。

2.2 镜像仓库

存放镜像的仓库,需要login之后拉去响应的镜像。

2.3 容器

基于Docker镜像创建的linux容器,本质是宿主机上的一个进程,与其他资源隔离。

图2 Docker容器典型使用流程

  1. 首先开发者在开发环境机器上开发应用并制作镜像。 Docker执行命令,构建镜像并存储在机器上。

  2. 开发者发送上传镜像命令。 Docker收到命令后,将本地镜像上传到镜像仓库。

  3. 开发者向生产环境机器发送运行镜像命令。 生产环境机器收到命令后,Docker会从镜像仓库拉取镜像到机器上,基于镜像运行容器。

三、使用示例

使用Docker将基于Nginx镜像打包一个容器镜像,基于容器镜像运行应用,推送到容器镜像仓库。

3.1 安装Docker

复制代码
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl restart docker

3.2 Docker打包镜像

复制代码
# 使用官方提供的Nginx镜像作为基础镜像
FROM nginx:alpine

# 执行一条命令修改Nginx镜像index.html的内容
RUN echo "hello world" > /usr/share/nginx/html/index.html

# 允许外界访问容器的80端口
EXPOSE 80

执行docker build命令打包镜像。

docker build -t hello .

其中**-t表示给镜像加一个标签,也就是给镜像取名,这里镜像名为hello。.**表示在当前目录下执行该打包命令。

执行docker images命令查看镜像,可以看到hello镜像已经创建成功。您还可以看到一个Nginx镜像,这个镜像是从镜像仓库下载下来的,作为hello镜像的基础镜像使用。

3.3 本地运行容器镜像

复制代码
# docker run -p 8080:80 hello

docker run命令启动一个容器,命令中**-p(端口映射)** 将本地机器的8080端口映射到容器的80端口,即本地机器的8080端口的流量会映射到容器的80端口,当您在本地机器访问http://127.0.0.1:8080时,就会访问到容器中,此时浏览器中返回的内容应该就是"hello world"。

3.4 把镜像推送到镜像仓库

登录需要先login到镜像仓库,然后给镜像换一个名字。

复制代码
# docker tag hello swr.cn-east-3.myhuaweicloud.com/container/hello:v1
  • swr.cn-east-3.myhuaweicloud.com是仓库地址,每个区域的地址不同。
  • container是组织名,组织一般在SWR中创建,如果没有创建则首次上传的时候会自动创建,组织名在单个区域内全局唯一,需要选择合适的组织名称。
  • v1则是hello镜像分配的版本号

********** 想给本地镜像打tag,可以不带仓库地址;如果要想推送到仓库,就必须带仓库地址,因为后面的docker push 命令,会默认把第一个斜线前面的内容当做仓库,如果没有仓库地址,会带上默认的仓库地址,类似 "https://index.docker.io/v1" ,后果是这个地址要么不通,要么你上传到错误地方******************

3.5 推送到镜像仓库

执行docker push命令就可以将镜像上传到SWR。docker push <仓库地址>/<镜像名称>:<标签>

复制代码
# docker push swr.cn-east-3.myhuaweicloud.com/container/hello:v1

当需要使用该镜像时,使用docker pull命令拉取(下载)该命令即可。

复制代码
# docker pull swr.cn-east-3.myhuaweicloud.com/container/hello:v1
相关推荐
蝎子莱莱爱打怪5 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
阿里云云原生3 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀4 天前
Docker部署Nacos
docker·容器
缓解AI焦虑4 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器
阿里云云原生4 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生4 天前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent
阿里云云原生4 天前
AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
云原生
阿里云云原生4 天前
灵感启发:日产文章 100 篇,打造“实时热点洞察”引擎
云原生
1candobetter4 天前
Docker Compose Build 与 Up 的区别:什么时候必须重建镜像
docker·容器·eureka