docker2-命令补充与容器数据卷使用

命令补充

docker信息与帮助

  • docker version 和 docker info
  • docker --help 查看所有docker命令列表
  • docker --help run/commit/... 查看指定docker命令用法

镜像命令

  • 本机镜像列表 docker images
    -a 列出本机所有镜像(包括中间层)
    -q 只显示镜像ID
    --digests 显示镜像的摘要信息
    --no-trunc 显示完整镜像ID
  • 镜像查询获取 docker search 镜像[:tag]; docker pull 镜像[:tag]
  • 镜像删除
    • 单个删除 docker rmi 镜像id/name(-f强制删除)
    • 删除多个 docker rmi -f img1:tag img2:tag ...
    • 删除所有 docker rmi -f $(docker images -qa)
  • 镜像提交(commit)与推送(push)云端-类比GitHub
  • 镜像保存(save)与加载(load)
    想要移植某个提交的状态镜像,但是推送云端太麻烦。
    可以将一个或多个镜像保存为文件,然后载入这个文件达到目的。

    实验开始:将centos和hello-world镜像移植
    1)拉取centos和hello-world镜像
    docker pull centos
    docker pull hello-world
    2)镜像保存为文件
    docker save centos hello-world -o /usr/local/mydocker/myimages.package
    3)删除原来的镜像
    docker rmi centos hello-world
    4)载入镜像
    docker load -i /usr/local/mydocker/myimages.package

容器命令

  • 新建并启动容器 docker run [options] 镜像id/name
    --name 为该容器指定一个名字
    -d 后台运行容器,返回容器ID,用于启动守护式容器(tomcat容器)
    -i 以交互模式运行容器,通常与 -t 一起用(centos容器)
    -t 给容器新分配一个输入终端(bash)
    -P 随机端口映射
    -p 指定端口映射
  • 运行容器列表查看 docker ps
    -a 历史容器(包括停止的,启动失败的)
    -l 查看最近容器
    -n 查看最近n次的容器
    -q 只显示容器ID
  • 容器停止和启动 docker stop/start/restart 容器id/name
    强制停止容器(Exited) docker kill 容器id/name
  • 删除已停止(Exited)的容器 docker rm 容器id/name
    此时docker ps -a 看不到容器记录了
    docker rm -f 容器id/name强删,如果有运行的,会先进行stop
  • 退出容器交互(已进入容器/集装箱内)
    • exit 退出并停止容器(Exited)
    • Ctrl-P+Q 回到宿主机环境,不停止容器
  • 查看容器内运行进程 docker top 容器id/name

    docker --help|grep top == Display the running processes of a container

  • 查看容器日志 docker logs 容器id/name
    -f 跟随最新日志
    -t 打印时间戳
    --tail n 显示最后n条
    实验开始: 1 运行centos镜像容器,持续打印日志 `docker run --name mycentos -d centos /bin/sh -c "while true; do echo hello mycentos; sleep 2; done"` 2 查看容器日志 `docker logs mycentos -ft --tail 5` 3 查看容器内运行进程 `docker top mycentos`
  • 查看容器内部细节 docker inspect mycentos
    打印JSON对象文本,描述了该容器的细节信息,比如容器id,创建时间,运行路径,运行参数,状态等等。
  • 继续与运行的容器进行交互
    • docker attach mycentos
      回到该容器内部Linux
    • docker exec -t mycentos ls -lrt
      对目标容器施加命令,获取输出,隔山打牛
      docker exec -it mycentos /bin/bash效果和attach一样
  • 容器内文件拷贝至宿主机 docker cp mycentos:/test.txt /
    注:停止/退出(stop-Exited)的容器,运行期文件不会消失(系统开关机),但docker rm后,文件消失(重装了系统一样..)。
    真正使用时,应该使用容器数据卷来达到容器运行数据持久化的目的。
  • 运行容器状态镜像提交 docker commit -a "作者" -m "描述" 容器id/name 新镜像版本名[:tag]
    实验开始: 1)运行官方centos镜像,容器内新建文件111.txt docker run --name mycentos -it centos /bin/bash touch /usr/local/111.txt 2)临时退出容器,进行容器镜像提交 docker commit -a "Richard" -m "add 111.txt" mycentos hwc/centos //执行成功会返回新的镜像ID 3)查看本地镜像,运行新的镜像,进入看是否有新增的/usr/local/111.txt


容器数据卷(volume)

容器卷概述

  • 卷即目录或文件,容器卷的设计目的就是为了容器数据的持久化。
  • 当容器被删除后,容器内运行时产生的数据也消失了,我们希望对齐持久化,类比Redis中的数据持久化的rdb和aof文件。
  • 我们还希望容器和宿主文件共享,容器之间文件共享。
  • 容器卷存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此可以绕开UnionFS提供一些用于数据持久化和共享的特性。
  • 容器卷独立于容器的生存周期,Docker容器退出会删除时不会删除其挂载的容器卷。
  • 容器卷特点
    • 容器卷可在容器之间共享和重用数据
    • 卷中的更改直接生效,但不会影响到提交的镜像中(即数据卷容器提交的镜像,运行时不会挂载原容器卷,从docker inspect的信息中可以看出这点)

开始使用

  • 容器运行添加容器卷
    docker run -v /宿主机文件目录:/容器内文件目录[:ro] 镜像id/name
    可以追加:ro设置容器卷为容器只读。追加多个-v则可挂载多个容器卷。
    另一种挂载容器卷的方式是编写/改写DockerFile描述构建镜像运行。
    实验开始: 1)运行centos容器,-v 挂载一个容器卷 docker run --name mycentos -it -v /usr/local/dcVolume/mycentos:/usr/local/dcVolume centos; 2)docker inspect mycentos 可以看到挂载信息 "Binds": [ "/usr/local/dcVolume/mycentos:/usr/local/dcVolume" ] 3)容器内外创建修改文件验证共享性
  • 数据卷容器(--volumes-from 容器间传递共享)
    • 即挂载了容器卷的容器,其他容器运行时可以继承这个父容器实现容器间数据的共享。
    • 实验开始
    1)先运行一个数据卷容器
    docker run --name mycentos00 -it -v /usr/local/dcVolume/mycentos:/usr/local/dcVolume centos;
    2)运行两个新的相同镜像容器,继承容器卷运行
    docker run --name mycentos01 -it --volumes-from mycentos00 centos;
    docker run --name mycentos02 -it --volumes-from mycentos00 centos;
    3)可以看到这三个容器内都有 /usr/local/dcVolume 目录
    4)宿主机fs新建一个host.txt文件,三个容器中都会出现
    5)容器间修改目录文件,宿主机fs和容器间会实时同步

转载于:https://www.cnblogs.com/noodlerkun/p/11461888.html

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值