我从本地主机执行
$ 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)尝试连接到我的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) 我已经用'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) 我开始弄脏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文件内容都在此存储库中.
我错过了什么?
我正在使用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变量。默认为空白字符串。”。
我究竟做错了什么?我应该怎么做才能将变量传递给容器?
我在Visual Studio 2017(工具版本0.41)中使用docker-compose 来构建两个图像,一个ASP.NET Core API容器和一个PostgreSQL容器.我运行了Docker-Compose项目,一切正常 - 我可以从Api容器访问数据库.
我现在想要更改PostgreSQL环境变量POSTGRES_USER,POSTGRES_PASSWORD并POSTGRES_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-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 exec和curl 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.
我有一个app(Flask/Pony ORM)容器,必须在启动时注册postgres db容器的主机.我怎样才能获得主持人(postgres容器)的位置?
在我的本地设置中,我有"localhost"但这在app容器中不起作用.
我尝试了"172.17.0.2",这是我不使用docker-compose 时的pg容器IP .
但这两个都返回错误.
有没有办法在docker-compose文件中为特定容器指定主机位置?
我正在使用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) 我在本地主机上使用端口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 ×10
docker-compose ×10
dockerfile ×1
flask ×1
mariadb ×1
mysql ×1
mysqli ×1
node.js ×1
php ×1
pip ×1
ponyorm ×1
postgresql ×1
python ×1
wordpress ×1