标签: docker-compose

Docker curl:(7)无法连接到本地主机端口80:连接被拒绝

我从本地主机执行

$ curl本地主机

要么

卷曲

http:// usuariointerno:governance@beneficiarios.dev/app_dev.php/actividad

并确定。

如果从容器名称“ php”执行并:

$ curl本地主机--ipv4

无法连接到本地主机端口80:连接被拒绝

要么

$ curl http:// usuariointerno:governance@beneficiarios.dev/app_dev.php/actividad

curl:(7)无法连接到本地主机端口80:连接被拒绝

从Docker容器故障连接时,如果在Docker容器外部连接则可以,这是什么问题?

码头工人组成:

version: '2'
services:
  php:
    container_name: php
    build: ./php
    volumes:
      - ./www/:/var/www/html/
      - ./php/.bashrc:/root/.bashrc
      - ./php/.gitconfig:/root/.gitconfig
    depends_on:
      - postgres
      - mysql

  nginx:
    container_name: nginx
    image: nginx
    ports:
      - 80:80
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
      - ./www/:/var/www/html/
      - ./logs:/var/log/nginx
    depends_on:
      - php
    
  postgres:
    container_name: postgres
    image: postgres:9.5.5
    volumes:
      - ./data/postgresql:/var/lib/postgresql/data
      - ./postgres/dumps:/dumps
    environment: 
     - POSTGRES_PASSWORD=0000
     - POSTGRES_USER=postgres

  mysql:
    container_name: mysql
    image: mysql:5.7.16
    volumes: …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

Docker-Compose WordPress MySql无法连接

尝试连接到我的WordPress网站时,我收到502网关错误.看着日志我有这个错误.

MySQL Connection Error: (1045) Access denied for user 'root'@'172.23.0.3' (using password: YES)
Run Code Online (Sandbox Code Playgroud)

当我不更改密码并保持全部密码时,它似乎有效WordPress.我假设dockerfiles只使用默认密码,但看了之后我才看到它们从环境中抓取.但它似乎没有从我设置的环境中获取.

version: '2'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: *****
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: *****

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8085:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: ******
volumes:
    db_data:
Run Code Online (Sandbox Code Playgroud)

我希望*****是相同的密码.

这是我的wordpress变量的转储:

HOSTNAME=55333eceeda8
PHP_INI_DIR=/usr/local/etc/php
PHP_ASC_URL=https://secure.php.net/get/php-5.6.30.tar.xz.asc/from/this/mirror
WORDPRESS_DB_PASSWORD=test
PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2
PHP_MD5=68753955a8964ae49064c6424f81eb3e
PHPIZE_DEPS=autoconf        file        g++         gcc         libc-dev        make        pkg-config      re2c
PHP_URL=https://secure.php.net/get/php-5.6.30.tar.xz/from/this/mirror
WORDPRESS_DB_HOST=db:3306
WORDPRESS_VERSION=4.7.2
PHP_LDFLAGS=-Wl,-O1 -Wl,--hash-style=both -pie
APACHE_ENVVARS=/etc/apache2/envvars …
Run Code Online (Sandbox Code Playgroud)

mysql wordpress docker dockerfile docker-compose

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

docker-compose在以普通用户身份运行时给出错误"ImportError:没有名为ssl_match_hostname的模块"

我已经用'pip2.7 install docker-compose'安装了docker-compose但是当我尝试将它作为'普通'用户运行时,我收到以下错误消息:

mike@hugin:~/Tobedeleted$ docker-compose  -v
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 7, in <module>
    from compose.cli.main import main
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 17, in <module>
    from . import errors
  File "/usr/local/lib/python2.7/dist-packages/compose/cli/errors.py", line 10, in <module>
    from docker.errors import APIError
  File "/usr/local/lib/python2.7/dist-packages/docker/__init__.py", line 2, in <module>
    from .api import APIClient
  File "/usr/local/lib/python2.7/dist-packages/docker/api/__init__.py", line 2, in <module>
    from .client import APIClient
  File "/usr/local/lib/python2.7/dist-packages/docker/api/client.py", line 11, in <module>
    from .build import BuildApiMixin
  File "/usr/local/lib/python2.7/dist-packages/docker/api/build.py", line 9, in <module>
    from .. import …
Run Code Online (Sandbox Code Playgroud)

python pip docker docker-compose

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

连接到运行MariaDB的另一个docker容器时,MYSQLI连接被拒绝

我开始弄脏Docker并且我试图让我的PHP应用程序在带有nginx的docker容器中运行,以连接到运行MariaDB的另一个容器中运行的数据库.

当我运行容器时,我可以从我的计算机(使用Sequel Pro)连接到数据库没有任何问题,但是当我尝试从运行在nginx容器中的PHP应用程序连接到数据库时,我得到以下mysqli错误:

警告:mysqli_connect():( HY000/2002):第7行的> /app/web/php/db-config.php中的连接被拒绝无法连接到数据库,因错误而死亡:

发生错误的db-config.php如下:

    define('DB_HOST', '0.0.0.0:3306');
    define('DB_NAME', 'Jumpooling');
    define('DB_USER', 'root');
    define('DB_PASSWORD', 'root');

    $con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('Failed to connect to the database, died with error:');
Run Code Online (Sandbox Code Playgroud)

所有docker-compose.yml文件内容都在存储库中.

我错过了什么?

php mysqli mariadb docker docker-compose

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

Docker-compose不将环境变量传递给容器

我正在使用Docker 17.04.0-ce,使用docker-compose 1.12.0构建4845c56,在Ubuntu 16.04.2 LTS上构建b31ff33。我只想传递一个环境变量,并从运行在容器中的脚本中显示它。我正在根据文档https://docs.docker.com/compose/compose-file/#environment进行此操作。问题在于该变量未传递到容器。

我的docker-compose.yml文件:

env-file-test:
  build: .
  dockerfile: Dockerfile
  environment:
    - DEMO_VAR
Run Code Online (Sandbox Code Playgroud)

我的Dockerfile:

FROM alpine
COPY docker-start.sh /
CMD ["/docker-start.sh"]
Run Code Online (Sandbox Code Playgroud)

docker-start.sh文件:

#!/bin/sh
echo "DEMO_VAR Var Passed in: $DEMO_VAR"
Run Code Online (Sandbox Code Playgroud)

我尝试在当前的终端会话中设置变量并将其传递给容器:

$ export DEMO_VAR=aabbdd
$ echo $DEMO_VAR
aabbdd
$ sudo docker-compose up
Starting envfiletest_env-file-test_1
Attaching to envfiletest_env-file-test_1
env-file-test_1  | DEMO_VAR Var Passed in: 
envfiletest_env-file-test_1 exited with code 0
Run Code Online (Sandbox Code Playgroud)

这样就可以看到变量DEMO_VAR为空!

我还尝试像这样在docker-compose.yml中使用变量:DEMO_VAR=${DEMO_VAR}但随后在运行时sudo docker-compose up,出现警告:“警告:未设置DEMO_VAR变量。默认为空白字符串。”。

我究竟做错了什么?我应该怎么做才能将变量传递给容器?

docker docker-compose

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

Visual Studio Docker Tools如何从头开始强制容器重建

我在Visual Studio 2017(工具版本0.41)中使用docker-compose 来构建两个图像,一个ASP.NET Core API容器和一个PostgreSQL容器.我运行了Docker-Compose项目,一切正常 - 我可以从Api容器访问数据库.

我现在想要更改PostgreSQL环境变量POSTGRES_USER,POSTGRES_PASSWORDPOSTGRES_DB改为如下所示的新值:

泊坞窗,compose.yml:

services:
    mcodatabase:
        image: mcodatabase
        build:
        context: ./Data
        dockerfile: Dockerfile
        restart: always
        ports:
        - 5432:5432
        environment:
        POSTGRES_USER: mcodevuser
        POSTGRES_PASSWORD: password
        POSTGRES_DB: mcodev
        volumes:
        - postgresdata:/var/lib/postgresql/data
        networks:
        - mconetwork
    mcoapi:
        image: mcoapi
        build:
        context: ./Mco.Api
        dockerfile: Dockerfile
        ports:
        - 56107:80
        links:
        - mcodatabase
        depends_on:
        - "mcodatabase"
        networks:
        - mconetwork

    volumes:
    postgresdata:

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

但是,据我所知,图像已经创建.我想再次开始使用数据库映像mcodatabase.

这是我的图片:

c:\Projects\v4>docker images
REPOSITORY             TAG                 IMAGE …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose visual-studio-2017

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

Docker-compose容器端口无法正常工作

我正在运行一个由docker-container启动的容器,如下所示:

  puppetboard:
    build: ./images/puppetboard
    image: puppet/puppetboard
    ports:
      - 5000:5000
    links:
      - puppetdb:puppetdb
Run Code Online (Sandbox Code Playgroud)

它成功构建,当我运行时,docker ps我可以看到:

0.0.0.0:5000->5000/tcp
Run Code Online (Sandbox Code Playgroud)

我甚至可以使用docker execcurl localhost:5000返回一个html页面进入容器.

我仔细检查主机是否可以在127.0.0.2 (docker network)上看到端口5000 ,nmap 127.0.0.2并且端口可用:5000/tcp open upnp.

然而,当我127.0.0.2:5000在主机上的浏览器中,我得到的网站不可用.如何调试此网络问题?

curl 127.0.0.2:5000&的结果curl 127.0.0.1:5000是:curl: (56) Recv failure: Connection reset by peer.

docker docker-compose

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

如何在docker-compose上注册Postgres容器主机?

我有一个app(Flask/Pony ORM)容器,必须在启动时注册postgres db容器的主机.我怎样才能获得主持人(postgres容器)的位置?

在我的本地设置中,我有"localhost"但这在app容器中不起作用.

我尝试了"172.17.0.2",这是我使用docker-compose 时的pg容器IP .

但这两个都返回错误.

有没有办法在docker-compose文件中为特定容器指定主机位置?

postgresql flask docker ponyorm docker-compose

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

Docker编写了一个'Exec format error'加载库

我正在使用docker-compose开发多模块docker nodejs应用程序。模块所需的自然节点程序包存在问题。似乎它无法执行。我尝试使用RUN命令即时重建它,但没有任何改变。这是尝试运行docker-compose时的日志:

web_1         | /app/web-server/node_modules/natural/lib/natural/classifiers/classifier.js:32
web_1         |     if (e.code !== 'MODULE_NOT_FOUND') throw e;
web_1         |                                        ^
web_1         |
web_1         | Error: Error loading shared library /app/web-server/node_modules/webworker-threads/build/Release/WebWorkerThreads.node: Exec format error
web_1         |     at Error (native)
web_1         |     at Object.Module._extensions..node (module.js:597:18)
web_1         |     at Module.load (module.js:487:32)
web_1         |     at tryModuleLoad (module.js:446:12)
web_1         |     at Function.Module._load (module.js:438:3)
web_1         |     at Module.require (module.js:497:17)
web_1         |     at require (internal/module.js:20:19)
web_1         |     at bindings (/app/web-server/node_modules/bindings/bindings.js:81:44)
web_1         |     at Object.<anonymous> (/app/web-server/node_modules/webworker-threads/index.js:1:105)
web_1         |     at Module._compile …
Run Code Online (Sandbox Code Playgroud)

node.js docker docker-compose

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

Docker无法访问容器外的端口

我在本地主机上使用端口2181运行zookeeper(不是通过docker).

此外,尝试通过docker运行docker镜像组成如下.

#
  # Mesos
  #
  mesos-master:
    image: mesosphere/mesos-master:1.0.3
    restart: always
    privileged: true
    network_mode: host
    volumes:
      - ~/mesos-data/master:/tmp/mesos
    environment:
      MESOS_CLUSTER: "mesos-cluster"
      MESOS_QUORUM: "1"
      MESOS_ZK: "zk://localhost:2181/mesos"
      MESOS_PORT: 5000
      MESOS_REGISTRY_FETCH_TIMEOUT: "2mins"
      MESOS_EXECUTOR_REGISTRATION_TIMEOUT: "2mins"
      MESOS_LOGGING_LEVEL: INFO
      MESOS_INITIALIZE_DRIVER_LOGGING: "false"
Run Code Online (Sandbox Code Playgroud)

Zookeepr正在侦听端口2181,但仍然我的docker进程无法连接到zookeeper端口2181.

有什么遗漏?

谢谢

docker docker-compose

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