容器技术基础(3)| 学习笔记

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 快速学习容器技术基础,课程将从容器技术基础开始,阐述容器技术是如何基于 linux 内核当中的 Namespace、Cgroups 等技术得以实现及Docker 容器的发展背景和基础知识,并对容器运行时、OCI、CRI和 Kubernetes 之间的关系展产生新的认知。

开发者学堂课程【现代应用容器技术快速入门第三课时:容器技术基础(3)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/830/detail/13952


容器技术基础(3)


内容简介

1.   安装docker

2.   配置阿里云镜像加速

3.   常用docker 命令

 

1. 安装docker

docker CE : docker 社区版本

docker EE : docker 企业版本

1. 清除旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

2. 安装

sudo apt-get updatesudo apt-get install \
  apt-transport-https \
   ca-certificates \
   curl \
   gnupg-agent \
  software-properties-common
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
sudo apt-get install docker-ce docker-ce-cli containerd.io

3.测试docker

sudo docker run hello-world


2. 配置阿里云镜像加速

1. 去阿里云的Docker容器镜像服务进行申请

容器镜像服务地址

2. 登录后,先新建一个名称空间

image.png

3. 新建一个镜像仓库

image.png

 

image.png

 

选择本地仓库即可

image.png

 

4. 配置镜像加速器

image.png

 

命令如下:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://自己的token.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

5. 测试

docker run hell-world

 

3.常用docker命令

image.png

 

| 查看本机镜像

docker images [option] #列出本机上的所有镜像#显示结果的表头含义如下
#RESPITORY 镜像的仓库源
#TAG 镜像的标签【统一仓库源可以有多个TAG,用于规定不同版本】
#IMAGE ID 镜像
#CREARED 镜像的创建时间
#SIZE 镜像大小
# option:
# -a 列出本地所有的镜像(包含中间映像层)
# -q 只显示镜像ID
# --digests 显示镜像的摘要信息
# --no-trunc 显示完整的镜像信息

| 仓库中搜索镜像

docker search [options]  #在远程库搜索镜像#option
# --no-trunc 显示完整的镜像描述
# -s 列出收藏不小于number的镜像
# --automated 只列出 automated build类型的镜像

| 获取镜像

docker pull [:TAG] #从远程库获取指定镜像,添加版本则获取指定版本,不添加则获取最新版

| 删除镜像

docker rmi -f #删除指定镜像ID的镜像docker rmi -f   #删除多个

| commit镜像

docker commit -m="commitInfo" -a="author"  <要创建的目标镜像名>:[标签名]

容器指令

| 新建容器并运行

docker run [options] [command] [arg...] #新建并启动容器# options 说明
# --name=名字 :为容器指定一个名称
# -d 后台运行,并返回容器ID,也即启动守护式容器
# -i 以交互模式运行容器
# -t 为容器重新分配一个伪输入终端,通常与 -i 一起使用
# -P 随机端口映射
# -p 指定端口映射
# 演示:
docker run -it -p 80:8080 tomcat # 创建Tomcat容器并启动,同时将宿主机的80端口映射给容器8080端口

image.png

| 查看容器

docker ps [options]# options
# -a 列出当前所有正在运行的+历史上运行过的容器
# -l 列出最近所创建的容器
# -n 显示最近number个创建的容器
# -q 只显示容器编号

| 退出容器

exit #容器停止并退出ctrl+P+Q #容器不停止退出

| 重启&启动&停止容器

docker start          #启动容器docker restart       #重启容器
docker stop          #停止容器
docker kill             #强制关闭容器

| 查看容器日志

docker logs [options] # options
# -t 加入时间戳
# -f 跟随最新的日志打印
# --tail  显示

| 查看容器内进程

docker top  #显示当前容器内部进程

| 进入【正在运行】的容器并以命令行交互

docker exec -it  docker attach

| 从容器内拷贝文件到主机上

docker cp :

| 容器数据卷

卷就是目录或文件,存在于一个或多个容器中,由docker 挂载到容器。卷的设计目的就是数据的持久化,完全独立于容器的生命周期,因此docker 不会再容器删除时删除其挂载的数据卷。

特点:

1.      数据卷可在容器主键共享或重用数据

2.      卷中的更改可以直接生效

3.      数据中的更改不会包含在镜像的更新中

4.      数据卷的生命周期一直持续到没有容器使用它为止

| 添加容器和宿主机间的目录映射

docker run -it -v :   #可读写docker run -it -v ::ro  #只读

 

相关文章
|
16天前
|
Kubernetes 调度 Docker
深入探讨容器编排技术:从Docker到Kubernetes
容器编排在现代IT中日益关键,从Docker到Kubernetes,助力应用的自动化部署和扩展。Docker提供容器技术,打包应用及环境为镜像,通过引擎、镜像、容器、网络和存储组件实现隔离运行。Kubernetes作为高级容器编排平台,管理Pod(多容器集合),其核心包括API服务器、控制器管理器、调度器和Kubelet。Kubernetes集群由Master和Worker节点构成,实现Pod的高效调度和运行。
|
17天前
|
运维 Kubernetes 监控
构建高效自动化运维系统:基于容器技术的策略与实践
【4月更文挑战第19天】随着云计算和微服务架构的兴起,传统的运维模式正逐渐向自动化、智能化转型。本文将探讨如何利用容器技术构建一个高效、可靠的自动化运维系统,涵盖系统设计原则、关键技术选型以及实践经验分享。通过引入容器技术,我们可以实现应用的快速部署、弹性伸缩和故障自愈,从而提高运维效率,降低系统维护成本。
|
9天前
|
Cloud Native Linux 开发者
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
|
6天前
|
敏捷开发 运维 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。自动化运维作为提升效率、确保稳定性的关键手段,其重要性不言而喻。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现从代码提交到产品上线的持续集成(CI)与持续部署(CD)。通过分析现代容器技术与传统虚拟化的差异,阐述容器化带来的轻量化、快速部署及易于管理的优势,并结合实例讲解如何在实际环境中搭建起一套完善的CI/CD流程。
|
6天前
|
Linux 开发者 Docker
Docker容器化技术详解
【4月更文挑战第30天】Docker,一个开源的容器化平台,助力开发者通过轻量级容器打包应用及依赖,实现跨平台快速部署。核心概念包括:容器(可执行的软件包)、镜像(只读模板)、Dockerfile(构建镜像的指令文件)和仓库(存储镜像的地方)。Docker利用Linux内核功能隔离容器,采用联合文件系统构建镜像。广泛应用包括开发测试一致性、微服务部署、CI/CD以及本地到远程部署。通过安装Docker,编写Dockerfile,构建&运行容器,可实现高效灵活的应用管理。随着容器技术进步,Docker在云计算和DevOps中的角色日益重要。
|
6天前
|
运维 Kubernetes 持续交付
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】 在快速发展的云计算时代,传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文将介绍如何利用容器技术搭建一套高效自动化运维系统,实现软件的持续集成(CI)与持续部署(CD)。文章首先探讨了现代运维面临的挑战,接着详细阐述了容器技术的核心组件和工作原理,最后通过实际案例展示了如何整合这些组件来构建一个可靠、可扩展的自动化运维平台。
|
6天前
|
Kubernetes 安全 持续交付
现代软件开发中的容器化技术探究
本文探讨了现代软件开发中的容器化技术,重点介绍了Docker和Kubernetes这两个主流容器化平台的原理和应用。通过分析容器化技术的优势和挑战,以及在不同开发环境下的应用场景,读者可以更好地理解容器化技术在提升软件开发效率和部署灵活性方面的价值。
|
7天前
|
Linux Shell 虚拟化
【Linux学习】Linux 的虚拟化和容器化技术
【Linux学习】Linux 的虚拟化和容器化技术
|
7天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署(CI/CD)实践
【4月更文挑战第29天】 随着云计算和微服务架构的兴起,自动化运维已成为提升企业IT效率、确保系统稳定性的关键因素。本文旨在探讨如何利用容器技术构建一套高效的自动化运维体系,实现软件开发过程中的持续集成(CI)与持续部署(CD)。文章首先分析了传统运维模式面临的挑战,然后详细介绍了基于Docker和Kubernetes等容器技术的CI/CD流程设计与实施策略,并通过一个实际案例来展示该方案在提高部署频率、降低人力成本及提升系统可靠性方面的显著优势。
|
12天前
|
运维 Kubernetes Docker
这是一项颠覆性技术 - 容器
这是一项颠覆性技术 - 容器