K8S实战
01、K8s实战:Windows10安装Docker,配置阿里云加速器
02、K8s实战:基础知识之简介
03、K8s实战:基础知识之组件
04、K8s实战:Centos7.6yum安装Docker,配置阿里云加速器
05、K8s实战:Centos7.6安装dockercompose
06、K8s实战:Centos7.6使用Ansible安装K8S(测试单节点)
07、K8s实战:Dockercompose安装中文版GitLab,配置SSH免密登录
08、K8s实战:Centos7.6安装私服Harbor
09、K8s实战:SpringBoot使用jib打包Docker镜像至私服
10、K8s实战:dockercompose之网络设置
11、K8s实战:使用开源项目io.fabric8之docker
12、K8s实战:二进制方式搭建K8S集群(环境准备)
13、K8s实战:二进制方式搭建K8S集群(完结)
14、K8s实战:K8S管理平台Rancher安装及集群导入
15、K8s实战:陈述式管理之kubectl常用命令
16、K8s实战:声明式管理示例之K8S部署Nginx及修改删除
17、K8s实战:K8S存储Volume之ConfigMap
18、K8s实战:K8S存储Volume之Secret
19、K8s实战:K8S存储之emptyDir+hostPath
20、K8s实战:K8S存储之NFSPVPVC
21、K8s实战:K8S控制器之ReplicaSet
22、K8s实战:K8S控制器之Deployment
23、K8s实战:K8S控制器之DaemonSet
24、K8s实战:K8S控制器之JobCronJob
25、K8s实战:K8S之Service
26、K8s实战:K8S之Ingress
27、K8s实战:K8S之Schedule
28、K8s实战:K8S之Helm安装与配置
29、K8s实战:K8S之部署微服务项目实战
本文档使用 MrDoc 发布
-
+
首页
10、K8s实战:dockercompose之网络设置
### **简介** 1、 Compose是用于定义和运行多容器Docker应用程序的工具您可以使用Compose文件配置应用程序的服务然后,使用单个命令,从您的配置中创建并启动所有服务; 2、 Compose具有用于管理应用程序整个生命周期的命令:; - 启动,停止和重建服务 - 查看正在运行的服务的状态 - 流运行服务的日志输出 - 对服务运行一次性命令 每一个容器都是独立且隔离的网络,容器之间通信时,因为不在同一个局域网中,且IP不固定,若不代理,则无法通过主机名或者IP进行通信,为了解决这种现状,可通过compose网络设置,让容器归属于同一个局域网中,则可通过主机名进行通信,; ### **准备工作** 1、 docker; 2、 docker-compose; 3、 springboot项目(基于上篇文章添加了数据库访问,注意数据库地址写的不是IP);   ### **集成步骤** 1、 推送项目镜像至私服(参照上篇文章);  2、 编写compose(不配置网络); ```python vim docker-compose.yaml # 添加内容 version: '3' services: # 数据库 db_mysql: image: mariadb:10.4.12 restart: always environment: MYSQL_ROOT_PASSWORD: 123456 ports: - 3307:3306 demo_k8s: image: 192.168.58.173/library/demo-kubenetes:2.3.0 restart: always ports: - 9090:8080 ``` 启动; ```python # 启动 docker-compose up ``` 访问test接口访问数据库报错,原因是因为启动了两个容器,网络隔离,此时数据库地址为db_mysql, 该容器并无法解析此地址。  启动会自动创建网络 名称规则为当前compose文件加上_default  查看docker网络列表 ```python docker network ls ```  网络模式分类 ```python # docker默认的网络模式,这种模式容器直接可以互相通讯,但无法和宿主机通讯 network_mode: "bridge" # host表示容器共享宿主机的ip和端口号。容器中不会虚拟自己的网卡和ip,当你查看容器ip的时候,其实是宿主机的ip network_mode: "host" # 使用none模式时容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等 network_mode: "none" network_mode: "service:[service name]" # container是共享容器ip地址和端口 network_mode: "container:[container name/id]" ``` 重新配置yaml ```python version: '3' services: # 数据库 db_mysql: image: mariadb:10.4.12 restart: always environment: MYSQL_ROOT_PASSWORD: 123456 ports: - 3307:3306 # 服务网络设置 networks: # 使用网络名 demo_network: aliases: - db_mysql demo_k8s: image: 192.168.58.173/library/demo-kubenetes:2.3.0 restart: always ports: - 9090:8080 networks: demo_network: # 设置容器固定IP ipv4_address: 172.19.0.222 # 网络设置 networks: # 自定义网络名称 demo_network: driver: bridge ipam: config: # 网络号段 - subnet: 172.19.0.0/16 ``` 重启并访问 
李智
2025年3月17日 13:28
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码