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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: ​​***本文正在参加[「金石计划 . 瓜分6万现金大奖」](https://juejin.cn/post/7162096952883019783 "https://juejin.cn/post/7162096952883019783")***### **✅作者简介:**### **CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云云 享专家博主,掘金后端评审团成员**### **💕前言:**### 最近云原生领域热火朝天,那么云原生是什么?何为云原生?云原生用来干什么的?今天学长通过华为的沙箱实验操作带领大家走进“云”时代~~**目录**[2.1 运行一个h

✅作者简介:

CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云云 享专家博主,掘金后端评审团成员

💕前言:

最近云原生领域热火朝天,那么云原生是什么?何为云原生?云原生用来干什么的?今天学长通过华为的沙箱实验操作带领大家走进“云”时代~~

目录

2.1 运行一个httpd容器

2.2 查看容器信息

2.3 通过浏览器访问httpd容器Web服务页面。

2.4 停止容器

2.5 启动容器

2.6 删除容器

3. 容器镜像实操收起

3.1 Docker commit构建容器镜像

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

3.3 Dockerfile构建容器镜像

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

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

2.1 运行一个httpd容器

键入如下命令,运行httpd容器:

                                docker run -d -p 80:80 httpd
                            

运行结束后,显示未找到“httpd”镜像,下载镜像并创建“826cdd......”镜像。

img

2.2 查看容器信息

键入如下命令,查看容器信息:

                                docker container ls
                            

img

上图标红框的为该容器的容器ID。

键入如下命令,查看容器镜像信息:

                                docker image ls
                            

img

2.3 通过浏览器访问httpd容器Web服务页面。

在浏览器内输入 http:// 弹性云主机弹性公网IP地址:80。

img

2.4 停止容器

键入如下命令,停止httpd容器:

注意:请使用步骤2.2中的CONTAINER ID替换命令中的【容器ID】。

                                docker stop 容器ID
                            

刷新2.3中打开的Web服务页面,结果如下,可见已经无法正常访问。

img

2.5 启动容器

键入如下命令,启动httpd容器:

注意:请使用2.2中的CONTAINER ID替换命令中的【容器ID】。

                                docker start 容器ID
                            

刷新2.3中打开的Web服务页面,结果如下,可见已经恢复正常访问。

img

2.6 删除容器

删除容器前必须停止容器,键入如下命令,停止并删除httpd容器:

注意:请使用2.2中的容器ID替换命令中的【容器ID】。

                                docker stop 容器ID
                            
                                docker rm 容器ID
  1. 容器镜像实操收起

3.1 Docker commit构建容器镜像

(1)拉取centos7镜像:

                                docker pull centos:centos7
                            

运行 centos容器

                                docker run -t -d centos:centos7
                            

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

                                docker container ls
                            

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

                                docker exec -it 容器ID bash
                            
                                vim
                            

img

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

                                yum install -y vim
                            

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

                                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可用性如下图所示:

                                vim --version
                            

img

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

                                exit
                            

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

                                docker commit 容器ID centos-vim
                            
                                docker image ls
                            

img

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

                                docker container ls
                            

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

                                docker stop 容器ID
                            
                                docker rm 容器ID
                            
                                docker run -d -t centos-vim
                            

img

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

                                docker container ls
                            

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

                                docker exec -it 容器ID bash
                            
                                vim --help
                            

img

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

退出当前容器。

                                exit
                            

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

                                docker container ls
                            
                                docker stop 容器ID
                            
                                docker rm 容器ID
                            

img

3.3 Dockerfile构建容器镜像

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

                                touch dockerfile
                            

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

                                vim dockerfile
                            

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

                                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命令构建容器镜像:

                                docker build -t httpd-centos -f dockerfile /root
                            

img

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

                                docker image ls
                            
                                docker run -d -p 80:80 httpd-centos
                            

img

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

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

img

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

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

                                docker container ls
                            
                                docker stop 容器ID
                            
                                docker rm 容器ID
                            

img

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

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

                                docker run -d -p 5000:5000 registry
                            

img

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

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

                                docker tag httpd-centos localhost:5000/http:V1
                            

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

                                docker push localhost:5000/http:V1
                            

img

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

                                curl -X GET http://localhost:5000/v2/_catalog
                            
                                curl -X GET http://localhost:5000/v2/http/tags/list
                            

img

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

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

                                docker rmi localhost:5000/http:V1
                            
                                docker rmi httpd-centos
                            
                                docker pull localhost:5000/http:V1
                            

img

本期分享到此为止,关注学长不迷路,叶秋带你上高速~~

相关实践学习
通过ACR快速部署网站应用
本次实验任务是在云上基于ECS部署Docker环境,制作网站镜像并上传至ACR镜像仓库,通过容器镜像运行网站应用,网站运行在Docker容器中、网站业务数据存储在Mariadb数据库中、网站文件数据存储在服务器ECS云盘中,通过公网地址进行访问。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
1月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
337 2
|
4月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
165 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
6月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
220 0
|
9月前
|
存储 SQL 索引
Python入门:7.Pythond的内置容器
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
Python入门:7.Pythond的内置容器
|
9月前
|
存储 缓存 C++
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
C++ 标准模板库(STL)提供了一组功能强大的容器类,用于存储和操作数据集合。不同的容器具有独特的特性和应用场景,因此选择合适的容器对于程序的性能和代码的可读性至关重要。对于刚接触 C++ 的开发者来说,了解这些容器的基础知识以及它们的特点是迈向高效编程的重要一步。本文将详细介绍 C++ 常用的容器,包括序列容器(`std::vector`、`std::array`、`std::list`、`std::deque`)、关联容器(`std::set`、`std::map`)和无序容器(`std::unordered_set`、`std::unordered_map`),全面解析它们的特点、用法
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
|
11月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
439 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
11月前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
11月前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
10月前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。