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。

相关推荐
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
深圳老胡4 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
Because_of_Her14 天前
并查集-听课笔记
笔记·算法·并查集
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
玉&心4 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing4 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)4 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
陈卫军老师4 天前
陈卫军:把口味写在一张纸上,店才稳得住
经验分享·笔记·流量运营