今天我从“Docker Toolbox”切换到“Docker for Mac”,因为Docker现在终于对我的User
目录(不能与“Docker Toolbox”一起使用)进行写访问 - 是的! / p>
但是这个改变还包括所有容器现在在我的localhost下运行而不是像以前那样在Docker的IP下运行(例如192.168.99.100
)。
由于我的localhost
默认监听各种端口(80,443,...),我不想总是添加新创建的端口,这与标准端口不相符本地开发域(例如example.dev:8443
),我想知道如何像以前一样运行我的容器。
我读了network
configs并尝试了很多东西(创建一个新的主机网络,在它前面暴露一个带有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
答案 0 :(得分:0)
您需要声明" networks:"对于您的每项服务:
e.g。
version: '2'
services:
app:
image: xxxx:xxx
ports:
- "80:80"
networks:
- my-network
mysql:
image: xxxx:xxx
networks:
- my-network
networks:
my-network:
driver: bridge
然后从您的应用配置侧面,您可以使用" mysql"作为数据库服务器的主机名。
答案 1 :(得分:-1)
您可以在撰写文件中定义网络,然后将任何服务添加到网络中。
https://docs.docker.com/compose/networking/
但我建议你现在只使用不同的端口进行本地运行。即8080:80