小编Qui*_*ans的帖子

使用命名方案指定 Docker Swarm 服务的容器名称

如何指定服务创建的容器的名称?

我知道我可以使用带有主机名的命名模板,例如:

Docker service create –name serviceName –replicas 2 –network skynet  
--hostname=”{{.Node.Hostname}}-{{.Task.Slot}}” imageName
Run Code Online (Sandbox Code Playgroud)

这为我的容器创建了整洁的主机名,但是我可以使用常规容器名称实现相同的目标吗?

docker docker-swarm

5
推荐指数
0
解决办法
1710
查看次数

Docker主机名在两个微服务之间进行通信

它现在如何运作:

Microservice X使用静态ip向Microservice Y发出REST API请求

http://{ip-address}:{port}/doSomething
Run Code Online (Sandbox Code Playgroud)

问题:

问题是我不能保证静态ip.我不想通过使用docker主机名来解决这个问题:

http://hostname:{port}/doSomething
Run Code Online (Sandbox Code Playgroud)

我尝试通过在docker-compose中创建一个使用过的已定义网络来实现这一点:

    #part of docker-compose file
    streamapp:
      hostname: twitterstreamapp
      image: twitterstreamapp
      container_name: twitterstreamapp
      restart: always
      ports:
        - '8090:8080'
      build:
        context: ./TwitterStream
        dockerfile: Dockerfile

    storeapp:
      hostname: twitterstoreapp
      image: twitterstoreapp
      container_name: twitterstoreapp
      restart: always
      ports:
        - '8095:8080'
      build:
        context: ./TwitterStore
        dockerfile: Dockerfile
      depends_on:
        - 'mysql-db'
      networks:
        - backend

  volumes:
    MyDataVolume:

  networks:
    backend:
      driver: bridge
Run Code Online (Sandbox Code Playgroud)

我可以从容器X ping容器Y.但不是Curl例如.我该如何解决这个问题,或者这不是达到我想要的最佳方式.

docker microservices docker-compose

3
推荐指数
1
解决办法
1573
查看次数

RabbitMQ 队列的第一条消息导致通道关闭

发送到我的队列的第一条消息总是失败。从第二个开始,一切正常!

堆栈跟踪

不确定这是否可读,所以:

Created new connection: rabbitConnectionFactory#1b940034:0/SimpleConnection@2c52fbff [delegate=amqp://guest@10.0.0.10:5672/, localPort= 36370]

Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'auto_delete' for exchange 'rabbitmq_exchange' in vhost '/': received 'false' but current is 'true', class-id=40, method-id=10)
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会发生这种情况,因为我每次都在新的 VM(AWS EC2 实例)上启动它。“电流是真的”怎么可能?

我想在 Spring Boot 发布者中配置错误:

在此处输入图片说明

不确定这是否可读,所以:

@Configuration
public class RabbitMqConfig {
    @Bean
    Queue queue() {
        return new Queue(System.getenv("RABBITMQ_QUEUE_NAME"), true,false, false);
    }

    @Bean
    DirectExchange exchange() {
        return new DirectExchange(System.getenv("RABBITMQ_EXCHANGE_NAME"), true, false);
    }

    @Bean
    Binding binding(Queue queue, DirectExchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with(System.getenv("RABBITMQ_ROUTING_KEY"));
    } …
Run Code Online (Sandbox Code Playgroud)

rabbitmq spring-rabbit

0
推荐指数
1
解决办法
8710
查看次数