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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云原生系列 三【轻松入门容器基础操作】

目录  


3. 容器镜像实操收起


3.1 Docker commit构建容器镜像


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


3.3 Dockerfile构建容器镜像


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


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



3. 容器镜像实操收起

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

1.png

(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

1.png

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

exit

                         

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

docker commit 容器ID centos-vim
                                docker image ls

1.png

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

docker container ls

                         

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

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

1.png

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

docker container ls

                         

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

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

1.png

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

退出当前容器。

exit

                         

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

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

1.png

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

1.png

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

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

1.png

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

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

1.png

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

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

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

1.png

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

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

docker run -d -p 5000:5000 registry

1.png

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


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

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

                         

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

docker push localhost:5000/http:V1

1.png

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

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

1.png

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


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

docker rmi localhost:5000/http:V1
                                docker rmi httpd-centos
                                docker pull localhost:5000/http:V1
相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
存储 算法 Java
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)(中)
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)
51 0
|
2月前
|
存储 安全 Java
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)
34 0
|
9天前
|
程序员 索引 Python
06-python数据容器-set(集合)入门基础操作
06-python数据容器-set(集合)入门基础操作
|
2月前
|
IDE 数据中心 Docker
使用PyCharm与Docker容器进行开发:从入门到精通
使用PyCharm与Docker容器进行开发:从入门到精通
340 0
|
2月前
|
存储 前端开发 C++
【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)
在C++中​​std::stack​​​是一个模板类,它是基于容器的适配器,用于实现堆栈数据结构。堆栈是一种后进先出(LIFO)的数据结构,类似于现实生活中的一叠盘子。
27 4
|
2月前
|
Kubernetes 监控 Cloud Native
阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
177 2
|
2月前
|
存储 算法 安全
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)
27 0
|
3月前
|
存储 容器
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)(下)
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)
19 0
|
3月前
|
存储 算法 安全
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)(上)
容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)
20 0
|
1月前
|
人工智能 监控 Cloud Native
iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报
iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报