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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 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

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

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
10天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
44 2
|
8天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
10天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
9天前
|
运维 Kubernetes Cloud Native
云原生技术入门及实践
【10月更文挑战第39天】在数字化浪潮的推动下,云原生技术应运而生,它不仅仅是一种技术趋势,更是企业数字化转型的关键。本文将带你走进云原生的世界,从基础概念到实际操作,一步步揭示云原生的魅力和价值。通过实例分析,我们将深入探讨如何利用云原生技术提升业务灵活性、降低成本并加速创新。无论你是云原生技术的初学者还是希望深化理解的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
3天前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
4天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
5天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
10天前
|
Cloud Native 持续交付 云计算
云原生技术入门与实践
【10月更文挑战第37天】本文旨在为初学者提供云原生技术的基础知识和实践指南。我们将从云原生的概念出发,探讨其在现代软件开发中的重要性,并介绍相关的核心技术。通过实际的代码示例,我们展示了如何在云平台上部署和管理应用,以及如何利用云原生架构提高系统的可伸缩性、弹性和可靠性。无论你是云原生领域的新手,还是希望深化理解的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
|
10天前
|
存储 Cloud Native 持续交付
云原生入门:从理论到实践
【10月更文挑战第38天】云原生技术正在重塑软件开发和运维的面貌。本文将带你走进云原生的世界,理解其核心理念,并探索如何将这些理念应用于实际项目中。我们将一起学习容器化、微服务架构、持续集成与持续部署(CI/CD)等关键概念,并通过代码示例加深理解。无论你是云原生新手还是希望深化知识的开发者,这篇文章都将为你提供宝贵的知识和启示。
19 3
|
9天前
|
Cloud Native API 持续交付
云原生之旅:从容器到微服务的演进之路
【10月更文挑战第39天】在这篇文章中,我们将一起探索云原生技术的奥秘。通过浅显易懂的语言和生动的比喻,我们将了解云原生技术如何改变软件开发的世界。文章将带领读者从容器的基本概念出发,逐步深入到微服务架构的实践,揭示这些技术如何助力现代应用的快速迭代与可靠部署。准备好,让我们启程进入云原生的精彩世界吧!