redis容器怎么用配置文件启动
宿主机怎样与虚机里的docker容器通信?
宿主机怎样与虚机里的docker容器通信?
一个非常好的问题。使用Docker时,宿主机和Docker容器之间、Docker容器和Docker容器之间,都需要进行服务间通信。
一,宿主机和Docker容器之间Docker启动容器时,指定服务端口,比如启动Redis时,端口为6379,这时如果需要访问Redis服务,就使用ip地址:端口,或者直接使用localhost:6379
在需要直接登录到容器时,可以使用docker命令,比如:
docker exec -it data_redis_1 bash其中data_redis_1时容器名称,可以通过docker ps查看当前容器信息:
二,Docker容器之间Docker容器快捷高效部署应用,资源编排定义和运行多个容器,通过docker-compose.yml配置文件声明各个服务,作为一个整体来创建和启动。
那么Docker容器之间怎么通信呢?显然是不应该使用IP地址的,应该使用和配置hostname,如果在不同子网,就增加networks信息。
1,配置hostname
以Redis为例,Redis服务被API服务调用,为Redis配置hostname: cache
2,引用hostname
API服务在application.yml中配置Redis连接信息时,使用hostname指定服务地址:
3,不同子网间配置networks信息
实际使用中经常将服务按照不同类别部署在不同子网中,这时需要指定networks信息。以数据层和接口层为例:
1)部署Redis时,配置networks为data,桥接模式
2)部署API服务时,声明networks信息,data是external外部子网
我是工作多年的Web应用架构师,陆续发布关于软件开发方面的文章,欢迎关注我,了解更多IT专业知识。
netty和tomcat区别?
1、作用不同:Tomcat 是 Servlet 容器,可以视为Web 服务器,而 Netty 是异步事件驱动的网络应用程序框架和工具用于简化网络编程,例如TCP和UDP套接字服务器。
2、协议不同: Tomcat 是基于 http 协议的 Web 服务器,而 Netty 能通过编程自定义各种协议,因为 Netty 本身自己能编码 / 解码字节流,所有Netty 可以实现, HTTP 服务 器、FTP 服务器、UDP 服务器、 RPC 服务器、 WebSocket 服务器、 Redis 的 Proxy 服务器、 MySQL 的 Proxy 服务器等等。