docker & k8s

文章发布时间:

最后更新时间:

docker

docker net

容器,宿主机,外网。容器之间用docker dns:服务名称;主机/外网->容器:端口映射;容器->主机:172.18.0.2;容器->外网:直接访问

能访问外部网络,但是和主机并不直接相连,除非配置端口映射。每个network都相当于一个子网,每个容器都有自己的ip,网关是主机上的一个虚拟端口。

与外部网络:

  1. NAT 转换: Docker 主机上的 iptables 规则会自动将容器的内部 IP 地址(例如 172.18.0.2)转换为 Docker 主机的外部 IP 地址。这个过程称为 网络地址转换 (NAT)
  2. 访问外部: 请求以 Docker 主机的身份发送到外部网络。
  3. 返回数据: 外部服务器将响应发送回 Docker 主机,iptables 规则再将数据包转发回正确的容器。

docker compose

DockerFile 用于声明一个容器的镜像。RUN会嵌套一层镜像,用于镜像构建阶段,配置环境。CMD用于设置每次run容器的时候的默认命令。

docker compose 用于创建一系列容器。配置:容器名字,端口映射,存储卷,网络……

用 docker compose up的时候会检查dockerfile,docker compose是否改动来判断是否重新拉取镜像,构建镜像,启动容器。

# 确保使用最新配置、最新镜像并重新创建容器 docker compose up -d --build --force-recreate