DOCKER学习总结

embedded/2024/12/3 7:09:44/

这里写目录标题

  • 一、Docker安装
    • 1.1 在线安装
    • 1.2 离线安装
      • 安装配置
      • 启动服务
    • 1.3 配置镜像
    • 1.4 Docker启动相关命令
  • 二、Docker三大核心概念
    • 2.1 镜像
    • 2.2 容器
    • 2.3 仓库
      • 2.3.1 公有仓库
      • 2.3.2 私有仓库
  • 二、容器与虚拟机比较

一、Docker安装

1.1 在线安装

1.2 离线安装

下载安装包

下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz。其它版本可打开以下页面下载https://download.docker.com/linux/static/stable/x86_64/

安装配置

  • 上传压缩包到服务器

  • 解压,tar -xvf docker-24.0.7.tgz

  • 将解压出来的docker文件内容移动到 /usr/bin/ 目录下,cp docker/* /usr/bin/

  • 注册编辑docker服务,vi /etc/systemd/system/docker.service,内容如下

    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target[Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd
    ExecReload=/bin/kill -s HUP $MAINPID
    # Having non-zero Limit*s causes performance problems due to accounting overhead
    # in the kernel. We recommend using cgroups to do container-local accounting.
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    # Uncomment TasksMax if your systemd version supports it.
    # Only systemd 226 and above support this version.
    #TasksMax=infinity
    TimeoutStartSec=0
    # set delegate yes so that systemd does not reset the cgroups of docker containers
    Delegate=yes
    # kill only the docker process, not all processes in the cgroup
    KillMode=process
    # restart the docker process if it exits prematurely
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s[Install]
    WantedBy=multi-user.target
    

启动服务

systemctl daemon-reload
systemctl enable docker && systemctl start docker

1.3 配置镜像

在daemon.json文件中,配置阿里云的镜像加速器地址,如下所示:

{
“registry-mirrors”: [“https://registry.cn-hangzhou.aliyuncs.com”]
}

保存daemon.json文件。

重启Docker服务以应用新的配置:

sudo systemctl daemon-reload
sudo systemctl restart docker

1.4 Docker启动相关命令

二、Docker三大核心概念

  Docker的三大核心概念是镜像(Image)、容器(Container)和仓库(Repository)。

2.1 镜像

  镜像是一个只读的模板,用来创建Docker容器。里面包含一个完整的操作系统环境,里面包含了程序和必要的以来文件。

  • 查看镜像
    docker images
    
  • 搜索镜像
    docker search 镜像名称
    
  • 拉取镜像
    docker pull 镜像名称
    
  • 删除镜像
    docker rmi 镜像ID
    
  • 删除所有镜像
    docker rmi `docker images -q`
    

2.2 容器

  容器是从镜像创建的运行实例,可以运行、开始、停止、删除等。每个容器是相互隔离的、保证安全的平台。

  • 查看正在运行的容器
    docker ps 
    
  • 查看所有容器
    docker ps -a
    
  • 查看最后一次运行的容器
    docker ps -l
    
  • 查看停止的容器
    docker ps -f status=exited
    
  • 停止与启动容器
    docker start 容器名称(或者容器ID)
    
    docker stop 容器名称(或者容器ID)
    
  • 交互式方式创建容器
    docker run -it --name=容器名称 镜像名称:标签 /bin/bash
    
    exit
    
  • 守护式方式创建容器
    docker run -di --name=容器名称 镜像名称:标签
    
    登录守护式容器方式
    docker exec -it 容器名称 (或者容器ID)  /bin/bash
    

2.3 仓库

  仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上 往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的 标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

2.3.1 公有仓库

  公有仓库是指可以供用户面免费使用的Docker镜像仓库,用户可以在其中存储和分享自己的Docker镜像。Docker官方提供了Docker HUb公有仓库,其中包含了大量的Docker镜像,用户可以通过搜索和下载这些镜像来快速部署和运行应用程序。

2.3.2 私有仓库

  私有仓库是指用户自己搭建的Docker镜像仓库,用于存储和管理自己的Docker镜像。相比于公有仓库,私有仓库更加安全和可控,用户可以完全掌控自己的镜像,避免了公有仓库的镜像被篡改或者存在漏洞而导致的安全问题。
  私有仓库可以部署在本地服务器或者云服务器上,用户可以根据自己的需求进行扩容和优化。
  Docker官方提供了Docker Registry作为私有仓库的解决方案,用户可以在其中搭建自己的私有仓库。使用私有仓库可以提高应用程序的安全性和可控性。

  • 安装Docker Registry
    Docker Registry是Docker 官方提供的镜像仓库,可以用来搭建私有仓库。可以通过命令来拉取Docker Registry镜像:

    docker pull registry
    
  • 运行Docker Registry容器
    可以通过命令来运行Docker Registry容器:

    docker run -d -p 5000:5000 --name  registry registry
    

    其中,-p 5000:5000表示将容器内部的5000端口映射到主机的5000端口,–name registry表示指定容器的名称为 registry 。

  • 配置Docker客户端
    在使用私有仓库时,需要在Docker客户端配置私有仓库的地址,可以通过命令来:

    echo '{"insecure-registries":["<私有仓库地址>:<端口号>"]}' > /etc/docker/daemon.json
    

    配置完成后,需要重启 Docker 服务:
    ```
    docker restart docker

  • 推送和拉取镜像
    配置完成后,就可以使用docker push命令在推送镜像到私有仓库,使用docker pull命令来从私有仓库拉取镜像,docker tag 为镜像打上标签。

    docker tag <镜像名称> <私有仓库地址>:<端口号>/<镜像名称>
    
    docker push <私有仓库地址>:<端口号>/<镜像名称>
    
    docker pull <私有仓库地址>:<端口号>/<镜像名称>
    

二、容器与虚拟机比较

下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
在这里插入图片描述

特性容器虚拟机
启动速度极快(通常在几秒内)
资源占用轻量(共享主机内核)重(每个VM有独立OS,资源消耗大)
隔离性中等(共享内核,但进程隔离)高(完全隔离,每个VM独立运行)
移植性高(能在不同环境中一致运行)中等(依赖于hypervisor及OS)
管理工具Docker, Kubernetes等VMware, Hyper-V, KVM等
性能指标容器虚拟机
启动时间几秒几分钟
内存占用20MB-50MB512MB-2GB
CPU占用率较高
实例数50+5-10
用例容器虚拟机
微服务架构适合,轻量级和灵活性高可行,但不如容器高效
开发与测试快速部署和环境一致性隔离性强,适合测试多个操作系统
大规模部署理想选择,易于扩展和管理适用于复杂应用和遗留系统
处理敏感数据需额外安全措施适合,安全隔离性强

http://www.ppmy.cn/embedded/142536.html

相关文章

【Robocasa】Code Review

文章目录 OverviewalgoInitializationImportant Class MethodsTrain LoopTest Time ConfigsdemoConfig FactoryConfig StructureConfig Locking默认锁定状态配置修改的上下文管理器 dataset示例数据集对象参数说明 model基础模块EncoderCoreVisualCoreScanCore随机化器 (Random…

VINS_MONO视觉导航算法【二】论文讲解+GPU实现调研

文章目录 其他文章说明论文系统特点和创新点鲁棒的初始化紧耦合优化的视觉惯性里程计&#xff08;VIO&#xff09;回环检测与重定位4自由度姿态图优化 视觉和IMU测量的预处理步骤视觉测量预处理特征跟踪特征点处理关键帧选择 IMU测量预处理IMU噪声和偏差预积分偏差校正 单目紧密…

详解MyBatis之篇一

目录 MyBatis 定义 使用MyBatis操作数据库 创建项目 配置 演示 UserInfo.java UserInfoMapper UserInfoMapperTest 数据准备 自动生成测试类 运行结果 MyBatis 定义 MyBatis 是一个优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避…

基于群晖搭建个人图书架-TaleBook based on Docker

前言 在群晖Container Manager中部署失败&#xff0c;转通过ssh部署。 一、准备工作 名称备注群晖SSH“终端机和SNMP”中启用SSH软件secureCRT等docker-compose.ymlGithub下载并修改 二、过程 2.1 创建本地文件夹 本地路径为&#xff1a; /docker/Calibre/data 2.2 下载d…

22智能 图

例题 根据下列顶点之间的关系&#xff0c;画出相应的图结构 A -> B, C, D B -> A, C, C -> A, D, E, D -> B, E, E -> C, 数据结构&#xff1a;使用邻接表表示图&#xff0c;每个顶点有一个链表来存储与它相邻的顶点。 功能&#xff1a; 创建图。 添加边。 打…

S4 UPA of AA :新资产会计概览

通用并行会计&#xff08;Universal Parallel Accounting&#xff09;可以支持每个独立的分类账与其他模块集成&#xff0c;UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估&#xff0c;并…

活着就好20241202

亲爱的朋友们&#xff0c;大家早上好&#xff01;今天是2024年12月2日&#xff0c;第49周的第一天&#xff0c;也是十二月的第二天&#xff0c;农历甲辰[龙]年十月三十。在这个全新月份的开始、阳光初升的清晨&#xff0c;愿第一缕阳光悄悄探进你的房间&#xff0c;带给你满满的…

Vue封装sql编辑器

1.封装sql编辑器组件 <template><div :id"id"></div> </template><script lang"ts" setup> import EditorWorker from monaco-editor/esm/vs/editor/editor.worker?worker import * as monaco from monaco-editor import …