Docker学习笔记(一):Docker命令总结

简介: 本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。

一、Docker介绍

Docker是一个开源的应用容器引擎,它允许开发者在几乎任何环境中运行应用程序,而无需担心运行环境的问题。Docker的核心概念是容器,它可以将应用程序及其依赖项打包在一起,形成一个独立的环境。这使得开发者可以在不同的机器上复制相同的运行环境,从而实现应用程序的快速部署和迁移。

Docker的主要优点包括:

  • 轻量级:Docker容器比虚拟机更轻量,因为它们共享宿主机的操作系统内核。这使得Docker容器启动速度更快,占用资源更少。
  • 可移植性:由于Docker容器包含了应用程序的所有依赖项,因此可以在任何支持Docker的环境中运行,无论是在物理机、虚拟机还是在云端。
  • 易于管理:Docker提供了强大的镜像管理功能,可以轻松地创建、删除和共享容器镜像。此外,Docker还支持自动化构建和部署,大大提高了开发效率。
  • 安全性:Docker容器之间的隔离性较好,可以有效防止应用程序之间的冲突和干扰。此外,Docker还提供了许多安全特性,如命名空间、cgroups和AppArmor,可以帮助保护容器内的应用程序。
  • 开源:Docker是一个开源项目,拥有庞大的社区和丰富的资源,包括文档、教程和插件。这使得Docker非常灵活,可以根据需求进行定制和扩展。

1.1 镜像与容器区别

镜像(Image)和容器(Container)是Docker技术中的两个核心概念,它们之间的关系类似于传统计算机中的操作系统和应用程序。

  • 镜像(Image):镜像可以看作是一个只读的模板,它包含了创建容器所需的全部内容和元数据。镜像本身并不运行任何程序,而是用来创建容器。一个镜像可以创建多个容器,这些容器之间相互独立。
  • 容器(Container):容器是从镜像创建的运行实例,它包含了运行中的应用程序及其所需的依赖项和环境变量。容器是轻量级的,因为它共享了宿主操作系统的内核,这使得容器启动速度非常快,且占用资源较少。

简单来说,镜像定义了容器的行为和属性,而容器则是镜像的运行实例。

二、Docker命令

  1. 构建镜像

    sudo docker build -f ./ultralytics-main/docker/Dockerfile -t yolov8:v0 .
    
  2. 查看容器

    docker imagee
    
  3. 查看正在运行的容器ID(所有运行过的容器)

    docker ps -a
    
  4. 安装ssh服务/根据运行的容器,直接进入:

    docker exec -t -i ubuntu /bin/bash
    
  5. 运行容器

    """
    命令解释 (-d 一直运行;-i 交互式操作; -t 终端;-v 挂载路径  “/home/zzy_ubuntu/share”表示主机路径 “/usr/share/files1”表示docker路径;--gpus表示使用gpu ;“fa50f7fed43a ” 表示容器ID)
    """
    # 一直运行容器,exit不会退出(再次进入需要使用docker exec)
    sudo docker run -dit --gpus all fa50f7fed43a /bin/bash
    # 使用GPU
    sudo docker run -it  --gpus all fa50f7fed43a /bin/bash
    # 使用CPU
    sudo docker run -t -i 容器id /bin/bash
    # 运行时挂载  {yolov8:base} 是容器id的tag
    #### ubuntu挂载
    sudo docker run -dit --gpus all -v /home/zzy_ubuntu/share:/workspace/share yolov8:1.0 /bin/bash
    #### windows挂载
    sudo docker run -dit --gpus all -v /mnt/f/python/company_code/Algorithm_architecture/yolov8:/workspace/share yolov8:1.0 /bin/bash
    
  6. 停止运行容器

    sudo docker stop <容器ID>
    
  7. 删除容器

    ############################################## 删除容器
    sudo docker rm <容器ID前三位> 
    ############################################## 删除镜像
    docker rmi -f 镜像id # 删单个
    docker rmi -f 镜像id 镜像id # 删多个
    docker rmi -f $(docker images -aq) # 删除所有
    
  8. 进入容器终端

    docker exec -it 容器ID  /bin/bash  # 此方法需要先通过docker run -dit后台启动
    
  9. 保存新镜像(打包tar)

    # 使用save参数进行打包,格式如:docker save -o tar文件名称 镜像REPOSITORY:TAG
    docker   commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]
    ---docker commit -m="最新的yolov8环境-无tensorrt" -a="zhaozhiyuan" 2b22 yolov8:cuda11.6.2-cudnn8302-py38
    docker save -o yolov5-v6.2.tar yolov5:v6.2 ---- 将镜像保存为.tar文件,默认保存在当前目录
    # sudo docker save <镜像ID> -o /home/yolov8_v0.tar
    # 其中yolov5:v6.2 是需要保存镜像的REPOSITORY、和TAG;也是上面保存的镜像名称。
    
  10. 给镜像打标签和删除标签

    # 打标签
    sudo docker tag aba01f181a4a webconsole:latest
    
  11. 容器导出

    sudo docker export -o xxx.tar <容器id>
    
  12. 加载tar镜像

    # 使用load进行从tar文件导出镜像
    docker load -i yolov5-v6.2.tar
    # 然后查看是否出现镜像
    docker images
    
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
2月前
|
安全 Docker 容器
|
2月前
|
网络安全 数据安全/隐私保护 Docker
|
3天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
118 77
|
1月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
368 11
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
2天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
51 5
|
2月前
|
存储 监控 安全
|
2月前
|
存储 关系型数据库 MySQL
|
2月前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
1210 1
|
2月前
|
Linux 网络安全 Docker
安装后无法使用 Docker 命令
【10月更文挑战第3天】
281 2
|
4月前
|
Docker 容器
Docker 入门常用命令
Docker 入门常用命令
32 1