在这篇文章中,我们将带领您了解从SpringApp的全貌,包括docker-compose获取Mongodb连接上的“异常打开套接字”的相关情况。同时,我们还将为您介绍有关'docker-compos
在这篇文章中,我们将带领您了解从Spring App的全貌,包括docker-compose获取Mongodb连接上的“异常打开套接字”的相关情况。同时,我们还将为您介绍有关'docker-compose' 不是使用 docker-compose 和 docker-machine、25.docker compose 简介 和 docker-compose.yml 参数介绍、com.mongodb.MongoSocketOpenException:异常打开套接字、Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'的知识,以帮助您更好地理解这个主题。
本文目录一览:- 从Spring App(docker-compose)获取Mongodb连接上的“异常打开套接字”(springboot mongodb 查询)
- 'docker-compose' 不是使用 docker-compose 和 docker-machine
- 25.docker compose 简介 和 docker-compose.yml 参数介绍
- com.mongodb.MongoSocketOpenException:异常打开套接字
- Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'
从Spring App(docker-compose)获取Mongodb连接上的“异常打开套接字”(springboot mongodb 查询)
ports
中的 docker-compose
指令将容器端口发布到主机计算机。容器在暴露的端口上相互通信。您可以测试一个容器是否可以使用netcat到达另一个容器。
docker exec -it messaging-api6 bash
> apt-get install netcat
> nc -z -v api-database4 27030
> nc -z -v api-database4 27017
'docker-compose' 不是使用 docker-compose 和 docker-machine
如何解决''docker-compose'' 不是使用 docker-compose 和 docker-machine
我刚开始使用 Docker,我在 VirtualBox 上使用 docker-machine,就像我在旧 Mac 上一样。 docker-machine
命令工作正常,我现在正在尝试使用 docker-compose 来运行多容器应用程序。我记得在手册中读过这句话“docker-machine
现在可以运行 docker-compose
命令,有或没有 -
”,但我再也找不到它了,所以我被困在如何使用docker-compose .. 你能指出我在正确的方向上使用 docker 机器的 compose 吗?一如既往,非常感谢您的帮助。 干杯
25.docker compose 简介 和 docker-compose.yml 参数介绍
1. docker compose概念 文档 https://docs.docker.com/compose/compose-file/compose-versioning
一个基于 docker 的工具
可以通过一个 yml 文件定义多容器的 docker 应用
通过一条命令就可以根据 yml 文件的定义 去创建或者管理这多个容器
2 docker compose 版本 2 与 版本 3 的区别
最大的区别
version 2 只能用于单机
version 3 可用于多机
3. docker-compose.yml
Services
一个 service 代表一个 container , 这个 container 可以从 dockerhub 的 image 来创建, 或者从本地的 Dockerfile build出来的image 来创建
service 的启动 类似与 docker run , 我们可以给其指定 network 和 volume . 所以可以给 service 指定 network 和 volume 的引用
eg :
docker run -d --name db -v db-data:/var/liv/postgresql/data --network back-tier postgres:9.4
services:
db: #service 的名称为 db
image: postgres:9.4 #service image 为 postgres:9.4 这是从远程拉取的
volumes:
- "db-data:/var/liv/postgresql/data" #将外部db-data挂载到container 的 /var/liv/postgresql/data 内
networks:
- back-tier #网络为 back-tier
eg2:
docker run -d --link db --link redis --network back-tier worker
services:
worker:
build: ./worker
links:
- db
- redis
networks:
- back-tier #在同一个网络上 不需要links
Volumes:
上面 的
volumes:
- "db-data:/var/liv/postgresql/data" #将外部db-data挂载到container 的 /var/liv/postgresql/data 内
会有单独的一个 volumes (与 services 同级别) 对db-data 进行 阐述
类似于 docker volume create db-data
eg:
volumes:
db-data:
Nerworks:
上面 的
networks:
- back-tier #在同一个网络上 不需要links
会有单独的一个 networks (与 services 同级别) 对back-tier 进行 阐述
类似于 docker nerwork create -d bridge back-tier
networks:
front-tier:
driver: bridge
back-tier:
driver: bridge
4编写 docker-compose.yml
# docker compose api 版本
version: ''3''
services:
# 定义了 两个 service 分别是 名字分别是 wordpress 和 mysql
wordpress:
#image 为 word press
image: wordpress
#本地 8888 端口 映射 容器 80 端口
ports:
- 8888:80
#wordpress 连接数据库 的 host 为 mysql , passwword 为 root 类似于 -e
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_PASSWORD: root
#指定连接 的网络 为 my-bridge
networks:
- my-bridge
mysql:
image: mysql:5.7.27
# 数据库 root 的 连接密码 和 所使用的数据库名称
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
# 外部 mysql-data 挂载到 容器内的 /var/lib/mysql
volumes:
- mysql-data:/var/lib/mysql
#指定连接 的网络 为 my-bridge
networks:
- my-bridge
# 定义 volumes
volumes:
mysql-data:
# 定义 networks
networks:
my-bridge:
driver: bridge
com.mongodb.MongoSocketOpenException:异常打开套接字
如何解决com.mongodb.MongoSocketOpenException:异常打开套接字
能帮帮我吗。我尝试在ubuntu服务器上部署应用程序。我使用docker-compose up。出现此错误。
com.mongodb.MongoSocketopenException: Exception opening socket
spring-mongo | at com.mongodb.internal.connection.socketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo | at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo | at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo | at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
spring-mongo | Caused by: java.net.ConnectException: Connection refused (Connection refused)
spring-mongo | at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_212]
spring-mongo | at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_212]
spring-mongo | at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_212]
spring-mongo | at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_212]
spring-mongo | at java.net.socksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_212]
spring-mongo | at java.net.socket.connect(Socket.java:589) ~[na:1.8.0_212]
spring-mongo | at com.mongodb.internal.connection.socketStreamHelper.initialize(SocketStreamHelper.java:63) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo | at com.mongodb.internal.connection.socketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo | at com.mongodb.internal.connection.socketStream.open(SocketStream.java:65) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo | ... 3 common frames omitted
Dokerfile
FROM openjdk:8-jdk-alpine
ADD target/spring-mongo.jar spring-mongo.jar
ENTRYPOINT ["java","-jar","spring-mongo.jar"]
application.properties
spring.data.mongodb.host=mymongodb
spring.data.mongodb.port=27017
spring.data.mongodb.database=mongo
spring.data.mongodb.repositories.enabled=true
docer-compose.yml
version: "3"
services:
mymongodb:
image: mongo:latest
container_name: "mymongodb"
ports:
- 27017:27017
spring-mongo:
image: spring-mongo:1.0
container_name: spring-mongo
ports:
- 8080:8080
links:
- mymongodb
解决方法
在您的 docker-compose.yml 中,您仅将Spring Boot应用程序链接到mongodb。
在您的 application.properties 中,您使用的mongodb不是有效的主机。
您需要为spring应用程序传递环境变量。为此,您可以在 docker-compose.yml 中执行类似的操作。
version: "3"
services:
mymongodb:
image: mongo:latest
container_name: "mymongodb"
ports:
- 27017:27017
spring-mongo:
image: spring-mongo:1.0
container_name: spring-mongo
ports:
- 8080:8080
environment:
- MONGO_HOST=mymongodb
links:
- mymongodb
在您的 application.properties 中,
spring.data.mongodb.host=${MONGO_HOST}
尝试 depends_on ,而不是链接, 它对我有用。
version: "3"
services:
mymongodb:
image: mongo:latest
container_name: "mymongodb"
network_mode: host
restart: always
ports:
- 27017:27017
spring-mongo:
image: spring-mongo:1.0
container_name: spring-mongo
network_mode: host
restart: always
ports:
- 8080:8080
depends_on:
- mymongodb
Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'
如何解决Compose 文件 ''./docker-compose.yml'' 无效,因为: services.docker-image 的配置选项不受支持:''update_config''
我正在尝试使用 docker-compose 创建一些副本,但我不断收到相同的错误
ERROR: The Compose file ''./docker-compose.yml'' is invalid because: Unsupported config option for services.docker-image: ''update_config''
version: "3"
services:
docker-image:
build: .
replicas: 5
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
解决方法
您的 docker-compose.yml
文件的格式无效。请尝试以下操作:
version: "3"
services:
docker-image:
build: .
deploy:
replicas: 5
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
我们今天的关于从Spring App和docker-compose获取Mongodb连接上的“异常打开套接字”的分享就到这里,谢谢您的阅读,如果想了解更多关于'docker-compose' 不是使用 docker-compose 和 docker-machine、25.docker compose 简介 和 docker-compose.yml 参数介绍、com.mongodb.MongoSocketOpenException:异常打开套接字、Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'的相关信息,可以在本站进行搜索。
本文标签: