>  기사  >  운영 및 유지보수  >  Docker에서 컨테이너 간 접근 방법

Docker에서 컨테이너 간 접근 방법

尚
원래의
2020-03-24 16:09:355317검색

Docker에서 컨테이너 간 접근 방법

도커 컨테이너는 서로 격리되어 있어 서로 액세스할 수 없다는 사실을 모두 알고 있지만 종속 서비스가 있는 경우 어떻게 해야 할까요? 다음은 컨테이너 상호 접근 문제를 해결하기 위한 세 가지 방법을 설명합니다.

방법 1, 가상 IP 접속

docker를 설치하면 docker는 기본적으로 내부 브리지 네트워크 docker0을 생성합니다. 생성된 각 컨테이너에는 가상 네트워크 카드가 할당되며, 컨테이너는 IP를 기반으로 서로 접속할 수 있습니다.

[root@33fcf82ab4dd /]# [root@CentOS ~]# ifconfig
......
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        inet6 fe80::42:35ff:feac:66d8  prefixlen 64  scopeid 0x20<link>
        ether 02:42:35:ac:66:d8  txqueuelen 0  (Ethernet)
        RX packets 4018  bytes 266467 (260.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4226  bytes 33935667 (32.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
......

방법 2, 링크

컨테이너 실행 시 매개변수 링크 추가

첫 번째 컨테이너 실행

docker run -it --name centos-1 docker.io/centos:latest

두 번째 컨테이너 실행

[root@CentOS ~]# docker run -it --name centos-2 --link centos-1:centos-1 docker.io/centos:latest

--link: 매개변수의 첫 번째 centos-1은 컨테이너 이름, 즉 두 번째 centos-1은 정의된 컨테이너 별칭입니다(별칭을 사용하여 컨테이너에 액세스). 사용 편의성을 위해 일반적으로 별칭의 기본값은 컨테이너 이름입니다.

테스트 결과는 다음과 같습니다.

[root@e0841aa13c5b /]# ping centos-1
PING centos-1 (172.17.0.7) 56(84) bytes of data.
bytes from centos-1 (172.17.0.7): icmp_seq=1 ttl=64 time=0.210 ms
bytes from centos-1 (172.17.0.7): icmp_seq=2 ttl=64 time=0.116 ms
bytes from centos-1 (172.17.0.7): icmp_seq=3 ttl=64 time=0.112 ms
bytes from centos-1 (172.17.0.7): icmp_seq=4 ttl=64 time=0.114 ms

방법 3. 브리지 네트워크 생성

1. docker를 설치한 후 다음 명령을 실행하여 브리지 네트워크를 생성합니다. docker network create testnet

새로 생성된 브리지 테스트넷을 쿼리합니다.

Docker에서 컨테이너 간 접근 방법

2. 컨테이너를 실행하고 테스트넷 네트워크에 연결합니다.

사용법: docker run -it --name ---network --network-alias

[root@CentOS ~]# docker run -it --name centos-1 --network testnet --network-alias centos-1 docker.io/centos:latest
[root@CentOS ~]# docker run -it --name centos-2 --network testnet --network-alias centos-2 docker.io/centos:latest

3.

[root@fafe2622f2af /]# ping centos-1
PING centos-1 (172.20.0.2) 56(84) bytes of data.
bytes from centos-1.testnet (172.20.0.2): icmp_seq=1 ttl=64 time=0.158 ms
bytes from centos-1.testnet (172.20.0.2): icmp_seq=2 ttl=64 time=0.108 ms
bytes from centos-1.testnet (172.20.0.2): icmp_seq=3 ttl=64 time=0.112 ms
bytes from centos-1.testnet (172.20.0.2): icmp_seq=4 ttl=64 time=0.113 ms

더 많은 관련 튜토리얼을 보시려면 PHP 중국어 홈페이지의 docker tutorial 칼럼을 참고해주세요.

위 내용은 Docker에서 컨테이너 간 접근 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.