我刚刚开始学习docker,并尝试使其适应我的需要。 有了这样简单的docker-compose文件
version: '3'
services:
my-client:
container_name: my-client
build:
context: ./client
dockerfile: Dockerfile_dev
ports:
- "3000:3000"
volumes:
- ./client/src:/srv/dev/client/src
- ./client/public:/srv/dev/client/public
command: npm run start
my-nginx:
container_name: my-nginx
build: ./nginx
links:
- my-client
expose:
- 80
ports:
- "80:80"
(nginx只是将请求代理给客户端)
当前,我可以通过localhost
和localhost:3000
访问我的客户端,这不好。我只想在网络外部看到一个端口,而所有其他容器都被隐藏。是否可以通过outside->nginx->client
而不是outside->client
答案 0 :(得分:1)
只需删除此内容
:schemes
然后,访问此容器的唯一方法是在外部-> nginx->客户端(或ports:
- "3000:3000"
,如果从运行容器的计算机上尝试的话)。 Nginx仍然可以通过端口3000到达该容器,但是其他人则不能。