容器与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
相关推荐
傻傻虎虎10 分钟前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
是小崔啊16 分钟前
叩丁狼K8s - 概念篇
云原生·容器·kubernetes
AKAMAI7 小时前
Sport Network 凭借 Akamai 实现卓越成就
人工智能·云原生·云计算
ajax_beijing8 小时前
zookeeper是啥
分布式·zookeeper·云原生
summer_west_fish8 小时前
2023年系统分析师上半年论文试题分析
kubernetes
LeeZhao@9 小时前
【AI推理部署】Docker篇04—Docker自动构建镜像
人工智能·docker·容器
程思扬9 小时前
利用JSONCrack与cpolar提升数据可视化及跨团队协作效率
网络·人工智能·经验分享·docker·信息可视化·容器·架构
落日漫游10 小时前
dockercompose和k8s区别
docker·kubernetes
user48402325423911 小时前
使用自定义snapshotter修改容器的rootfs路径
云原生
资源开发与学习11 小时前
kubernetes核心概念 Service
kubernetes