docker学习记录第2节:docker容器&镜像(基于腾讯云 centos7.6)

本文详细介绍了Docker中的容器和镜像概念,包括镜像的分层特性、容器的创建与管理、镜像仓库的使用、搜索镜像、下载镜像、镜像操作(如tag、删除)以及容器操作(如启动、停止、日志查看和数据复制)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker学习记录第2节:docker容器&镜像

Docker 镜像就是一个 Linux 的文件系统(Root FileSystem),这个文件系统里面包含可以运 行在 Linux 内核的程序以及相应的数据。

两个特征:

  1. 镜像是分层(Layer)的:即一个镜像可以多个中间层组成,多个镜像可以共享同一中 间层,我们也可以通过在镜像添加多一层来生成一个新的镜像。
  2. 镜像是只读的(read-only):镜像在构建完成之后,便不可以再修改,而上面我们所说 的添加一层构建新的镜像,这中间实际是通过创建一个临时的容器,在容器上增加或 删除文件,从而形成新的镜像,因为容器是可以动态改变的。

容器:

类似 linux 系统环境,运行和隔离应用。容器从镜像启动的时候,docker 会在镜像的最上一 层创建一个可写层,镜像本身是只读的,保持不变。容器与镜像的关系,就如同面向编程中 对象与类之间的关系

容器是通过镜像来创建的,必须先有镜像才能创建容器,而生成的容器是一个独立 于宿主机的隔离进程,并且有属于容器自己的网络和命名空间。

仓库:

仓库(Repository)是集中存储镜像的地方,这里有个概念要区分一下,那就是仓库与仓库 服务器(Registry)是两回事,Docker Hub就是 Docker 官方提供的一个仓库服务器,不过其实有时候我们不太需要太过区分这两个概念。

Docker 镜像以及仓库

1.搜索镜像

例:搜索centos镜像

docker search centos

搜索STARS大于3000的mysql镜像

docker search mysql -f STARS=3000

2.下载镜像

docker pull centos
下载指定的tag
docker pull centos:x.x.xxx

镜像结构: registryname/repositoryname/imagename:tagname

例如:docker.io/library/centos:8.3.2011

3.查看本地镜像

docker images

//REPOSITORY   TAG       IMAGE ID      CREATED   SIZE
//hello-world  latest    d1165f221234  4 months  13.3kB

4.docker tag 给镜像打标签

查看语法

docker tag --help
//Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

例:

给 IMAGE ID 为 300e315adb2f 的镜像打个标签

docker tag 300e315adb2f docker.io/myimages/centos:v1.0.1

然后查看镜像:

docker images
//REPOSITORY      TAG       IMAGE ID      CREATED       SIZE
//myimages/centos v1.0.1    300e315adb2f  1 months ago  209MB

给 IMAGE ID 为 300e315adb2f 的镜像重新打个 latest 标签

docker tag 300e315adb2f docker.io/myimages/centos:latest
docker images
//REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
//itying/centos   latest    300e315adb2f   7 months ago   209MB
//itying/centos   v1.0.1    300e315adb2f   7 months ago   209MB

5.删除镜像

docker rmi 删除镜像

查看本地镜像

docker images | grep cento

删除指定镜像

docker rmi docker.io/myimages/centos:latest
//Untagged: itying/centos:latest

这样删除只会删除对应的标签

要删除 imagesID 为 300e315adb2f 的镜像需要通过 id 删除

docker rmi -f 300e315adb2f
//Untagged: myimages/centos:v1.0.1
//Untagged: centos:X.X.XXXX
//....

Docker 容器

类似 linux 系统环境,运行和隔离应用。容器从镜像启动的时候,docker 会在镜像的最上一 层创建一个可写层,镜像本身是只读的,保持不变。容器与镜像的关系,就如同面向编程中 对象与类之间的关系。

查看所有运行的容器

docker ps

查看所有容器

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

docker run + 参数

docker run :创建一个新的容器并运行一个命令

docker run 是日常用的最频繁用的命令之一,同样也是较为复杂的命令之一 命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

OPTIONS :选项

  • -i :表示启动一个可交互的容器,并持续打开标准输入
  • -t: 表示使用终端关联到容器的标准输入输出上
  • -d :表示容器放置后台运行
  • –rm:退出后即删除容器
  • –name :表示定义容器唯一名称
  • -p 映射端口
  • -v 指定路径挂载数据卷
  • -e 运行容器传递环境变量
  • IMAGE :表示要运行的镜像
  • COMMAND :表示启动容器时要运行的命令

-it 启动一个交互式容器

docker run 启动一个交互式容器在容器内执行/bin/bash 命令

docker run -it myimages/centos /bin/bash
exit: 容器停止并退出
ctrl+p+q:容器不停止退出

–rm 启动一个退出即删除容

创建一个非交互式的容器用完就删除

//docker run -it --rm myimages/centos /bin/bash
//exit
//docker ps -a

启动一个后台容器

开启一个后台交互的容器,注意启动的时候加上-it,如果不加的话 docker 启动容器会自动停 止

docker run -ti -d myimages/centos

exec 进入置为后台已经启动的容器

进入一个容器可以使用 docker exec 或者 docker attac

docker exec
docker exec -ti 93200113fb7e /bin/bash

交互式方式进入容器,容器内执行/bin/bash 命

docker attac
docker attach 93200113fb7e
区别:

docker exec:进入容器开启一个新的终端(常用) 执行 exit 退出的时候不会停止容器

docker attach:进入容器正在执行的终端 exit 退出会停止容器

–name 启动容器的时候指定名称

docker run -it --name MyCentos myimages/centos /bin/bash

start 启动

stop 停止

restart 重启容器

exit 退出容器

docker start XXXXXX
docker stop XXXXX
docker restart XXXXX
docker restart XXXX

退出容器 exit: 容器停止并退出

ctrl+p+q:容器不停止退出

删除容器

docker rm myCentos
docker rm -f myCentos

删除所有容器

docker rm -f $(docker ps -q)
根据容器的状态,删除 Exited 状态的容器
docker rm $(docker ps -qf status=exited)

查看容器操作日志

docker logs : 获取容器的日志

docker logs [OPTIONS] CONTAINER OPTIONS

说明:

-f : 跟踪日志输出

–since :显示某个开始时间的所有日志

-t : 显示时间戳

–tail :仅列出最新 N 条容器

docker cp 实现数据拷贝

docker cp :用于容器与主机之间的数据拷贝。

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

例子:

将主机/www/myroot 目录拷贝到容器 5e324512adf1 的/root 目录下。

docker cp /www/myroot/ 5e324512adf1:root

将主机/root/myRoot 目录拷贝到容器 5e324512adf1 中,目录重命名为 wwwroot。

docker cp /www/myroot/ 5e324512adf1:root/wwwroot
数据集介绍:野生动物与家畜多目标检测数据集 数据集名称:野生动物与家畜多目标检测数据集 数据规模: - 训练集:1,540张图片 - 验证集:377张图片 - 测试集:316张图片 分类类别: Brown-bear(棕熊)、Chicken(鸡)、Fox(狐狸)、Hedgehog(刺猬)、Horse(马)、Mouse(老鼠)、Sheep(绵羊)、Snake(蛇)、Turtle(龟)、Rabbit(兔)及通用object(物体)共11个类别 标注格式: YOLO格式标注,包含归一化坐标与类别索引,支持目标检测模型训练 数据特性: 涵盖航拍与地面视角,包含动物个体及群体场景,适用于复杂环境下的多目标识别 农业智能化管理: 通过检测家畜(鸡/马/绵羊等)数量及活动状态,辅助畜牧场自动化管理 生态监测系统: 支持野生动物(棕熊/狐狸/刺猬等)识别与追踪,用于自然保护区生物多样性研究 智能安防应用: 检测农场周边危险动物(蛇/狐狸),构建入侵预警系统 动物行为研究: 提供多物种共存场景数据,支持动物群体交互行为分析 高实用性标注体系: - 精细标注包含动物完整轮廓的边界框 - 特别区分野生动物与家畜类别,支持跨场景迁移学习 多维度覆盖: - 包含昼间/复杂背景/遮挡场景 - 涵盖陆地常见中小型动物与禽类 - 提供通用object类别适配扩展需求 工程适配性强: - 原生YOLO格式适配主流检测框架(YOLOv5/v7/v8等) - 验证集与测试集比例科学,支持可靠模型评估 生态价值突出: - 同步覆盖濒危物种(龟类)与常见物种 - 支持生物多样性保护与农业生产的双重应用场景
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值