从零开始,Docker进阶之路(三):Docker镜像与命令

news2024/11/16 1:49:34

一、Docker核心名词

镜像文件、容器、仓库

镜像:简单理解为就是一个安装包,里面包含容器所需要运行的基础文件和配置信息,比如:redis镜像、mysql镜像等。

镜像的来源方式:

1.自己做镜像,比如自己开发微服务项目

2.拉取别人制作好的镜像,例如nginx、mysql、redis等。

容器:容器就是镜像运行的实例,容器状态分为初创建、运行、停止、暂停、删除,一个镜像可以创建多个不同的容器。

每个镜像文件都有自己的独立IP信息----轻量级的Linux服务器  虚拟化

我们可以把镜像看成是类,容器就是实例对象

仓库:仓库可以简单理解为,专门存储镜像文件的地方,类似于安卓手机市场,统一在手机市场下载开发者的安装包。

Docker官方仓库:https://hub.docker.com/ ----访问比较慢

二、Docker容器化项目三步骤

1.制作镜像文件(springboot项目等),类似于开发者开发安装应用程序打包

2.需要将我们制作好的镜像文件提交到docker仓库中,类似于开发者将自己的app应用程序发布到安卓手机助手中。

3.本地拉取我们docker仓库中的镜像文件,再交给我们容器运行,类似于用户从app市场中下载安装包运行。

三、Docker下载镜像原理

Docker pull 从远程docker官方仓库下载镜像,到本地,再使用容器运行该镜像。

注意的是:docker官方镜像仓库地址部署在国外,下载镜像比较慢,建议配置国内加速镜像。

四、Docker加载镜像配置 

https://hub.docker.com/search?q=redis&type=image ---在国外访问可能比较慢

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

科大镜像:https://docker.mirrors.ustc.edu.cn/

网易:https://hub-mirror.c.163.com/

阿里云:https://<你的ID>.mirror.aliyuncs.com

七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

五、阿里云加速镜像配置 

 阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了

命令按行输入:

cat /etc/docker/daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://自己的阿里云镜像.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. cat /etc/docker/daemon.json

    • cat 是一个用于查看文件内容的命令。
    • /etc/docker/daemon.json 是 Docker 守护进程的配置文件。
    • 这行命令的作用是查看当前 Docker 守护进程的配置。
  2. sudo mkdir -p /etc/docker

    • sudo 以超级用户权限执行命令。
    • mkdir 是用来创建目录的命令。
    • -p 参数表示如果父目录不存在,则创建它。
    • /etc/docker 是 Docker 配置文件的目录。
    • 这行命令的作用是确保 /etc/docker 目录存在,如果不存在,则创建它。
  3. sudo tee /etc/docker/daemon.json <<-'EOF'

    • tee 命令用于读取标准输入(stdin)的数据,并将其同时写入标准输出(stdout)和一个或多个文件。
    • /etc/docker/daemon.json 是 Docker 守护进程的配置文件。
    • <<-'EOF' 开始一个 Here 文档,允许你输入多行文本,直到你输入 EOF 标记。
    • 这行命令和接下来的几行文本块将配置信息写入到 Docker 守护进程的配置文件中。
  4. {

    • 这是 JSON 对象的开始标记。
  5. "registry-mirrors": ["https://XXXX.mirror.aliyuncs.com"]

    • 这是 Docker 配置的一部分,指定了 Docker 镜像加速器,这通常用于加速 Docker 镜像的下载速度。
  6. }

    • 这是 JSON 对象的结束标记。
  7. EOF

    • 标记 Here 文档的结束,告诉 tee 命令停止读取输入。
  8. sudo systemctl daemon-reload

    • systemctl 是管理 systemd 系统和服务的管理工具。
    • daemon-reload 命令告诉 systemd 重新加载所有服务单元。
    • 这行命令的作用是确保新的配置文件被 systemd 识别。
  9. sudo systemctl restart docker

    • restart 命令用于重启一个服务。
    • docker 是 Docker 服务的名称。
    • 这行命令的作用是重启 Docker 服务,以使新的配置生效。

查看镜像是否安装成功:

输入命令

docker info

 找到自己的镜像地址已显示,说明安装成功

六、Docker常用命令

1.docker --help  帮助命令

2.docker --version  查看版本信息

3.docker images  查看本地images镜像文件

docker rmi -f kibana:5.6.9   

  • rmi用于删除一个或多个docker镜像
  • -f 表示强制删除,即使有容器正在使用此镜像,也会被强制删除。
  • kibana:5.6.9 指定了要删除的docker镜像的名称和标签。kibana是镜像名,5.6.9是标签。

  • REPOSITORY 存储库名称
  • Tag  镜像的标签  不写版本号码 默认下载最新latest镜像
  • IMAGE ID  镜像id
  • CREATED 创建时间
  • SIZE 大小

docker images -a  列出本地所有可列出的docker镜像

docker images -q    只列出本地所有可列出镜像的ID

docker images --digests    显示镜像的摘要信息

docker images --no-trunc  显示镜像完整信息

docker image prune -a  删除未被使用的镜像

docker image prune -a --filter "until=168h"  清理特定时间前的镜像

4. 容器管理

 创建容器

docker  create:创建一个新的容器但不起动它

docker  run:创建新的容器并启动它。 -d 后台运行, -i 交互模式(保持容器一直运行), -t 分配伪终端等

docker run --name 容器名称 -p宿主机的端口号:容器内的端口号 -d 镜像名称:标签

docker run --name boyatop-tomcat -p 8081:8080 -d  tomcat:8
//每次运行都会创建一个新的容器

启动和停止容器

docker start:启动一个或多个已经停止的容器

docker stop:停止一个或多个正在运行的容器

docker restart:重启一个或多个容器

查看容器

docker ps:列出正在运行的容器

docker ps -a:列出所有容器,包括停止的容器。

docker inspect:查看容器的详细信息,如元数据、配置等

进入容器 

docker exec:在正在运行的容器中执行命令。通常与-it选项一起使用,以交互模式运行命令

docker attach:附加到正在运行的容器的标准输入、输出和错误流。

#首先使用下面的命令,查看容器ID(CONTAINER ID)
docker ps -a
#然后用下面的命令进入容器,就可以使用bash命令浏览容器里的文件:
docker exec it [CONTAINER ID] bash
#有的镜像没有bash命令,可以用对应的she11,比如sh
docker exec it [CONTAINER ID]sh

删除容器

docker rm:删除一个或多个容器。注意:只能删除不在运行状态的容器。如果要删除运行中的容器,需要使用-f选项强制删除。

查看容器日志 

docker logs:获取容器的日志输出。可以添加-f选项以持续打印日志。

容器与主机之间的操作

docker cp:用于在容器和主机之间复制文件或目录 

5.其他操作

docker  rename: 重命名一个容器。
docker  top: 查看容器中运行的进程。
docker  stats: 实时显示容器资源使用情况,如CPU、内存、网络I/0、磁盘I/O等
docker  system df:查看Docker镜像、容器和数据卷所占用的磁盘空间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2163229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3: readonly与shallowreadonl

目录 一.readonly 1.性质 2.作用 二.shallowReadonly 1.性质 2.作用 三.readonly 四.shallowReadonly 五.运行代码 Vue3中的readonly和shallowReadonly是两个用于创建只读响应式对象的函数。 一.readonly 1.性质 readonly函数会将一个对象或数组包装成一个完全只读…

22 基于51单片机的智能家居系统(DHT11、继电器、气体浓度监测)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;DHT11温湿度检测&#xff0c;CO&#xff0c;PM2.5检测&#xff0c;通过LCD1602显示&#xff0c;超过阈值报警&#xff0c; 继电器驱动风扇转动。通过按键切换选择设置各项…

【linux】gcc makefile

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.gcc如何完成02.gcc选项03.函数库与动静态链接静态链接动态链接库文件特点和用途动态链接版本和兼容性 04.makefile自动推导 01.gcc如何完成 预处理(进行宏替换) 预处理功能主要…

SAM核心代码注释总结

最近看sam2&#xff0c;顺便注释了下代码&#xff0c;方便回顾和分享。 PS: tensor的维度都基于默认参数配置。 SAM _build_sam sam模块包含三个部分&#xff0c;ImageEncoderViT、PromptEncoder和MaskDecoder&#xff1a; def _build_sam(encoder_embed_dim,encoder_depth…

【开源免费】基于SpringBoot+Vue.JS墙绘产品展示交易平台(JAVA毕业设计)

本文项目编号 T 049 &#xff0c;文末自助获取源码 \color{red}{T049&#xff0c;文末自助获取源码} T049&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

第Y1周:调用官方权重进行检测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、下载源码 从本周开始YOLO的学习啦。首先是先体验一下。教案选择的是YOLOv5s GITHUB的开源地址如下 github 开源地址 打开网页之后下载zip包解压到自己想…

Windows系统IP地址设置

目录 Windows系统IP地址设置一、背景二、设置步骤1、打开网络连接设置1) 在搜索栏输入“控制面板”&#xff0c;打开控制面板2) 选择“网络和Internet”&#xff0c;进入“网络和共享中心”。3) 进入网络连接设置 2、修改IP地址1) 选中你要修改的网卡&#xff0c;右键点击选择“…

使用Jlink打印单片机的调试信息

1.在工程中添加6个文件 除去RTT_Debug.h外的其他几个文件在jlink安装目录 RTT_Debug.h的内容如下 #ifndef _RTT_H_ #define _RTT_H_#include "SEGGER_RTT.h"#define STR_DEBUG //#define USART_DEBUG#define DBGLOG #define DBGWARNING #define DBGERROR#if def…

深度学习笔记(7)文本标注与NER

深度学习笔记&#xff08;7&#xff09;文本标注与NER 文章目录 深度学习笔记&#xff08;7&#xff09;文本标注与NER一、文本标注1.1文本标注工具doccano1.2 标注处理&#xff0c;bio标注 二、训练模型1.引入库2. 定义数据集3.建模4&#xff0c;模型训练5.评估6.训练 三.测试…

均衡功能,保障安全丨基于极海 G32A1445 汽车通用 MCU 的 BMU 应用方案

BMS电池管理系统是每个电动汽车车企不断优化改进的应用产品&#xff0c;其组成中的BMU用于实现电流检测、绝缘检测、SOC估算、容量累积、报警功能、充放电管理、远程监控等功能。BMU组成包括微控制器系统、充放电管理单元、CAN通信网络单元&#xff08;采集所有从控单体电池信息…

Python近红外光谱数据分析

ChatGPT4.0在近红外光谱数据分析、定性/定量分析模型代码自动生成等方面的强大功能&#xff0c;同时更加系统地学习人工智能&#xff08;包括传统机器学习、深度学习等&#xff09;的基础理论&#xff0c;以及具体的代码实现方法掌握ChatGPT4.0在科研工作中的各种使用方法与技巧…

YOLOv10改进 | 特征融合篇,YOLOv10添加iAFF(多尺度通道注意力模块),二次创新C2f结构,提升小目标检测能力

摘要 特征融合,即来自不同层或分支的特征的组合,是现代网络架构中无处不在的一部分。虽然它通常通过简单的操作(如求和或拼接)来实现,但这种方式可能并不是最佳选择。在这项工作中,提出了一种统一且通用的方案,即注意力特征融合(Attentional Feature Fusion),适用于…

轻掺杂漏极(LDD)技术

轻掺杂漏极&#xff08;LDD&#xff09;是一种低能量、低电流的注入工艺&#xff0c;通过该工艺在栅极附近形成浅结&#xff0c;以减少靠近漏极处的垂直电场。对于亚微米MOSFET来说&#xff0c;LDD是必需的&#xff0c;以便抑制热电子效应&#xff0c;这种效应会导致器件退化并…

blender设置背景图怎么添加?blender云渲染选择

Blender是一款功能强大的3D建模软件&#xff0c;它以流畅的操作体验和直观的用户界面而闻名。使用Blender&#xff0c;你可以轻松地为你的3D模型添加背景图片。 以下是具体的操作步骤&#xff1a; 1、启动Blender&#xff1a;首先&#xff0c;打开Blender软件。访问添加菜单&a…

从头开始:构建一个基于C/C++的线程池

手搓线程池 线程池工作原理和实现线程池工作原理1. 线程池的基本组成&#xff1a;2. 线程池的基本执行流程&#xff1a;3. 线程池的核心参数&#xff1a;4. 线程池的生命周期&#xff1a;5. 线程池的执行策略&#xff1a; 相关知识点线程与进程的比较读写锁互斥锁 基于C语言的线…

【云原生安全篇】Trivy助力离线Harbor漏洞扫描实践

【云原生安全篇】Trivy助力离线Harbor漏洞扫描实践 目录 1 概念 1.1 为什么需要离线漏洞扫描1.2 Trivy和Harbor 简介1.3 实现离线漏洞扫描的技术方案 2 实践&#xff1a;Trivy 为Harbor提供离线漏洞扫描 2.1 环境准备2.2 安装Trivy作为数据库离线包下载代理 2.2.1 通过包管理…

MySQL_连接查询

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

【大数据】数据中台怎么样助力企业创新和客户实践

在当今数字化时代&#xff0c;数据成为了企业竞争的关键因素。企业拥有大量的数据&#xff0c;但如何高效地利用这些数据&#xff0c;实现创新和提升客户体验&#xff0c;成为了一项重要的挑战。数据中台作为一种重要的数据管理和分析工具&#xff0c;发挥着关键的作用。本文将…

Maven 学习整理

1. Maven 简介 Maven 是 Apache 基金会推出的一个用于管理和构建 Java 项目的工具。它基于项目对象模型 (Project Object Model , 简 称: POM) 的概念&#xff0c;通过描述项目的依赖、结构、生命周期等&#xff0c;简化项目管理。 官网&#xff1a; https://maven.apache.org…

Spring、SpringBoot 框架功能学习

目录 一. Spring核心功能 二. Spring与SpringBoot区别 三. Spring与SpringMVC区别 四. SpringBoot与SpringCloud区别 五. 微服务组件 一. Spring核心功能 依赖注入&#xff08;DI&#xff09;&#xff1a;Spring的核心功能是通过依赖注入来管理对象之间的依赖关系。依赖注…