운영 및 유지보수 Docker docker network 명령에 대한 자세한 설명

docker network 명령에 대한 자세한 설명

Aug 21, 2020 pm 05:31 PM
docker network

docker network 명령에 대한 자세한 설명

먼저 network의 모든 하위 명령을 살펴보겠습니다.

(권장 튜토리얼: docker tutorial)

docker network create
docker network connect
docker network ls
docker network rm
docker network disconnect
docker network inspect
로그인 후 복사

1. 네트워크 생성

Docker 엔진을 설치하면 기본 브리지 네트워크 docker0이 자동으로 생성되었습니다. 또한 자체 브리지 네트워크나 오버레이 네트워크를 생성할 수도 있습니다.

브리지 네트워크는 Docker 엔진을 실행하는 단일 호스트에 연결되는 반면, 오버레이 네트워크는 해당 Docker 엔진을 실행하는 여러 호스트 환경을 포괄할 수 있습니다.

브릿지 네트워크를 생성하는 것은 다음과 같이 비교적 간단합니다:

 # 不指定网络驱动时默认创建的bridge网络
 docker network create simple-network
 # 查看网络内部信息
 docker network inspect simple-network
 # 应用到容器时,可进入容器内部使用ifconfig查看容器的网络详情
로그인 후 복사

그러나 오버레이 네트워크를 생성하려면 몇 가지 전제 조건이 필요합니다(특정 작업에 대해서는 Docker 컨테이너 네트워크 관련 콘텐츠를 참조하십시오):

- key-value store(Engine支持Consul、Etcd和ZooKeeper等分布式存储的key-value store) 
- 集群中所有主机已经连接到key-value store 
- swarm集群中每个主机都配置了下面的daemon参数 
- –cluster-store 
- –cluster-store-opt 
- –cluster-advertise
로그인 후 복사

그런 다음 오버레이 네트워크를 생성합니다:

# 创建网络时,使用参数`-d`指定驱动类型为overlay
docker network create -d overlay my-multihost-network
로그인 후 복사

그냥 사용 - 서브넷을 생성하는 서브넷 옵션의 경우 브리지 네트워크는 하나의 서브넷만 지정할 수 있는 반면 오버레이 네트워크는 여러 서브넷을 지원합니다.

브리지 및 오버레이 네트워크 드라이버에서 생성된 네트워크는 다른 매개변수를 지정할 수 있습니다.

2. 컨테이너 연결

세 개의 컨테이너를 만듭니다. 처음 두 개는 기본 네트워크를 사용하여 컨테이너를 시작하고 세 번째는 사용자 정의 브리지 네트워크를 사용합니다. 그런 다음 두 번째 컨테이너를 사용자 지정 네트워크에 추가합니다. 이 세 가지 컨테이너의 네트워크 조건은 다음과 같습니다.

첫 번째 컨테이너: 기본 docker0만

두 번째 컨테이너: 두 네트워크에 속함 - docker0, 사용자 정의 네트워크

세 번째 컨테이너: 사용자 정의 네트워크에만 속함

참고: 컨테이너를 통해 지정된 네트워크를 시작하면 기본 브리지 네트워크 docker0을 덮어쓰게 됩니다.

# 创建三个容器 conTainer1,container2,container3
docker run -itd --name=container1 busybox
docker run -itd --name=container2 busybox
# 创建网络mynet
docker network create -d bridge --subnet 172.25.0.0/16 mynet
# 将容器containerr2连接到新建网络mynet
docker network connect mynet container2
# 使用mynet网络来容器container3
docker run --net=mynet --ip=172.25.3.3 -itd --name=container3 busybox
 
# 查看这三个容器的网络情况
docker network inspect container1 # docker0
docker network inspect container2 # docker0, mynet
docker network inspect container3 # mynet
로그인 후 복사

3. 기본 네트워크와 커스텀 브리지 네트워크의 차이점

기본 네트워크 docker0: 네트워크의 모든 호스트는 IP를 통해서만 서로 액세스할 수 있습니다. --link 옵션으로 생성된 컨테이너는 연결된 컨테이너 이름(container-name)을 호스트 이름으로 직접 액세스할 수 있습니다.

사용자 정의 네트워크(브리지): IP 액세스 외에도 네트워크의 모든 호스트는 컨테이너 이름(container-name)을 호스트 이름으로 사용하여 서로 직접 액세스할 수도 있습니다.

# 进入container2内部
docker attach container2
ping -w 4 container3 # 可访问
ping -w 4 container1 # 不可访问
ping -w 4 172.17.0.2 # 可访问container1的IP
# Ctrl+P+Q退出容器,让container2以守护进程运行
로그인 후 복사

4. 컨테이너 연결에서 기본 네트워크와 커스텀 브리지 네트워크의 차이점

기본 네트워크에서 링크(레거시 링크)를 사용하면 다음과 같은 기능이 있습니다.

- 使用容器名作为hostname 
- link容器时指定alias: --link=<Container-Name>:<Alias> 
- 配合--icc=false隔离性,实现容器间的安全连接 
- 环境变量注入
로그인 후 복사

커스텀 네트워크에서 docker net을 사용하면 다음과 같은 기능을 제공합니다. :

- 使用DNS实现自动化的名称解析 
- 一个网络提供容器的安全隔离环境 
- 动态地attach与detach到多个网络 
- 支持与--link选项一起使用,为链接的容器提供别名(可以是尚不存在链接容器,与默认容器中–link使用的最大差别)
로그인 후 복사

기본 네트워크의 링크는 정적이며 링크 컨테이너가 다시 시작되는 것을 허용하지 않는 반면, 사용자 정의 네트워크 아래의 링크는 동적이며 링크 컨테이너 다시 시작(및 IP 변경)을 지원합니다.
따라서 연결된 컨테이너는 --link 사용 기본 네트워크는 미리 생성해야 하지만, 커스텀 네트워크는 미리 구축할 필요가 없습니다.

docker network connectct를 사용하여 컨테이너를 새 네트워크에 연결할 때 --link 매개변수를 사용하여 동일한 컨테이너를 연결할 때 다른 네트워크에 대한 다른 별칭을 지정할 수 있습니다.

# 运行容器使用自定义网络,同时使用--link链接尚不存在的container5容器
docker run --net=mynet -itd --name=container4 --link container5:c5 busybox
# 创建容器container5
docker run --net=mynet -itd --name=container5 --link container4:c4 busybox
# 虽然是相同容器,但是在不同的网络环境连接中可以不同的alias链接
docker network connect --link container5:foo local_alias container4
docker network connect --link container4:bar local_alias container5
로그인 후 복사

5. 컨테이너의 네트워크 범위 별칭 지정(Network-scoped alias)

네트워크 범위 별칭은 동일한 네트워크 범위 내의 다른 컨테이너에서 액세스할 수 있는 지정된 컨테이너의 별칭입니다.

링크 별칭과 달리 링크 별칭은 링크 컨테이너 사용자가 제공하며 자체적으로만 사용할 수 있는 반면, 지정된 네트워크 범위 내의 별칭은 네트워크의 다른 컨테이너에서 사용할 수 있도록 컨테이너에서 제공됩니다.

네트워크 범위 별칭: 동일한 네트워크의 여러 컨테이너는 동일한 별칭을 지정할 수 있습니다. 물론 지정된 별칭을 가진 첫 번째 컨테이너만 적용됩니다.
첫 번째 컨테이너가 닫힐 때만 동일한 별칭을 가진 세 번째 컨테이너가 적용됩니다. 그러면 두 컨테이너의 별칭이 적용됩니다.

docker run --net=mynet -itd --name=container6 --net-alias app busybox
docker network connect --alias scoped-app local_alias container6
docker run --net=isolated_nw -itd --name=container7 --net-alias app busybox
docker network connect --alias scoped-app local_alias container7
# 在container4中
docker attach container4
ping app # 访问container6的IP
# 从container4中以守护进程运行退出:Ctrl+P+Q
docker stop container6
docker attach container4
ping app # 访问的container7的IP
로그인 후 복사

6. 네트워크 연결 끊기 및 제거

# 容器从mynet网络中断开(它将无法再网络中的容器container3通讯)
docker network disconnect mynet container2
# 测试与容器container3失败
docker attach container2
ping contianer3 # 访问失败
로그인 후 복사

다중 호스트 네트워크 환경에서 컨테이너 이름이 제거된 네트워크에 컨테이너를 연결하면 이미 네트워크에 연결되어 있는 오류 컨테이너가 나타납니다. docker rm -f를 사용하여 새 컨테이너를 제거하고 다시 실행한 후 네트워크에 연결하세요.

네트워크를 제거하려면 제거 명령을 사용하기 전에 네트워크의 모든 컨테이너를 닫거나 이 네트워크에서 연결을 끊어야 합니다.

# 断开最后一个连接到mynet网络的容器
docker network disconnet mynet container3
# 移除网络
docker network rm mynet
로그인 후 복사

위 내용은 docker network 명령에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Docker Desktop을 사용하는 방법 Docker Desktop을 사용하는 방법 Apr 15, 2025 am 11:45 AM

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

중국의 도커 이미지 소스를 변경하는 방법 중국의 도커 이미지 소스를 변경하는 방법 Apr 15, 2025 am 11:30 AM

국내 거울 소스로 전환 할 수 있습니다. 단계는 다음과 같습니다. 1. 구성 파일 /etc/docker/daemon.json 편집 및 미러 소스 주소를 추가하십시오. 2. 저장 및 종료 후 Docker Service Sudo SystemCTL Docker를 다시 시작하여 이미지 다운로드 속도 및 안정성을 향상시킵니다.

Docker 버전을 읽는 방법 Docker 버전을 읽는 방법 Apr 15, 2025 am 11:51 AM

Docker 버전을 얻으려면 다음 단계를 수행 할 수 있습니다. Docker 명령 "Docker -version"을 실행하여 클라이언트 및 서버 버전을 볼 수 있습니다. Mac 또는 Windows의 경우 Docker Desktop GUI의 버전 탭 또는 Aff Docker Desktop 메뉴를 통해 버전 정보를 볼 수도 있습니다.

Docker에서 거울을 만드는 방법 Docker에서 거울을 만드는 방법 Apr 15, 2025 am 11:27 AM

Docker 이미지 생성 단계 : 빌드 지침이 포함 된 Dockerfile을 작성하십시오. Docker 빌드 명령을 사용하여 터미널에 이미지를 빌드하십시오. Docker 태그 명령을 사용하여 이미지를 태그하고 이름과 태그를 지정하십시오.

Docker의 이미지를 업데이트하는 방법 Docker의 이미지를 업데이트하는 방법 Apr 15, 2025 pm 12:03 PM

Docker 이미지를 업데이트하는 단계는 다음과 같습니다. 최신 이미지 태그 가져 오기 새 이미지 특정 태그의 이전 이미지 삭제 (선택 사항) 컨테이너를 다시 시작하십시오 (필요한 경우)

Docker 이미지를 저장하는 방법 Docker 이미지를 저장하는 방법 Apr 15, 2025 am 11:54 AM

Docker에 이미지를 저장하려면 Docker Commit 명령을 사용하여 지정된 컨테이너의 현재 상태가 포함 된 새 이미지를 만들 수 있습니다. 구문 : Docker Commit [옵션] 컨테이너 ID 이미지 이름. 이미지를 저장소에 저장하려면 Docker Push 명령 인 Syntax : Docker 푸시 이미지 이름 [: tag]을 사용할 수 있습니다. 저장된 이미지를 가져 오려면 Docker Pull 명령 인 Syntax : Docker Pull Image Name [: Tag]을 사용할 수 있습니다.

Docker 컨테이너의 이름을 확인하는 방법 Docker 컨테이너의 이름을 확인하는 방법 Apr 15, 2025 pm 12:21 PM

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 ​​있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Docker의 개인 저장소 구축 방법 Docker의 개인 저장소 구축 방법 Apr 15, 2025 am 11:06 AM

Docker Private Repositories를 구축하여 컨테이너 이미지를 안전하게 저장하고 관리하여 엄격한 제어 및 보안을 제공 할 수 있습니다. 단계에는 리포지토리 생성, 액세스 부여, 저장소 배포, 이미지 밀기 및 이미지를 당기는 단계가 포함됩니다. 보안, 버전 제어, 네트워크 트래픽 감소 및 사용자 정의가 장점이 있습니다.

See all articles