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

server/2024/10/18 18:34:40/

一、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.ppmy.cn/server/124765.html

相关文章

Linux便捷查询使用手册 第一章:引言

目录 1.1 什么是Linux&#xff1f; 1.1.1 Linux内核与其他Unix-like系统内核的比较 1.1.2 Linux内核与其他操作系统内核的不同 1.1.3 Linux内核的主要功能和组件 1.2 Linux的历史与发展 1.2.1 重要里程碑事件 1.2.2 重要Linux版本发布 1.3 Linux的发行版概述 1.3.1 主…

Redis实践之高级用法:管道、消息队列、事务、分布式锁

一、概念与简介&#xff1a; 管道&#xff08;Pipeline&#xff09;的使用&#xff1a; 使用 CreateBatch 方法创建一个批处理对象。将多个操作添加到批处理中&#xff0c;然后执行批处理以提高性能。 发布-订阅模式&#xff08;Pub/Sub&#xff09;的实现&#xff1a; 使用 Ge…

微信小程序公共样式:设计与实现指南

文章目录 前言一、小程序公共样式的概念和作用什么是公共样式&#xff1f;公共样式的作用 二、公共样式的需求分析三、如何编写小程序公共样式3.1 公共样式的命名规范3.2 公共样式的文件结构3.3 公共样式的内容设计局3.3.1 变量定义3.3.2 字体样式3.3.3 按钮样式3.3.4 间距与布…

Python 异步编程:如何从入门到精通

在现代编程实践中&#xff0c;异步编程已成为提高程序性能和效率的关键技术之一。Python&#xff0c;作为一种动态、解释型的高级编程语言&#xff0c;提供了强大的异步编程能力。本文将带你从异步编程的基础知识入手&#xff0c;逐步深入到实际应用&#xff0c;探索Python异步…

甄选范文“论软件架构建模技术与应用”,软考高级论文,系统架构设计师论文

论文真题 软件架构用来处理软件高层次结构的设计和实施,它以精心选择的形式将若干结构元素进行装配,从而满足系统的主要功能和性能需求。软件架构设计的首要问题是如何表示软件架构,即如何对软件架构建模。根据建模的侧重点不同,可以将软件架构模型分为结构模型、框架模型…

Java项目实战II基于Java+Spring Boot+MySQL的汽车销售网站(文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在数字化时…

JS对不同浏览器的检测问题

Navigator对象也称浏览器对象&#xff0c;该对象包含了浏览器的整体信息&#xff0c;如浏览器名称&#xff0c;版本号等。Navigator对象由Navigator浏览器率先使用&#xff0c;后来各方浏览器都开始支持Navigator对象&#xff0c;逐步成为一种标准。 一、Navigator对象的属性 …

万博智云CEO王嘉在华为全联接大会:以创新云应用场景,把握增长机遇

一、大会背景 2024年9月19-21日&#xff0c;第九届华为全联接大会将在上海世博展览馆和上海世博中心举办。作为华为的旗舰盛会&#xff0c;本次大会以“共赢行业智能化”为主题邀请了众多思想领袖、商业精英、技术专家、合作伙伴、开发者等业界同仁&#xff0c;从战略、产业、…