У меня есть набор контейнеров, работающих в Windows 10 с Docker, это результат docker-compose ps
:
> docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------
db_mysql docker-entrypoint.sh mysqld Up 3306/tcp
elk /usr/bin/supervisord -n -c ... Up 0.0.0.0:81->80/tcp
php71-fpm-nginx /config/bootstrap.sh Up 443/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:9001->9001/tcp
И это результат docker inspect
:
> docker inspect php71-fpm-nginx
[
{
...
"NetworkMode": "anotherlampdocker_default",
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
],
"9001/tcp": [
{
"HostIp": "",
"HostPort": "9001"
}
]
},
...
"Mounts": [
{
"Source": "/d/Development/www",
"Destination": "/data/www",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
...
"NetworkSettings": {
"Bridge": "",
"SandboxID": "b96cf4c0f2c17d65659c31982b9200a79cca6f1c214770d31938204c493a6720",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"443/tcp": null,
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "80"
}
],
"9001/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "9001"
}
]
},
...
"Networks": {
"anotherlampdocker_default": {
"IPAMConfig": null,
"Links": [
"db_mysql:db",
"db_mysql:db_mysql"
],
"Aliases": [
"php-fpm",
"248e8c254eee"
],
"NetworkID": "de1e10b63e6e5050809af59ac4d26b7cb691afd5805d1cf7f0492c702814f34d",
"EndpointID": "ccec71967c6100c5a9f3ad82d82bbb2a371f77e12c493bf05bfd15f2d188ce00",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:03"
}
}
}
}
]
Я пытаюсь получить доступ к http://localhost
, но не могу. Я также пробовал использовать IP-адрес контейнера, означающий http://172.18.0.3
, и он тоже не работает.
Когда я говорю, что не могу, это означает следующее сообщение:
Этот сайт недоступен. 172.18.0.3 Ответил слишком долго.
Этот же контейнер отлично работает в Linux.
Это содержимое c:\Windows\System32\drivers\etc\hosts
файла:
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
Порты из контейнера отображаются на хост в файле docker-compose.yml
:
services:
php-fpm:
container_name: "php71-fpm-nginx"
build: php-fpm
ports:
- 80:80
- 9001:9001
environment:
PHP_ERROR_REPORTING: 'E_ALL & ~E_DEPRECATED & ~E_NOTICE'
STATUS_PAGE_ALLOWED_IP: '127.0.0.1'
volumes:
- D:\Development\www\:/data/www
Что мне здесь не хватает?
docker exec -it php71-fpm-nginx bash
- person jmiraglia   schedule 15.12.2016[root@248e8c254eee /]# curl localhost curl: (7) Failed connect to localhost:80; Connection refused
- person ReynierPM   schedule 15.12.2016docker exec -it php-fpm bash
, как указано выше в @jmiraglia, либо подключиться через SSH и получить полную оболочку. Я предпочитаю использовать его по SSH, потому что мне нравится делать все внутри контейнера, чтобы мой компьютер с Windows был как можно более чистым. Мне также нравится красивая информация о git в подсказке, которая не работает, когда я использовалdocker exec
. - person ScottCollier   schedule 15.12.2016.env
и попробуйте командуdocker-compose build
, она заканчивается следующей ошибкойERROR: Service 'db' failed to build: One or more build-args [DEFAULT_CHAR_SET COLLATION_SERVER CHAR_SET_SERVER] were not consumed, failing build.
, что я здесь пропустил? - person ReynierPM   schedule 16.12.2016