docker

docker

什么是docker?

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

img

docker 安装

安装yum-utils

yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

# 安装命令 -y 表示安装过程不再询问,默认yes
yum -y install yum-utils

在这里插入图片描述

配置仓库

选择数据源

使用官方源安装

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

使用阿里云的数据源安装

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

使用清华大学源

yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

安装docker

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

默认安装最新版。

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

在这里插入图片描述

安装特定版本

yum list docker-ce --showduplicates | sort -r

列出所有可用版本

在这里插入图片描述

# 执行命令,填上版本号即可
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
查看docker版本
docker version

在这里插入图片描述

启动docker
systemctl start docker

# 查看是否启动成功
systemctl status docker

在这里插入图片描述

下载第一个镜像
# 执行命令
docker pull hello-world

默认下载最新版本

在这里插入图片描述

查看镜像是否现在成功

在这里插入图片描述

启动第一个容器
docker run -it hello-world

在这里插入图片描述

到现在为止,我们docker已经配置好数据源,docker下载成功,启动成功,第一个镜像下载成功,第一个容器启动成功!

下面看一张图片,基本描述了整个docker学习过程中,需要用到的所有命令。

镜像-Image

Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

但是请记住,docker镜像为了做到最小量级,去掉了很多工具类和插件,比如clear、比如ll命令。

搜索镜像
# 此处可以不加版本号
docker search 镜像名:版本号

# 比如,搜索mysql镜像
docker search mysql:5.7

在这里插入图片描述

下载镜像
# 可以不加版本号,如果不加版本号,默认下载最新版本
docker pull 镜像名:版本号

# 下载mysql镜像
docker pull mysql

在这里插入图片描述

查看镜像
# 查看下载好的镜像
docker images

在这里插入图片描述

容器-Container

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

镜像相当于一个root文件系统,当我们启动一个镜像后,该文件系统运行成功。

由于该文件系统与宿主机是隔离的,所以我们称之为容器。当然与其他的容器也是隔离的。

隔离变现为:网络、端口等信息。

启动容器
# 先下载一个centos镜像
docker pull centos
# docker run 镜像或者镜像ID
docker run -it --name centos01 centos
# -it 代表以交互方式启动一个前台进程,退出即关闭容器

在这里插入图片描述

# 我们可以新开窗口查看 容器是否启动成功
docker ps

在这里插入图片描述

查看容器进程信息
#  exit可以退出容器 退出后再次查看启动容器的进程
docker ps

在这里插入图片描述

# 我们可以查看历史启动容器 -a展示所有的容器信息 -q只展示容器ID  联合使用 展示所有容器ID
docker ps -a

在这里插入图片描述

后台启动
  1. 直接启动 -d
# 我们以后台方式启动一个容器
docker run -d --name centos02 centos
# 但是这样的后台启动有一个小问题,即再无后台操作的情况下,或者命令执行时间过短的情况下,容器会自动停止,导致我们除了根据日志或者容器历史记录,无法确定查看容器启动的记录。

在这里插入图片描述

  1. 启动时带有执行指令
# 换一种后台启动模式 -d
# docker run --name=自定义容器名  -d 容器镜像(环境)容器程序
docker run --name centos-01 -d centos /bin/sh -c "while true;do echo hello world, sleep1;done"

在这里插入图片描述

  1. 启动时进入指定目录
docker run -itd --name centos-04 centos /bin/bash

在这里插入图片描述

进入启动容器内部
  1. exec
# docker exec -it 容器ID或者容器名称 目录
docker exec -it 9d6c0e0a90ff /bin/bash

在这里插入图片描述

  1. attach
docker attach 容器ID或者容器名称

在这里插入图片描述

停止容器
# docker stop 容器ID或者容器名称
docker stop centos-05
# docker kill 容器ID或者容器名称
docker kill 9d6c0e0a90ff

在这里插入图片描述

删除容器
# 查询历史容器
docker ps -a
# 删除指定容器
docker rm -f 容器ID或者容器名称
# 删除全部容器
docker rm -f $(docker ps -q)

在这里插入图片描述

数据卷

数据卷是独立于容器的数据!

在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即***数据不随着Container的结束而结束***),需要将数据从宿主机挂载到容器中。

目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中:

img

volumes

Docker管理宿主机文件系统的一部分,默认位于 /var/lib/docker/volumes 目录中;(最常用的方式

在这里插入图片描述

匿名挂载
# 启动centos容器 同时创建匿名挂载
# -v 后面是容器内路径
 docker run -itd --name centos01 -v /opt centos

在这里插入图片描述

# 查看数据卷信息
docker inspect 容器ID

查看"Mounts"节点下内容:

在这里插入图片描述

具名挂载
# -v 后面就是数据卷名字 
docker run -itd --name centos02 -v centos02-volume:/opt centos /bin/bash
# docker volume inspect 数据卷名称 查看数据卷详情
docker volume inspect centos02-volume

在这里插入图片描述

指定路径挂载
# 指定路径挂载
docker run -itd --name centos03 -v /opt/test:/opt:ro centos

# 通过-v 容器内路径.ro/rw 指定容器内文件是否只读
ro readoly   只读
rw readwirte 读写
# 当挂载文件后出现ro时,则容器无法对该文件做出写操作,只能通过宿主机操作。

在这里插入图片描述

bind mounts

意为着可以存储在宿主机系统的任意位置;(比较常用的方式

但是,bind mount在不同的宿主机系统时不可移植的,比如Windows和Linux的目录结构是不一样的,bind mount所指向的host目录也不能一样。这也是为什么bind mount不能出现在Dockerfile中的原因,因为这样Dockerfile就不可移植了。

tmpfs

挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统;(一般都不会用的方式

仓库-Repository

仓库可看成一个代码控制中心,用来保存镜像。我们可以提交一个镜像,也可以从开源仓库下载别人做好的镜像。

后文待续

标题“51单片机通过MPU6050-DMP获取姿态角例程”解析 “51单片机通过MPU6050-DMP获取姿态角例程”是一个基于51系列单片机(一种常见的8位微控制器)的程序示例,用于读取MPU6050传感器的数据,并通过其内置的数字运动处理器(DMP)计算设备的姿态角(如倾斜角度、旋转角度等)。MPU6050是一款集成三轴加速度计和三轴陀螺仪的六自由度传感器,广泛应用于运动控制和姿态检测领域。该例程利用MPU6050的DMP功能,由DMP处理复杂的运动学算法,例如姿态融合,将加速度计和陀螺仪的数据进行整合,从而提供稳定且实时的姿态估计,减轻主控MCU的计算负担。最终,姿态角数据通过LCD1602显示屏以字符形式可视化展示,为用户提供直观的反馈。 从标签“51单片机 6050”可知,该项目主要涉及51单片机和MPU6050传感器这两个关键硬件组件。51单片机基于8051内核,因编程简单、成本低而被广泛应用;MPU6050作为惯性测量单元(IMU),可测量设备的线性和角速度。文件名“51-DMP-NET”可能表示这是一个与51单片机及DMP相关的网络资源或代码库,其中可能包含C语言等适合51单片机的编程语言的源代码、配置文件、用户手册、示例程序,以及可能的调试工具或IDE项目文件。 实现该项目需以下步骤:首先是硬件连接,将51单片机与MPU6050通过I2C接口正确连接,同时将LCD1602连接到51单片机的串行数据线和控制线上;接着是初始化设置,配置51单片机的I/O端口,初始化I2C通信协议,设置MPU6050的工作模式和数据输出速率;然后是DMP配置,启用MPU6050的DMP功能,加载预编译的DMP固件,并设置DMP输出数据的中断;之后是数据读取,通过中断服务程序从DMP接收姿态角数据,数据通常以四元数或欧拉角形式呈现;再接着是数据显示,将姿态角数据转换为可读的度数格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值