Docker学习

Docker的使用说明

一、镜像

  1. 获取镜像:

     docker pull repository:tag
     repository-镜像名,tag-版本
    
  2. 查看镜像列表:

     docker images
    
  3. 为镜像添加标签:

     git tag ubuntu:16.04 ubuntu:16 
     ubuntu:16.04表示现有的镜像,ubuntu:16表示打过标签后的镜像
    
  4. 查看镜像历史:

     docker history ubuntu:16.04`
    
  5. 查询镜像:

     docker search ubuntu 
     可通过 `docker search --help`查看`docker search`可有哪些选项
    
  6. 删除镜像:

     docker rmi ID
     通过id删除镜像
     docker rmi ubuntu:16.04 
     通过仓库与tag删除镜像
     删除镜像之前要先删除容器
    
  7. 删除所有镜像:

      docker rmi `docker images -q`
    
  8. 基于容器创建镜像:

     docker commit -m 'msg' -a 'author' containtnerid repository:tag
     docker commit -m 'init' -a -'climber' 5c6da3c mylinux:v1
    
  9. 将镜像导出到本地电脑:

     docker save -o filename repository:tag
     docker save -o ubuntu_16.04.tar ubuntu:16.04
    
  10. 从本地电脑将镜像导入到docker:

    docker load -i filename
    docker load -i ubuntu_16.04.tar
    
  11. 上传镜像到dockerhub上:

    1.先在docker中登录dockerhub
    docker login 根据提示输入用户名、密码、邮箱
    
    2.在dockerhub上创建repository
    
    3.在docker中打tag,tag的名称为:dockerhub用户名\repository的名称
    
    4.进行推送:docker push dockerhub用户名\reponsitory名称
    

二、容器

  1. 创建容器:

     docker create -it ubuntu:16.04
    
  2. 启动容器:

     docker start containerid
    
  3. 进入容器:

     docker attach containerid
     docker exec -it containerid /bin/bash
     exec在Ctrl+D退出后,容器仍然在执行
    
  4. 停止容器:

     docker stop containerid
    
  5. 新建启动容器:

     docker run -it ubuntu:16.04 /bin/bash
    
  6. 暂停容器:

     docker pause containerid
    
  7. 删除容器:

     docker stop containerid	//停止容器
     docker rm containerid	//删除容器
    
  8. 查看所有容器:

     docker ps -a
    
  9. 导出容器:

     docker export -o filename ubuntu:16.04
    
  10. 导入容器:

    docker import filename imagename
    //容器导入docker后会自动生成为镜像
    

三、Docker仓库

  1. 搭建私有仓库

     docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
    
     // 修改配置文件:
     sudo gedit /etc/default/docker
     // 修改配置文件
     DOCKER_OPTS="--insecure-registry 0.0.0.0:5000"
    
  2. 私有仓库推送镜像

     docket tag java:8 127.0.0.1:5000/test
    
     docker push 127.0.0.1:5000/test
    

四、数据卷

  1. 创建数据卷

     docker volume create -d local test
    
  2. 查看volume路径

     // 查看是因为没有相应的权限
     ls -l /var/lib/docker/volumes
    
  3. 数据卷使用:

     // 在u1容器中定义数据卷
     docker run -it -v /dbdata --name u1 ubuntu
     // 将u1的数据卷挂载到u2
     docker run -it --volumes-from u1 --name u2 ubuntu
     // 将u1的数据卷挂载到u3 在对其中一个容器中的数据卷修改时,都会相应的做出修改
     docker run -it --volumes-from u1 --name u3 ubuntu
    
  4. 对数据卷进行备份:

     // 创建worker容器,将u3下的数据卷放到worker容器下的/backup目录,将数据卷的内容备份到宿主主机的/backup/backup.tar下
     docker run --volumes-from u3 -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar dbdata
    
  5. 数据卷恢复:

     //创建带有数据卷的容器u4
     docker run -v /dbdata --name u4 ubuntu /bin/bash
     // 创建容器 busybox,将数据卷容器u4挂载到busybox,使用untar解压到所挂载的容器卷中
     docker run --volumes-from u4 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
    

五、端口映射

  1. 随机映射端口:

     // 使用-P随机生成映射端口
     docker run -d -P training/webapp python app.py
    
  2. 映射所有接口地址:

     docker run -d -p 5000:5000 training/webapp python app.py
    
  3. 映射到指定地址的制定端口:

     docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py 
    
  4. 映射到指定地址的任意端口:

     docker run -d -p 127.0.0.1::5000 training/webapp python app.py
    
  5. 查看端口所绑定的地址:

     docker port 7b8 5000
    
  6. 容器互联:

     // 创建容器
     docker run -d --name db training/postgres
     // 使用容器互联
     docker run -d -P --name web --link db:db training/webapp python app.py
    

六、Dockerfile

  1. Dockerfile创建:

     FROM ubuntu:18.04
    
     LABEL maintainer derlin<derlin_nj@163.com>
     
     RUN  apt-get update && apt-get install -y nginx
     
     CMD  /usr/sbin/nginx
     
     // 执行Dockerfile: 
     // 1. 将文件复制到无其他文件的文件夹
     // 2. 执行docker build -t ubuntu:v1 . 
     // 3. ubuntu:v1表示镜像及版本,.表示执行当前的Dockerfile文件
    
  2. docker build指令说明:

     ARG  定义创建镜像过程中使用的变量
     FROM  指定所创建镜像的基础镜像
     LABEL  为生存的镜像添加元数据标签信息
     EXPOSE  声明镜像内服务监听的端口
     ENV  指定环境变抵
     ENTRYPOINT  指定镜像的默认入口命令
     配置指令 VOLUME  创建一个数据卷挂载点
     USER  指定运行容器时的用户名或UID
     WORKDIR  配置工作目录
     ONBUILD  创建子镜像时指定自动执行的操作指令
     STOPSIGNAL  指定退出的信号值
     HEALTH  CHECK  配置所启动容器如何进行健康检查
     SHELL  指定默认shell类型
     RUN 定义创建镜像过程中使用的变量。
     CMD 启动容器时指定默认执行的命令
     ADD 添加内容到镜像
     COPY 复制内容到镜像
    
  3. 创建镜像:

     执行docker build -t ubuntu:v1 . 
    
  4. 选择父镜像:

     通过FROM命令执行父镜像
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值