前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云原生系列 三【轻松入门容器基础操作】

云原生系列 三【轻松入门容器基础操作】

作者头像
用户10216580
发布2022-12-06 15:04:38
2760
发布2022-12-06 15:04:38
举报
文章被收录于专栏:一叶知秋一叶知秋

   ✅作者简介:                         CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云云 享专家博主,掘金后端评审团成员 💕前言: 最近云原生领域热火朝天,那么云原生是什么?何为云原生?云原生用来干什么的?今天学长通过华为的沙箱实验操作带领大家走进“云”时代~~

                           再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏

目录

3. 容器镜像实操收起

3.1 Docker commit构建容器镜像

3.2 退出当前容器,删除本节实验所涉及到的容器

3.3 Dockerfile构建容器镜像

3.4 删除本节实验所涉及到的容器

3.5 搭建私有镜像仓库注册表

3. 容器镜像实操收起

3.1 Docker commit构建容器镜像

(1)拉取centos7镜像:

代码语言:javascript
复制
                                docker pull centos:centos7

运行 centos容器

代码语言:javascript
复制
                                docker run -t -d centos:centos7

(2)进入该容器并验证vim可用性:

代码语言:javascript
复制
                                docker container ls

注意:此处通过docker exec 命令进入容器,其具体使用后续章节将会涉及。使用上一行命令查询到的centos容器ID替换【容器ID】。

代码语言:javascript
复制
                                docker exec -it 容器ID bash
                            
                                vim

(3)在容器内下载安装vim:

代码语言:javascript
复制
                                yum install -y vim

注意:若出现无法下载存储库“AppStream”的元数据:无法准备内部镜像列表:镜像列表中没有 URL。请在容器内输入以下命令更换yum源,再重新安装vim。

代码语言:javascript
复制
                                cd /etc/yum.repos.d/
                            
                                sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
                            
                                yum update -y
                            
                                yum install -y vim

等待安装完毕以后,再次验证vim可用性如下图所示:

代码语言:javascript
复制
                                vim --version

④退出容器,将当前容器构建为新镜像。

代码语言:javascript
复制
                                exit

注意:请使用第(2)步中查询到的centos容器ID替换命令中的【容器ID】

代码语言:javascript
复制
                                docker commit 容器ID centos-vim
                            
                                docker image ls

说明:通过对比centos容器镜像可以发现,centos-vim容器镜像大小发生改变。 (5)删除前一个容器,并利用centos-vim镜像运行一个新容器:

代码语言:javascript
复制
                                docker container ls

注意:请使用上一行命令回显的容器ID替换后续命令中的【容器ID】

代码语言:javascript
复制
                                docker stop 容器ID
                            
                                docker rm 容器ID
                            
                                docker run -d -t centos-vim

(6)验证新容器内vim可用性:

代码语言:javascript
复制
                                docker container ls

注意:请使用上一行命令查询到的容器ID替换后续命令中的【容器ID】

代码语言:javascript
复制
                                docker exec -it 容器ID bash
                            
                                vim --help

3.2 退出当前容器,删除本节实验所涉及到的容器

退出当前容器。

代码语言:javascript
复制
                                exit

查询容器ID,停止并删除。

代码语言:javascript
复制
                                docker container ls
                            
                                docker stop 容器ID
                            
                                docker rm 容器ID

3.3 Dockerfile构建容器镜像

(1)创建Dockerfile文件在/root路径下创建一个Dockerfile文件

代码语言:javascript
复制
                                touch dockerfile

(2)使用vim编辑Dockerfile文件:

代码语言:javascript
复制
                                vim dockerfile

输入i,将以下代码写入Dockerfile文件中,键入wq保存退出:

代码语言:javascript
复制
                                FROM centos:centos7
MAINTAINER Iris@huawei.com
ENV HOSTNAME webserver
EXPOSE 80
RUN yum install -y httpd vi && yum clean all
VOLUME ["/var/www/html"]
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]

(3)使用docker build命令构建容器镜像:

代码语言:javascript
复制
                                docker build -t httpd-centos -f dockerfile /root

④查看镜像列表,并利用新镜像运行容器。

代码语言:javascript
复制
                                docker image ls
                            
                                docker run -d -p 80:80 httpd-centos

(5)验证该容器Web服务页面: 在个人操作终端浏览器内输入 http://EIP:80

注意:服务器的公网IP替换网址中的【EIP】。

3.4 删除本节实验所涉及到的容器

查询容器ID,停止并删除。

代码语言:javascript
复制
                                docker container ls
                            
                                docker stop 容器ID
                            
                                docker rm 容器ID

3.5 搭建私有镜像仓库注册表

(1)运行私有镜像仓库注册表容器:

代码语言:javascript
复制
                                docker run -d -p 5000:5000 registry

说明:私有镜像仓库服务监听端口为5000,此处利用-p 5000:5000将容器5000端口映射到主机5000端口。

(2)利用docker tag命令修改镜像名称:

代码语言:javascript
复制
                                docker tag httpd-centos localhost:5000/http:V1

③将本地镜像上传至私有镜像仓库:

代码语言:javascript
复制
                                docker push localhost:5000/http:V1

(4)查看私有镜像仓库registry中镜像信息。 列出所有的本地注册表仓库的镜像:

代码语言:javascript
复制
                                curl -X GET http://localhost:5000/v2/_catalog
                            
                                curl -X GET http://localhost:5000/v2/http/tags/list

⑤删除本地容器镜像,并从私有镜像仓库下载:

注意:删除镜像前需要先删除对应容器,否则会删除失败。

代码语言:javascript
复制
                                docker rmi localhost:5000/http:V1
                            
                                docker rmi httpd-centos
                            
                                docker pull localhost:5000/http:V1

关注博主不迷路,叶秋学长带你上高速~~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3. 容器镜像实操收起
    • 3.1 Docker commit构建容器镜像
      • 3.2 退出当前容器,删除本节实验所涉及到的容器
        • 3.3 Dockerfile构建容器镜像
          • 3.4 删除本节实验所涉及到的容器
            • 3.5 搭建私有镜像仓库注册表
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档