docker & k8s
文章发布时间:
最后更新时间:
最后更新时间:
docker
docker net
容器,宿主机,外网。容器之间用docker dns:服务名称;主机/外网->容器:端口映射;容器->主机:172.18.0.2;容器->外网:直接访问
能访问外部网络,但是和主机并不直接相连,除非配置端口映射。每个network都相当于一个子网,每个容器都有自己的ip,网关是主机上的一个虚拟端口。
与外部网络:
- NAT 转换: Docker 主机上的
iptables 规则会自动将容器的内部 IP 地址(例如
172.18.0.2)转换为 Docker 主机的外部 IP 地址。这个过程称为 网络地址转换 (NAT)。 - 访问外部: 请求以 Docker 主机的身份发送到外部网络。
- 返回数据: 外部服务器将响应发送回 Docker 主机,iptables 规则再将数据包转发回正确的容器。
docker compose
DockerFile 用于声明一个容器的镜像。RUN会嵌套一层镜像,用于镜像构建阶段,配置环境。CMD用于设置每次run容器的时候的默认命令。
docker compose 用于创建一系列容器。配置:容器名字,端口映射,存储卷,网络……
用 docker compose up的时候会检查dockerfile,docker compose是否改动来判断是否重新拉取镜像,构建镜像,启动容器。
# 确保使用最新配置、最新镜像并重新创建容器 docker compose up -d --build --force-recreate