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

简介: 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


image


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


image


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


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


docker save -o nginx.tar nginx:latest


image


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


docker rmi nginx:latest


image


 2、使用docker load加载镜像 


docker load -i nginx.tar 

image


二、容器操作


案例:创建运行一个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


image


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


docker volume inspect html


image


四、挂载数据卷


创建容器时,可以通过-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
目录
相关文章
|
10天前
|
存储 Devops Docker
【DevOps系列】Docker数据卷(volume)详解
【DevOps系列】Docker数据卷(volume)详解
24 0
|
24天前
|
关系型数据库 MySQL Linux
docker镜像的理解和容器数据卷
这篇文章只要介绍对镜像的基本理解和使用,以及非常重要的容器数据卷
37 0
|
2月前
|
Java 关系型数据库 Docker
Docker数据卷-附服务器搭建案例
Docker数据卷-附服务器搭建案例
33 0
|
2月前
|
关系型数据库 MySQL 应用服务中间件
docker数据卷
docker数据卷
22 0
|
2月前
|
存储 数据库 Docker
【Docker】Docker容器数据卷、容器卷之间的继承和DockerFIle的详细讲解
【Docker】Docker容器数据卷、容器卷之间的继承和DockerFIle的详细讲解
35 0
|
2月前
|
存储 Docker 容器
Docker | Docker技术基础梳理(六) - 为啥容器里数据总是缺失?
Docker | Docker技术基础梳理(六) - 为啥容器里数据总是缺失?
|
2月前
|
应用服务中间件 Docker 容器
docker数据卷详解
docker数据卷详解
27 0
|
2月前
|
关系型数据库 MySQL Linux
Docker容器数据卷技术(实现数据同步)
一、什么是数据卷 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。 数据卷可以提供很多有用的特性,如下所示:
|
2月前
|
Docker 容器
【2022世界杯开源项目实战】使用docker部署world-cup-2022-cli-dashboard数据看板工具
【2022世界杯开源项目实战】使用docker部署world-cup-2022-cli-dashboard数据看板工具
28 1
|
2月前
|
Shell Linux Docker
Docker -v 挂载主机目录到容器中(及数据卷容器)
Docker -v 挂载主机目录到容器中(及数据卷容器)
78 0
相关产品
云迁移中心
推荐文章
更多