标签: docker-compose

来自Docker容器的ERR_EMPTY_RESPONSE

我一直在尝试在最近几个小时内解决这个问题,但是我陷入了困境。

我有一个非常简单的Dockerfile,看起来像这样:

FROM alpine:3.6
COPY gempbotgo /
COPY configs /configs
CMD ["/gempbotgo"]
EXPOSE 8025
Run Code Online (Sandbox Code Playgroud)

gempbotgo只是运行网络服务器和其他一些东西的go二进制文件。该网络服务器在8025上运行,并且应该向世界问好。

我的问题是暴露端口。我这样运行容器(构建后)

docker run --rm -it -p 8025:8025 asd
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好,但是当我尝试在浏览器中打开127.0.0.1:8025或尝试wget时,我只是得到一个空响应。Chrome:ERR_EMPTY_RESPONSE

Windows 10系统上的防火墙使用了该端口,但不受该端口的限制。仅在我的“ Windows上的Ubuntu上的Bash”终端上运行不带容器的go二进制文件,然后浏览至127.0.0.1:8025即可顺利进行。其他地址返回了“ ERR_CONNECTION_REFUSED”,例如127.0.0.1:8030,因此该端口上肯定有活动的东西。

然后,我带着

docker exec -it e1cc6daae4cf /bin/sh
Run Code Online (Sandbox Code Playgroud)

并在那里用wget进行检查。也没有问题。使用“ Hello World”下载index.html文件

有什么想法为什么码头工人不发送任何数据?我也用docker-compose运行了我的容器,但没有任何区别。

我还在外部托管的VPS上运行了容器。那里同样的问题...(Debian)

我的代码:(注意Makefile) https://github.com/gempir/gempbotgo/tree/docker

编辑:

在收到一些评论后,我将Dockerfile更改为多阶段构建。现在是我的Dockerfile:

FROM golang:latest
WORKDIR /go/src/github.com/gempir/gempbotgo
RUN go get github.com/gempir/go-twitch-irc \
    && go get github.com/stretchr/testify/assert \
    && go get github.com/labstack/echo \
    && go get github.com/op/go-logging
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . …
Run Code Online (Sandbox Code Playgroud)

windows bash docker docker-compose

1
推荐指数
2
解决办法
2716
查看次数

Docker撰写无法执行mongodb脚本文件

我已经关注了Matt Raible的帖子 https://developer.okta.com/blog/2017/06/20/develop-microservices-with-jhipster ...我在本地机器上运行docker-compose时遇到错误.

向我显示的错误是:

➜~cdwork/jhipster/microservices/docker

➜泊坞木码头组成

Building store-mongodb-node 
Step 1/2 : FROM mongo:3.4.8
 ---> 917819fa18fd
Step 2/2 : ADD mongodb/scripts/init_replicaset.js init_replicaset.js
ERROR: Service 'store-mongodb-node' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder345385260/mongodb/scripts/init_replicaset.js: no such file or directory

强调

我用mongodb 创建了商店微服务.

我跑了./mvnw -Pprod dockerfile:build in store,blog project.(因为docker:build plugin不存在)

JHipster版本:v4.8.0

Docker版本:Docker版本17.06.2-ce,构建cec0b72

Docker-compose版本:docker-compose版本1.15.0,build e12f3b9

任何人都知道为什么docker无法找到mongodb/scripts/init_replicaset.js

jhipster /微服务/搬运工/搬运工-compose.yml


    version: '2'
    services:
        blog-app:
            image: blog
            environment:
                - SPRING_PROFILES_ACTIVE=prod,swagger
                - [....]
        store-mongodb-node:
            build:
                context: ../store/src/main/docker
                dockerfile: mongodb/MongoDB.Dockerfile
            command: mongod --replSet …

mongodb jhipster docker-compose

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

运行Docker Interactive Shell

我正在尝试为使用docker-compose运行的图像运行交互式shell.

我试过docker-run和docker-exec

xyz@abc:~$ sudo docker exec -it 235197ff4f0e /bin/bash
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory"

xyz@abc:~$ sudo docker run -it  drone/drone:0.7 /bin/bash
No help topic for '/bin/bash'
Run Code Online (Sandbox Code Playgroud)

试图在无人机内生成ssh密钥,以便我可以从私有存储库中克隆.

bash docker drone.io docker-compose

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

ER_HOST_NOT_PRIVILEGED-Docker容器无法连接到mariadb

我正在尝试使docker容器与mariadb和node.js图像一起使用。容器将使用中的现有数据库/home/mysql。但是,当启动容器时,我在node.js中收到此“连接失败”错误:

Error: ER_HOST_NOT_PRIVILEGED: 
Host '172.18.0.5' is not allowed to connect to this MariaDB server
Run Code Online (Sandbox Code Playgroud)

这是我的docker-compose.yml:

version: '3'
services:
  mariadb:
    image: mariadb
    restart: always
    volumes:
     - /home/mysql:/var/lib/mysql
    user: "mysql"
    ports:
      - "3306:3306"
  watch:
    build: .
    restart: always
    links:
      - mariadb:mysql
    environment:
      - DOCKER_IP=172.18.0.2
    depends_on: ['mariadb']
    ports:
      - "3000:3000"
Run Code Online (Sandbox Code Playgroud)

阅读此线程后,我发现mysql实际上正在运行,但是无法让其他服务连接:

这些是我检查过的一些步骤。如您所见,我可以登录到mysql实例:

    $ docker exec -it 552aae9ea09c bash

    mysql@552aae9ea09c:/$ mysql -u root -p
    Enter password: *******

    MariaDB [(none)]> SELECT host, user FROM mysql.user;
    +-------------+------------------+
    | host        | user             | …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb docker docker-compose

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

节点无法通过Docker Compose连接到Redis

我正在通过docker compose在Node和Redis上运行React应用:

version: "3"
services:
  webapp:
    build: ./
    ports:
      - "127.0.0.1:3000:9090"
    depends_on:
      - redis
    command:
      npm run start

  nginx:
    build: ./nginx
    ports:
      - "80:80"
    environment:
      - NGINX_HOST=127.0.0.1
      - NGINX_PORT=80
    command:
      service nginx start

  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data
Run Code Online (Sandbox Code Playgroud)

Docker文件:

FROM node:alpine

WORKDIR /usr/src/app

COPY package.json ./

RUN npm install
COPY . .

EXPOSE 9090
RUN npm run build_prod
Run Code Online (Sandbox Code Playgroud)

Server.js:

const redisClient = RedisClient.createClient(6379,'redis');
Run Code Online (Sandbox Code Playgroud)

我在运行docker-compose up --build时收到Redis连接拒绝错误:

redis_1   | 1:M 15 Nov 13:55:19.865 * Ready to accept …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services redis node.js reactjs docker-compose

1
推荐指数
2
解决办法
2566
查看次数

例外:在docker中创建kafka主题时,分区不是公认的选项.

我刚开始与Kafka-docker合作.我想在docker中使用以下命令创建一个主题:

./kafka-topics.sh --create --zookeeper zoo1:2181 --replication-factor 3 --partition 2 --topic test
Run Code Online (Sandbox Code Playgroud)

它给我带来了以下错误:

Exception in thread "main" joptsimple.UnrecognizedOptionException: partition is not a recognized option
    at joptsimple.OptionException.unrecognizedOption(OptionException.java:108)
    at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:510)
    at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
    at joptsimple.OptionParser.parse(OptionParser.java:396)
    at kafka.admin.TopicCommand$TopicCommandOptions.<init>(TopicCommand.scala:340)
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:43)
    at kafka.admin.TopicCommand.main(TopicCommand.scala)
Run Code Online (Sandbox Code Playgroud)

我在hosts文件中添加了以下行:

 127.0.0.1     kafka1
 127.0.0.1     zoo1
Run Code Online (Sandbox Code Playgroud)

apache-kafka docker-compose

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

docker-compose:容器时区

我正在使用Docker Compose在我的开发环境中运行我的堆栈,但是我遇到了一个问题,即容器中的时区比我自己的时区晚了一个小时,破坏了关键任务,使开发变得非常困难。

我认为这将是一个普遍的问题,因此我进行了广泛搜索,但是我发现的仅有的两个解决方案不起作用(不起作用:无效)。

我已经尝试了两件事:

尝试1-从主机
卷进行符号链接通过尝试挂载/etc/timezone/etc/localtime作为ro卷,我希望容器与主机具有相同的时区。没有效果。

尝试2-设置变量,而command
不是让Docker Compose使用ENTRYPOINTmy中指定的变量,而是在-file中Dockerfile设置:commanddocker-compose.yml

environment:
    - APPLICATION_ENV=dev-docker
    - TZ=Europe/Stockholm
build: ../../core/document
command: >
  sh -c "ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &&
  echo $TZ > /etc/timezone &&
  exec /go/bin/documents"
Run Code Online (Sandbox Code Playgroud)

同样,完全没有效果。

是否没有在Docker容器中设置时区的官方方法?我觉得这应该是比我更多的用户的关键问题。

谢谢。

编辑:根据要求dockerfilecore/documents-project中。

# This file is intended for use with the GitLab CI tool where the binary has already been built.
FROM golang:1.9.2

# …
Run Code Online (Sandbox Code Playgroud)

timezone docker docker-compose

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

如何从docker-compose连接到Host PostgreSQL?

我有一台安装了PostgreSQL的服务器.我的所有服务都在容器中工作(docker-compose).我想从容器中使用我的Host PostgreSQL.买我有错误:

  Unable to obtain Jdbc connection from DataSource (jdbc:postgresql://localhost:5432/shop-bd) for user 'shop-bd-user': Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  SQL State  : 08001
  Error Code : 0
  Message    : Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

  Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster …
Run Code Online (Sandbox Code Playgroud)

postgresql networking localhost docker docker-compose

1
推荐指数
2
解决办法
5727
查看次数

如何使用带有docker compose的php 7.2作曲家

我正在尝试使用docker compose为web symfony app创建一个简单的dev env.我的问题是在尝试执行composer install时遇到此错误:

- doctrine/collections v1.5.0 requires php ^7.1 -> your PHP version (7.0.7) does not satisfy that requirement.
Run Code Online (Sandbox Code Playgroud)

这是我的docker compose文件的Composer部分:

composer:
        restart: 'no'
        image: composer/composer:php7
        command: install
        volumes:
           - .:/app
Run Code Online (Sandbox Code Playgroud)

所以安装一个PHP 7.0,我至少需要7.1.我尝试过使用composer/composer:php7.1但是没有用.

有关如何做到这一点的任何想法?

提前致谢

php symfony composer-php docker-compose

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

docker-compose忽略DOCKER_HOST

我正在尝试在Windows的Bash(WSL)上运行3个Docker映像,MySQL,Redis和我的一个项目。

为此,我必须连接到Windows上运行的Docker引擎,特别是在上tcp://locahost:2375。我将以下行添加到.bashrc

export DOCKER_HOST=tcp://127.0.0.1:2375

我可以成功运行docker诸如docker ps或的命令,docker run hello-world但是每当我cd进入项目目录并运行 sudo docker-compose up --build以加载图像并旋转容器时,都会收到错误消息:

错误:无法通过http + docker:// localunixsocket连接到Docker守护进程-它正在运行吗?

如果它位于非标准位置,请使用DOCKER_HOST环境变量指定URL。

我知道,如果使用-H参数可以提供地址,但我希望找到一个更永久的解决方案。由于某种原因,docker-compose似乎忽略了DOCKER_HOST环境变量,我不知道为什么。

bash docker docker-compose windows-subsystem-for-linux bash-on-windows

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