Docker 服务名总结笔记(超清晰版)

一、Docker 里到底有哪些"名字"?

Docker 里有 3 种名字,很多人会混淆:

名称 示例 出现位置 用途 是否影响 MySQL 主从
容器名(container_name) mysql-container docker run / compose 给人看的名字,用于 docker 命令 ❌ 不影响
服务名(service name) mysql docker-compose.yml Docker 内部 DNS 主机名 ✔ 仅在 compose 内部网络有效
主机名(hostname) 默认=容器名 容器内部 Linux 主机名 ❌ 一般不用
IP 地址 192.168.10.143 宿主机 / 局域网 跨容器、跨服务器通信 ✔ 经常用

二、什么是 Docker 服务名?

只有 docker-compose.yml 才有服务名。

例如:

yaml

复制代码
services:
  mysql:
  redis:
  backend:

这里的:

  • mysql

  • redis

  • backend

就是 服务名(service name)

✔ 服务名的作用

在 Docker Compose 内部网络中:

复制代码
backend → mysql

就像访问一个域名一样。

✔ 服务名 = Docker 内部 DNS 主机名

Compose 会自动创建一个内部网络:

复制代码
mysql → 172.18.0.2
redis → 172.18.0.3
backend → 172.18.0.4

所以 Django (web)可以这样访问 MySQL:

复制代码
HOST = "mysql"

三、docker run 没有服务名

你这条命令:

复制代码
docker run --name mysql-container ...

这里的:

复制代码
--name mysql-container

容器名,不是服务名。

docker run 不会创建 service name。

四、你为什么感觉"我部署项目时没用到服务名"?

因为你部署主从复制时:

  • 主库是一个容器

  • 从库是另一个容器

  • 它们之间通过 宿主机 IP 通信

你的主从复制命令是:

复制代码
MASTER_HOST='192.168.10.143'

所以你根本不会用到:

  • mysql

  • mysql-master

  • mysql-slave

这些 service 名。

你用的是 IP,不是 Docker 内部网络。

五、TLS 证书到底应该匹配什么?

最关键的一句话:

🔥 TLS 证书必须匹配你在 CHANGE MASTER TO 里写的 MASTER_HOST。

你写的是:

复制代码
MASTER_HOST='192.168.10.143'

所以证书必须:

复制代码
mkcert 192.168.10.143

和 service 名完全无关。

六、什么时候才需要用服务名?

只有一种情况:

✔ 主库和从库都在同一个 docker-compose.yml 里

例如:

yaml

复制代码
services:
  mysql-master:
  mysql-slave:

主从复制写法:

复制代码
MASTER_HOST='mysql-master'

证书必须:

复制代码
mkcert mysql-master

但现在不是这种架构。

七、最终总结(最重要)

我给你一句最关键的总结:

docker-compose 才有服务名;docker run 没有服务名。 主从复制使用什么 Host,就必须用这个 Host 来生成 TLS 证书。 你现在用的是 IP,所以证书必须用 IP。

相关推荐
摇滚侠5 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
推送者7 小时前
用宠物照片制作桌宠:从AI拆帧到九点标定的本地化实现笔记
笔记·宠物·用宠物照片制作桌宠
一条破秋裤7 小时前
16_TIM编码器接口测速
笔记·stm32·学习
tju新生代魔迷7 小时前
Verilog HDL 学习笔记(十)| 第10章 时序和延迟
笔记·学习·fpga开发
野熊佩骑8 小时前
Kubernetes实战系列文章(三) 之 K8S运维常用命令
linux·运维·docker·微服务·云原生·容器·kubernetes
血小板要健康9 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
浔溺9 小时前
al+大数据每日学习笔记31
大数据·笔记·学习
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 9 章 跨域问题 阅读笔记 27
spring boot·笔记·okhttp
山岚的运维笔记9 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
噜~噜~噜~10 小时前
操作系统笔记-2.3.6 管程
笔记·操作系统