Docker镜像操作、容器操作、数据卷及挂载数据卷

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Docker镜像操作、容器操作、数据卷及挂载数据卷

一、镜像操作


镜像名称一般分为两部分组成:[repository]:[tag]


在没有指定tag时,默认是latest,代表最新版本的镜像


查看镜像:docker images


格式:docker images [OPTIONS][REPOSITORY[:TAG]]


参数:


-a、--all 显示所有图像(默认情况下隐藏中间图像)


      --digedts 显示摘要


-f、 --filter filter 根据提供的条件过滤输出


      --format string 使用Go模板精确打印图像


      --no-trunc 不截断输出


-q、--quiet 仅显示图像ID


删除镜像:docker rmi


格式:docker rmi [OPTIONS]IMAGE [IMAGE...]


参数:


-f、 --force 强制删除图像


      --no-prune不删除未标记的父项


从服务拉取镜像:docker pull


格式:docker pull [OPTIONS]NAME[:TAG|@DIGEST]


参数:


-a、 --all-tags 下载存储库中的所有标记图像


       --disable-content-trust 跳过图像验证(默认为true)


       --platform string 如果服务器支持多平台,则设置平台


q、  --quit 抑制详细输出


推送镜像到服务:docker push


格式:docker push [OPTIONS]NAME[:TAG]


参数:


-a,--all-tags 推送存储库中所有已标记的图像。


      --disable-content-trust 跳过图像签名(默认为True)。


-q,--quiet 禁止详细输出


保存镜像为一个压缩包:docker save


格式:docker save [OPTIONS]IMAGE [IMAGE..]


参数:


-o,--output string 写入文件,而不是STDOUT


加载压缩包为镜像:docker load


格式:docker load [OPTIONS]


参数:


-i、 --input string 读取tar存档文件,而不是STDIN


-q、--quiet抑制负载输出


注意:查询对应命令的详细格式和参数在对应参数后面加上--help即可查询


案例:从DockerHub中拉取一个nginx镜像并查看


1、首先去镜像仓库搜索nginx镜像,地址:


Docker Hub Container Image Library | App Containerization

https://hub.docker.com/


2、根据查看的镜像名称,拉取自己需要的镜像,通过命令:docker pull nginx



3、通过命令:docker images查看拉取到的镜像



案例:利用docker save将nginx镜像导出磁盘,然后再通过load加载回来


1、利用docker save导出镜像到磁盘


docker save -o nginx.tar nginx:latest



1.5、利用docker rmi删除本地的nginx:latest


docker rmi nginx:latest



2、使用docker load加载镜像


docker load -i nginx.tar


二、容器操作


案例:创建运行一个Nginx容器


去docker hub查看Nginx的容器运行命令


docker run --name containerName -p 80:80 -d nginx


命令解读:


● docker run:创建并运行一个容器


● --name:给容器起一个名字,比如叫containeName


● -p:将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口


● -d:后台运行容器


● nginx:镜像名称,例如nginx


查看容器日志的命令:docker logs


t添加 -f 参数可以持续查看日志


查看容器状态:docker ps


添加-a参数查看所有状态的容器


删除容器:docker rm


不能删除运行中的容器,除非添加 -f 参数


进入容器:docker exec


命令是docker exec -it [容器名][要执行的命令]


-it:给当前进入容器创建已给标准输入、输出终端,允许我们与容器交互


exec命令可以进入容器修改文件,但是在容器内修改文件不推荐


案例:创建并进入redis容器,并执行redis-cli客户端命令,存入num=888


1、到DockerHub搜索Redis镜像,找到需要的版本,并拉取下来,并利用docker run命令运行Redis容器


docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes


2、进入redis容器


docker exec -it redis bash


3、执行redis-cli客户端命令


redis-cli


4、设置数据num=888


set num 666


三、数据卷操作


数据卷(volume):是一个虚拟目录,指向宿主机文件系统中的某个目录


数据卷的作用:将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全


数据卷操作的基本语法如下:


docker volume [COMMAND]


docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:


create   创建一个volume


inspect  显示一个或多个volume的信息


ls          列出所有的volume


prune   删除未使用的volume


rm        删除一个或多个指定的volume


案例:创建一个数据卷,并查看数据卷在宿主机的目录位置


1、创建数据卷


docker volume create html


2、查看所有数据


docker volume ls



3、查看数据卷详细信息卷


docker volume inspect html



四、挂载数据卷


创建容器时,可以通过-v 参数来挂载一个数据卷到某个容器目录


docker run \                    创建并运行容器


 --name mn \                  给容器起个名字叫mn


 -v html:/root/html \        把html数据卷挂载到容器内的/root/html这个目录中


 -p 8080:80 \                  把宿主机的8080端口映射到容器内的80端口


 nginx \                          镜像名称


案例:创建一个nginx容器,修改容器内的html目录内的index.html内容


1、创建容器并挂载数据卷到容器内的html目录


docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx


2、进入html数据卷所在位置,并修改html内容


# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html


数据卷挂载方式:


-v volumeName:/targetContainerPath


如果容器运行时volume不存在,会自动被创建出来


docker run的命令可以通过-v参数挂载文件或目录到容器:


1、-v volume名:容器内目录


2、-v 宿主机文件:宿主内文件


3、-v 宿主机目录:容器内目录


数据卷挂载与目录直接挂载


数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找


目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查看


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
9天前
|
存储 JSON 数据格式
docker load 后镜像名称为空的问题解决
Docker在容器化应用程序时提供了强大的镜像管理功能,但也可能在某些操作中遇到如镜像名称为空的问题。通过理解问题的成因并采取适当的解决方案,如正确保存和加载镜像、手动修复标签等,可以有效避免和解决这一问题。通过本文提供的指导,您可以确保在使用Docker进行镜像操作时更为顺利,并提高容器管理的效率。
114 82
|
11天前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
92 30
|
10天前
|
存储 虚拟化 Docker
|
3天前
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
40 12
|
11天前
|
SQL Linux 数据库
YashanDB Docker镜像制作
本文介绍了使用Docker部署YashanDB数据库的方法及其优势。相比传统部署方式,Docker简化了环境配置,实现一键部署,确保软件在不同环境中一致运行。文章详细讲解了数据库镜像与容器的概念、Dockerfile的构建流程,以及如何通过Dockerfile定制YashanDB镜像。此外,还演示了镜像的发布过程,包括推送至阿里云容器镜像服务(ACR)。最后,探讨了容器启动时的初始化脚本设置和数据文件复用方法,满足客户对数据库自动化初始化和数据持久化的需求。
|
10天前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
|
1月前
|
存储 运维 应用服务中间件
Docker Image即Docker镜像
Docker 镜像是 Docker 容器的基础,包含了运行应用程序所需的一切。通过 Dockerfile 可以方便地创建自定义镜像,并且利用 Docker 提供的命令可以轻松管理和使用这些镜像。掌握 Docker 镜像的创建、管理和使用,是进行容器化应用开发和部署的基础技能。希望本文能帮助读者更好地理解 Docker 镜像的概念和操作,提高开发和运维效率。
95 13
|
1月前
|
消息中间件 Kafka 流计算
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
218 28
|
1月前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
74 23
|
1月前
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
121 2