Сегодня я переключился с «Docker Toolbox» на «Docker for Mac», потому что у Docker теперь наконец-то был доступ к записи в мой каталог User
(который не работал с «Docker Toolbox»,) - Ура!Как запустить контейнер Docker в собственной сети
Но это изменение также включает в себя, что все контейнеры теперь работают под моим локальным хостом, а не под IP-адресом Докера, как и раньше (например, 192.168.99.100
).
Поскольку мой localhost
прослушивает различные порты по умолчанию (80, 443, ...), и я не хочу всегда добавлять новые созданные порты, которые не конфликтуют со стандартными, с моими локальными доменами dev (например, example.dev:8443
), мне интересно, как запустить мои контейнеры, как и раньше.
Я читал около network
конфигураций и пробовал много вещей (создавая новую хост-сеть, выставляя порты с IP перед ним, ...), но не работал.
Какую конфигурацию мне нужно для запуска контейнера приложения с IP 192.168.99.100
? То мой docker-compose.yml
пока.
version: '2'
services:
app:
build:
context: .
dockerfile: Dockerfile
depends_on:
- mysql
- redis
- memcached
ports:
- 80:80
- 443:443
- 22:22
- 3000:3000
- 3001:3001
volumes:
- ./app/:/app/
- /tmp/debug/:/tmp/debug/
- ./:/docker/
volumes_from:
- storage
# cap and privileged needed for slowlog
cap_add:
- SYS_PTRACE
privileged: true
env_file:
- etc/environment.yml
- etc/environment.development.yml
mysql:
build:
context: docker/mysql/
dockerfile: MariaDB-10
ports:
- 3306:3306
volumes_from:
- storage
volumes:
- ./data/mysql:/var/lib/mysql
- /tmp/debug/:/tmp/debug/
env_file:
- etc/environment.yml
- etc/environment.development.yml
redis:
build: docker/redis/
volumes_from:
- storage
env_file:
- etc/environment.yml
- etc/environment.development.yml
memcached:
build: docker/memcached/
volumes_from:
- storage
env_file:
- etc/environment.yml
- etc/environment.development.yml
storage:
build: docker/storage/
volumes:
- /storage
проверить это https://forums.docker.com/t/host-excluded-from-bridge-network/12015/11 –