如何使容器仅对同一网络中的其他容器可见

时间:2019-06-15 12:35:31

标签: docker docker-compose docker-networking

我刚刚开始学习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只是将请求代理给客户端)

当前,我可以通过localhostlocalhost:3000访问我的客户端,这不好。我只想在网络外部看到一个端口,而所有其他容器都被隐藏。是否可以通过outside->nginx->client而不是outside->client

来设置网络

1 个答案:

答案 0 :(得分:1)

只需删除此内容

schemes

然后,访问此容器的唯一方法是在外部-> nginx->客户端(或ports: - "3000:3000" ,如果从运行容器的计算机上尝试的话)。 Nginx仍然可以通过端口3000到达该容器,但是其他人则不能。