Docker基础——Docker Server安装(ubuntu)和Docker镜像相关命令
目录安装 dockerDocker Server安装步骤Docker 镜像源修改Docker目录修改Docker生态新时代软件诉求Docker 解决方案Docker Registry镜像仓库什么是 Docker Registry镜像仓库分类镜像仓库工作机制镜像仓库命令docker logindocker pulldocker pushdocker searchdocker logout镜像命令docker imagesdocker image inspectdocker tag容器命令run和psdocker rundocker ps安装 dockerDocker Sverver支持的osDocker Server安装步骤1、确定 CPU,可以看到我们的是 X86_64是支持的如果是 arm 一般会显示aarch64,我们ubuntu是X86架构的2、配置 docker 下载源#curl 命令安装sudo apt install curl -y#创建 gpg key 目录sudo mkdir -m 0755 -p /etc/apt/keyrings#下载 gpg keycurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpgecho \deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg]https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null3、安装sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y4、自启动配置#配置加载sudo systemctl daemon-reload#启动服务sudo systemctl start docker#开启启动sudo systemctl enable docker#查看服务状态sudo systemctl status docker5、检查安装版本Docker 镜像源修改对于使用 systemd 的系统Ubuntu 16.04、Debian 8、CentOS 7 如果是腾讯云在配置文件 /etc/docker/daemon.json 中加入JSON{registry-mirrors: [https://mirror.ccs.tencentyun.com]}如果是阿里云因为只对企业开放海外代理只能找私人的一些开放的源目前可以使用的源如下{registry-mirrors: [https://docker.m.daocloud.io,https://dockerhub.timeweb.cloud,https://huecker.io]}重新启动 dockerdsudo systemctl daemon-reloadsudo systemctl restart dockerDocker目录修改Docker 默认的安装目录为/var/lib/docker,这里面会存放很多很多镜像所以我们在安装的时候需要考虑这个目录的空间有三种解决方案。1将/var/lib/docker 挂载到一个大的磁盘这种一般我们能控制挂载目录像腾讯云这种云厂商在安装 K8s 的节点的时候提供了挂载选项可以直接挂载这个目录过去2安装之前挂载一个大的磁盘然后创建一个软链接到/var/lib/docker这样就自动安装到我们空间比较大的磁盘了3安装了 docker然后发现忘了配置这个目录我们需要修改 docker 的配置文件#假定我们磁盘的大的目录为 /datamkdir -p /data/var/lib/docker# 编辑配置文件vi /etc/docker/daemon.json# 输入下面的 json{data-root: /data/var/lib/docker}# 加载配置sudo systemctl daemon-reload# 重启 dockersudo systemctl restart docker#查看 docker 状态sudo systemctl status dockerDocker生态新时代软件诉求我们来考虑 2 个问题Docker 为什么要设计镜像然后又搭建个 Docker Hub搞个镜像仓库呢我们来看下现在的时代发生了什么数据量疯狂增长随着物联网、边缘计算等智能终端设备不断普及受到来自物联网设备信号、元数据、娱乐相关数据、云计算和边缘计算的数据增长的驱动全球数据量呈现加速增长。根据 IDC 分布的《数据时代 2025》预测全球数据量将从 2018 年的 33ZB 增至 2025年的 175ZB增长超过 5 倍中国平均增速快于全球 3%预计到 2025 年将增至48.6ZB占全球数据圈的比例由 23.4%提升27.8%。其中中国企业级数据量将从2015 年占中国数据量的 49增长到 2025 年的 69。处理能力快速增加腾讯云全球服务器数量 100w数据量 EB2020 年阿里云在全国已建成 5 大超级数据中心阿里云在全球 22 个地域部署了上百个数据中心服务器的总规模数已经接近 200 万台。某省疾控中心疫苗预约系统、全员核酸检测系统、健康码系统共 300 余台服务器并为核酸检测系统快速扩容计算和存储资源软件需求爆发式增长研发模式从瀑布开发演变为敏捷开发原来 3 个月上一次新功能现在两周一次而开发过程中我们也经常遇到需要修改需求然后变更再发布的情况软件上线有问题需要快速回滚对软件有着极强的版本管理和回滚诉求。软件的研发人员、研发公司在设计、研发好一款软件的时候如何方便的共享给他人而又能快速的使用起来每个项目组使用的语言不一样需要不同的环境每个都得搞一套。每次都要一个个完成部署安装每次都有各种奇怪的问题Docker 解决方案云时代需要我们针对这些诉求有一套针对的解决方案。我们要处理海量的数据如何处理呢购买大量的服务器并研发对应软件开发的需求需要频繁的变更上线如何才能将修改的代码快速的分发到几百或者几千台服务器呢如何共享软件呢搞一个中心仓库让各个服务器去下载软件包安装所以 CentOS 搞了 yum 仓库docker 设计了镜像仓库docker hub 是公共的托管仓库。软件设计好以后怎么快速安装启动有问题回滚呢将 docker 需要的所有信息设计一套软件格式把所有的依赖搞进去并打上版本标签这样不会换一个服务器各种问题所以 Docker 设计了镜像。不同的开发环境怎么搭建呢一会 java一会 cdocker 设计了镜像来应对镜像里面存放了需要运行的环境就像我们的 iPhone 内置 ios我们的华为 mate 50 内置鸿蒙一样一条命令就可以完成某个环境的搭建。Docker Registry镜像仓库什么是 Docker Registry镜像仓库(Docker Registry) 负责存储、管理和分发镜像并且提供了登录认证能力建立了仓库的索引。镜像仓库管理多个 Repository Repository 通过命名来区分。每个 Repository 包含一个或多个镜像镜像通过镜像名称和标签 (Tag)来区分。镜像仓库(Registry):要从哪一个镜像仓库拉取镜像通常通过 DNS 或 IP 地址来确定一个镜像仓库如 hub.docker.com;一个 Registry 中可以存在多个Repository·Repository 可分为“顶层仓库”和“用户仓库”;·用户仓库名称格式为“用户名/仓库名”·每个仓库可以包含多个 Tag(标签)每个标签对应一个镜像Repository: ·由某特定的 docker 镜像的所有迭代版本组成的镜像仓库镜像名称name标签(tag):如 nginx:latest认证能力提供用户注册登录、登出能力索引提供镜像的索引信息方便检索一个容器镜像包含了两个部分一个是元数据其实就是由 dockerfile 构建出来的描述文件这个描述文件会说这个容器镜像有多少层每一层里面有什么内容它的checksum 这些信息都会记录下来还有最终的可执行文件在哪就是在存储数据里面就是在一个一个的 blob 里面真正占有空间的就是这些 blob。镜像仓库分类按是否对外开放划分也是研发人员常说的1公有仓库像阿里云、dockerhub等放到公有网络上不用登录就可以下载镜像供大家访问使用2私有仓库不对外开放往往位于私有网络只有公司内部人员可以使用。按供应商和面向群体划分(1)sponsor赞助registry第三方的registry供客户和docker社区版使用(2)mirror(镜像registry第三方的registry只让客户使用例如阿里云必须注册才能使用(3)vendor(供应商) registry由发布docker镜像的供应商提供的registry例如像Google 和Redhat提供了镜像仓库服务(4)private registry通过没有防火墙和额外的安全层的私有实体提供的registry仅供内部使用镜像仓库工作机制镜像仓库使用流程 通过docker login登录仓库docker pull拉取需要的镜像通过dockerfile或者commit等方式制作完镜像通过docker push上传到仓库常用的镜像仓库Docker HubDocker Hub是Docker提供的托管存储库服务用于查找容器映像并与您的团队共享。具有以下功能1个人可以注册私有仓库能够发布自己的镜像2提供镜像检索能力3提供海量官方和认证组织的镜像4从GitHub和Bitbucket自动构建容器镜像并将它们推送到Docker Hub5支持webhookwebhook是一种基于HTTP的回调函数,发生指定的事件时服务器会自动将相关的有效负载发送到客户端的 webhook URL。 私有仓库私有镜像仓库则是指部署在公司或组织内部用于自身应用Docker镜像存储、分发的镜像仓库。在构建公司内部使用的自动化发布系统的过程中从安全的角度出发应用的打包镜像一般情况下只会被存储在私有镜像仓库中CI/CD流程的衔接点也是通过向私有镜像仓库上传镜像和拉取镜像的操作来完成的镜像仓库命令docker login功能登陆到一个 Docker 镜像仓库如果未指定镜像仓库地址默认为官方仓库 DockerHub语法docker login [OPTIONS] [SERVER]关键参数-u :登陆的用户名-p :登陆的密码docker pull功能 从镜像仓库中拉取或者更新指定镜像语法docker pull [OPTIONS] NAME[:TAG|DIGEST]关键参数-a :拉取所有tagged镜像--disable-content-trust :忽略镜像的校验,默认开启docker push功能 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库语法docker push [OPTIONS] NAME[:TAG]关键参数-a :推送所有tagged镜像--disable-content-trust :忽略镜像的校验,默认开启docker search功能 从 Docker Hub查找镜像因docker网站被封该命令暂时国内无法实操需要国外网络联系。语法docker search [OPTIONS] TERM关键参数--no-trunc :显示完整的镜像描述-f 过滤条件:列出收藏数不小于指定值的镜像。docker logout功能登出一个 Docker镜像仓库如果未指定镜像仓库地址默认为官方仓库Docker Hub语法docker logout [SERVER]镜像命令docker images功能 列出本地镜像语法docker images [OPTIONS] [REPOSITORY[:TAG]]关键参数-a :列出本地所有的镜像含中间映像层默认情况下过滤掉中间映像层--digests :显示镜像的摘要信息-f :显示满足条件的镜像--format :指定返回值的模板文件--no-trunc :显示完整的镜像信息-q :只显示镜像ID。docker image inspect功能 查看镜像详细信息语法docker image inspect [OPTIONS] IMAGE [IMAGE...]docker tag功能 标记本地镜像将其归入某一仓库语法docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]容器命令run和psdocker run功能创建一个新的容器并运行一个命令语法docker run [OPTIONS] IMAGE [COMMAND] [ARG...]关键参数-d:后台运行容器并返回容器ID-i:以交互模式运行容器通常与-t同时使用-P:随机端口映射容器内部端口随机映射到主机的端口-p:指定端口映射格式为主机(宿主)端口:容器端口-t:为容器重新分配一个伪输入终端通常与-i同时使用--namenginx-lb:为容器指定一个名称-h mars:指定容器的hostname-e usernameritchie:设置环境变量--cpuset-cpus0-2 or --cpuset-cpus0,1,2:绑定容器到指定CPU运行-m :设置容器使用内存最大值--networkbridge:指定容器的网络连接类型--link[]:添加链接到另一个容器--volume , -v:绑定一个卷--rm:shell退出的时候自动删除容器docker ps功能 列出容器语法docker ps [OPTIONS]关键参数-a :显示所有的容器包括未运行的。-f :根据条件过滤显示的内容。--format :指定返回值的模板文件。如json或者table-l :显示latest的容器。-n :列出最近创建的n个容器。--no-trunc :不截断输出。-q :静默模式只显示容器编号。-s :显示总的文件大小。

相关新闻

MNE-Python中的信号空间分离(SSS)与Maxwell滤波技术详解:从原理到实践

MNE-Python中的信号空间分离(SSS)与Maxwell滤波技术详解:从原理到实践

MNE-Python中的信号空间分离(SSS)与Maxwell滤波技术详解:从原理到实践 【免费下载链接】mne-python MNE: Magnetoencephalography (MEG) and Electroencephalography (EEG) in Python 项目地址: https://gitcode.com/gh_mirrors/mn/mne-python 引言&#xff…

2026/7/21 18:10:31 阅读更多 →
5分钟快速上手AzerothCore-WoTLK:开源MMO服务器终极部署指南

5分钟快速上手AzerothCore-WoTLK:开源MMO服务器终极部署指南

5分钟快速上手AzerothCore-WoTLK:开源MMO服务器终极部署指南 【免费下载链接】azerothcore-wotlk Complete Open Source and Modular solution for MMO 项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk 还在为搭建魔兽世界私服而烦恼吗…

2026/7/21 18:10:32 阅读更多 →
AtlasOS专业指南:彻底解决Windows安装错误2502/2503

AtlasOS专业指南:彻底解决Windows安装错误2502/2503

AtlasOS专业指南:彻底解决Windows安装错误2502/2503 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and usability. 项目地址: https://gitcode.com/GitHub_Trending/atlas1…

2026/7/21 18:10:35 阅读更多 →

最新新闻

Django+Xadmin在线教育平台CentOS 6.5部署指南

Django+Xadmin在线教育平台CentOS 6.5部署指南

1. 项目背景与核心需求在线教育平台作为当前互联网教育的主流形态,对技术架构的稳定性和可维护性有着极高要求。这个基于DjangoXadmin的在线教育平台项目,需要部署到CentOS 6.5生产环境,并确保Python 3.5.1环境的正确配置。这种组合在实际部署…

2026/7/22 4:25:28 阅读更多 →
好用的数字人直播培训公司

好用的数字人直播培训公司

很多企业想用数字人直播降低成本,但自己摸索效率极低,选择一家靠谱的培训公司至关重要。好用的数字人直播培训公司,核心不是教你怎么操作软件,而是能帮你快速搭建起一套可执行的直播运营体系,包括形象克隆、话术配置、…

2026/7/22 4:25:28 阅读更多 →
RFID标签+手持机:治具全生命周期管理的数字化破局之道

RFID标签+手持机:治具全生命周期管理的数字化破局之道

在SMT/PCBA电子制造、汽车零部件加工、精密模具注塑等制造领域,治具是衔接产品切换与设备运行的关键载体。每一套铝合金治具、工装夹具或工艺托盘,都对应着专属的产品型号、PLC运行程序与生产工艺参数。然而,长期以来,治具管理停留…

2026/7/22 4:25:28 阅读更多 →
3分钟Windows系统大扫除:告别臃肿,重获清爽体验

3分钟Windows系统大扫除:告别臃肿,重获清爽体验

3分钟Windows系统大扫除:告别臃肿,重获清爽体验 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter a…

2026/7/22 4:25:28 阅读更多 →
CPT Markets:把外汇市场服务体验做扎实,更谨慎的使用者更容易感受到的清单

CPT Markets:把外汇市场服务体验做扎实,更谨慎的使用者更容易感受到的清单

对新手与注重稳健体验的外汇内容读者而言,“能看懂”往往比“堆概念”更重要。谈到CPT Markets时,以下重点写清解释是否通俗、规则是否易查、提示是否前置,以及服务是否具备连续性。外汇相关平台的价值,体现在长期一致性与信息呈现…

2026/7/22 4:25:28 阅读更多 →
LangChain 零基础快速上手:从 Hello World 到智能文档问答助手

LangChain 零基础快速上手:从 Hello World 到智能文档问答助手

一、引言:大模型浪潮下的开发困境 随着 ChatGPT 的爆火,大模型(Large Language Model, LLM)已成为开发者工具箱中的新宠。然而,当我们兴奋地拿到 OpenAI API Key,准备大干一场时,却常常陷入这样…

2026/7/22 4:24:27 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻