[docker note]

news/2025/11/4 23:54:17/文章来源:https://www.cnblogs.com/shiyuzhahan/p/19191707
# ==== Docker 傻瓜式笔记 ====
# 一句话总结:Docker 是用来"装程序的盒子",让程序在任何电脑上都能一模一样地运行
# 核心概念:
# 1. 镜像(Image):"盒子的模板",包含程序和运行环境(比如一个安装好Chrome的系统模板)
# 2. 容器(Container):"打开的盒子",是镜像运行起来的实例(比如用模板启动的一个Chrome窗口)
# 3. Dockerfile:"制作模板的配方",写着如何一步步制作镜像(比如"先装系统,再装Chrome")
# 4. docker-compose:"批量管理盒子的工具",当需要同时启动多个关联的盒子时使用(比如同时启动Chrome、浏览器插件、数据库)
$ docker login --username=十三山入秋 crpi-a2d41ehc80lzdlub.cn-hongkong.personal.cr.aliyuncs.com# ==== 一、基础镜像操作 ====# 1. 从仓库拉取镜像(下载模板)
# 格式:docker pull 镜像地址:版本
docker pull nginx:latest  # 拉取官方nginx镜像(latest是最新版本)
docker pull 你的阿里云仓库地址/镜像名:版本  # 拉取自己仓库的镜像# 2. 查看本地已有的镜像(查看已下载的模板)
docker images  # 列出所有镜像
docker images | grep 镜像名  # 搜索特定镜像(比如 docker images | grep nginx)# 3. 删除本地镜像(删除不需要的模板)
# 注意:必须先删除用这个镜像启动的容器才能删镜像
docker rmi 镜像名:版本  # 比如 docker rmi nginx:latest
docker rmi 镜像ID  # 也可以用镜像ID删除(镜像ID就是docker images里的一串字符)# 4. 拉取镜像失败后的缓存清理(拉不动时用)
docker system prune -a  # 清理所有未使用的镜像、容器、缓存(会删除没用的东西,放心用)# ==== 二、容器操作 ====# 1. 用镜像启动容器(用模板打开盒子)
# 格式:docker run [参数] 镜像名:版本
docker run -d --name 我的nginx -p 8080:80 nginx:latest
# 解释:
# -d:后台运行(盒子在后台跑,不占用终端)
# --name 我的nginx:给容器起个名字(方便后续操作)
# -p 8080:80:端口映射(把容器的80端口映射到电脑的8080端口,这样访问电脑的8080就等于访问容器的80)# 2. 查看正在运行的容器(查看打开的盒子)
docker ps  # 只看运行中的容器
docker ps -a  # 看所有容器(包括已停止的)# 3. 停止容器(关闭盒子)
docker stop 容器名或ID  # 比如 docker stop 我的nginx# 4. 启动已停止的容器(重新打开盒子)
docker start 容器名或ID  # 比如 docker start 我的nginx# 5. 重启容器(重启盒子)
docker restart 容器名或ID# 6. 进入容器内部(钻进盒子里操作)
docker exec -it 容器名或ID /bin/bash
# 解释:
# -it:交互式进入(可以输入命令)
# /bin/bash:进入后打开bash终端(类似Windows的cmd)
# 退出容器:输入 exit 回车# 7. 查看容器日志(看盒子里的程序输出)
docker logs -f 容器名或ID  # -f 表示实时刷新日志# 8. 删除容器(彻底删掉盒子,注意:数据会丢失)
# 必须先停止容器才能删除
docker rm 容器名或ID
docker rm -f 容器名或ID  # 强制删除(即使容器在运行中)# ==== 三、docker-compose 批量操作 ====
# 适用场景:需要同时启动多个关联容器(比如你的bytebot需要启动4个服务)
# 前提:有 docker-compose.yml 配置文件(里面写好了所有容器的启动规则)# 1. 启动所有服务(根据docker-compose.yml启动所有容器)
docker-compose up -d  # -d 表示后台运行
# 第一次运行会自动拉取镜像,之后会直接启动已有的容器
# docker-compose -f docker/docker-compose.yml up -d# 2. 停止所有服务(保留容器和数据)
docker-compose down# 3. 停止并删除所有容器+网络(但保留数据卷,比如数据库数据)
docker-compose down --volumes  # 谨慎使用,数据库数据可能会丢!# 4. 查看所有服务状态
docker-compose ps# 5. 查看某个服务的日志(比如查看bytebot-agent的日志)
docker-compose logs -f bytebot-agent# 6. 仅拉取镜像不启动(提前下载好所有需要的镜像)
docker-compose pull# 7. 强制重新构建镜像(如果修改了Dockerfile,需要重新制作镜像)
# 注意:如果用的是现成镜像(比如阿里云仓库的),不需要这个命令
docker-compose build# 8. 启动时不构建镜像(直接用本地已有的镜像,加速启动)
docker-compose up -d --no-build# ==== 四、常见问题解决 ====# 1. 拉取镜像太慢或失败
# 解决:配置阿里云镜像加速(前面教过),然后清理缓存
docker system prune -a# 2. 容器启动后马上退出
# 解决:查看日志找原因
docker logs 容器名或ID# 3. 端口被占用(启动时提示 port is already allocated)
# 解决:换一个端口映射,比如把 -p 8080:80 改成 -p 8081:80# 4. 忘记容器名或ID
# 解决:用 docker ps -a 查看所有容器信息# 5. 进入容器后没有vim等命令
# 解决:在容器内安装(以debian/ubuntu为例)
apt-get update && apt-get install -y vim

第一次运行 docker-compose up -d 时,对于每个服务的行为取决于本地是否已存在 image 字段指定的镜像,具体如下:

  1. 针对 postgres 服务(仅配置 image,无 build):
    本地若没有 crpi-xxx/postgres:16-alpine 镜像,会直接从远程仓库拉取该镜像,然后启动容器。

  2. 针对 bytebot-desktopbytebot-agentbytebot-ui 服务(同时配置 buildimage):

    • 若本地不存在 image 字段指定的远程镜像(如 crpi-xxx/bytebot-desktop:edge),则会先pull, 不过不行会通过 build 配置从对应的 Dockerfile 构建镜像,构建完成后将镜像命名为 image 字段的名称,再启动容器。
    • 若本地已存在该镜像(比如之前手动拉取过),则直接使用现有镜像启动容器,不会构建。

总结:第一次运行时,postgres 服务一定是拉取镜像;其他三个服务默认优先构建镜像(仅当本地完全没有对应镜像时),而非先拉取远程镜像。

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

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

相关文章

数据加工1

一、数据连接 1. 数据库连接 2. 上传数据文件 3. 管理数据源:左上角项目名 → 右键 → 返回项目列表 → 数据源 二、数据导入(将数据库下的物理表导入为数据模型) 新建 → 数据库表模型 → 搜索 → 导入目录 → 连接…

异常介绍

如果代码没有语法问题,可以运行,但会出运行时的错误,例如除零错误,下标越界等问题,这种在运行期间检测到的错误被称为异常。 出现了异常必须处理,否则程序会终止执行,用户体验会很差。 Phthon 支持程序员自己处…

AE学习

AE学习 1. 音乐时间调整 合成设置再把图层向右拖拽即可

微服务的挑战与优势,什么时候上微服务?

我不排除微服务,但是我想说不要为微服务而微服务。曾经在一个公司做一个物流系统,每天的单都不到100 200单,直接上微服务,除了高大上和给公司带来更大的支出外,别无好处,这个量直接单体应用都撑得住。有时候简单…

利用 chrome-devtools MCP 让 AI 操作便携版浏览器(可指定 Data)

利用 chrome-devtools MCP 让 AI 操作便携版浏览器(可指定 Data)说明:文中出现的具体视频链接、演示路径、用户名、端口号等均为示例,读者需按需替换。 1. 需求 (1)使用 chrome-devtools-mcp 打开 https://www.b…

[OLAP] 技术选型对比:Clickhouse vs Doris

0 序Doris和ClickHouse是两款热门的OLAP数据库,它们在架构、功能、性能和易用性等方面存在差异1 架构设计Doris:采用MPP架构,分为Frontend(FE)和Backend(BE)节点。FE 负责元数据管理和查询规划,BE 负责数据存储…

计算天数

程序示例: # date = input(Enter a date: ) # 2024-12-21 # year = int(date[0:4]) # month = int(date[5:7]) # day = int(date[8:]) date = input(Enter a date: ).split("-") year = int(date[0]) month…

「学习笔记」正则表达式

正则表达式 正则表达式(Regular Expression,简称 Regex 或 RegExp)是一种用来匹配字符串中字符组合的模式。 正则表达式是一种用于模式匹配和搜索文本的工具。 正则表达式提供了一种灵活且强大的方式来查找、替换、…

11月4日日记

1.今天工程实训学习了铁道的基本知识 2.明天先学习离散数学,然后是马哲 3.数据库连接如何通过 Java Bean 封装实现 “配置与代码分离”?

三、字符设备驱动(基于北京迅为电子)

一、概述 字符设备的驱动包括设备号、字符设备结构体、自动创建设备节点、fops结构体 二、知识点设备号:一个32bit的数据,高12bit表示主设备号,低20bit表示次设备号 宏定义:MAJOR(dev),MINOR(dev),MKDEV(ma,mi) 分…

使用1panel一键建站

摘要 文章最初发布于:使用1panel一键建站 使用宝塔建站时,因为测试用的SSL证书迟迟无法申请成功。偶然发现1Panel可以丝滑申请泛域名证书,并且能自动续签。果断尝试以下,以下是一些踩坑记录。 坑1、SSL。宝塔泛域名…

React 中 useCallback 的基本使用和原理解析

React 中 useCallback 的基本使用方法 useCallback 是 React 的一个核心 Hook,用于​缓存函数定义​,避免组件重新渲染时重复创建函数实例。以下是其基本使用方法: 1. 基本语法 const memoizedCallback = useCallba…

SpringCloud和K8s实现的微服务各有什么优缺点

Spring Cloud 强调应用层解决方案,开发友好,适合 JVM 业务逻辑集中的团队;Kubernetes 原生(配合 Service/Ingress、Envoy/istio 等)倾向平台化、基础设施侧解决,适合容器化、跨语言、大规模生产环境。1. 核心理念…

Zabbix告警:value cache working in low memory mode

随着监测主机的增加,Zabbix 在使用一段时间后告警提示 value cache working in low memory mode(值缓存处于低内存模式下运行)。Value cache(值缓存) 是用于存储监控项最近取值的内存区域,它能加快趋势计算、触发…

go语言实现腾讯股票获取示例(并发)

package mainimport ("encoding/csv""flag""fmt""io""log""net/http""os""strconv""strings""sync""tim…

出海 AI 公司招 Java 大佬|北京

公司介绍 Thunderbit 是一款一站式 AI Data Agent。我们专注于为商业用户提供高效的网页数据抓取能力。接下来半年,我们将发布重要升级,推出基于智能 Agent 的新功能,使数据抓取与处理更加精准高效 ~ 公司融资 510…

在欧拉系统上安装openGauss数据库

在欧拉系统上安装openGauss数据库:完整指南与问题解决 前言 在欧拉系统(openEuler)上安装openGauss数据库是一个常见的需求,但过程中可能会遇到各种问题。本文记录了完整的安装过程、遇到的问题及解决方案,希望能…

2025.11.4总结

今天继续软考的学习 今天学复习了几个排序的基本概念。还有软件工程的软件过程模型和敏捷方法。 除此之外在昨天发现一个微信小程序:软考达人 。里面有历年真题联系,章节练习,知识点学习等很多功能,是个免费的程序…

医疗非结构化数据价值挖掘:文档抽取技术的工作原理与场景实践

在当今的医疗健康领域,数据正以前所未有的速度增长。这其中,绝大部分是非结构化数据,如临床病历、出院小结、病理报告、医学影像报告、科研文献和保险单据等。这些文档中蕴含着宝贵的患者信息、诊疗经验和医学洞见,…