기사 배경:
근거리 통신망에서 Docker를 사용할 때 우리가 직면하는 가장 일반적인 혼란 중 하나는 네트워크 세그먼트 전체에서 네트워크가 차단되는 경우가 있다는 것입니다. 그 이유는 Docker가 기본적으로 생성한 게이트웨이가 때때로 LAN 세그먼트와 충돌하기 때문입니다. 예를 들어 Docker가 172.16 네트워크 세그먼트의 시스템에 배포되고 결과 docker0 브리지가 172.17 네트워크 세그먼트인 경우 이는 동일합니다. 실제 환경에서 사용되는 것과 같습니다. 네트워크 세그먼트의 머신 간에 충돌이 있습니다. 즉, 172.17 네트워크 세그먼트의 머신은 핑을 할 수 없습니다.
(권장 튜토리얼: docker 튜토리얼)
충돌을 피하기 위해 가장 먼저 떠오르는 것은 게이트웨이를 변경하는 것입니다. 예를 들어 Centos를 예로 들면 다음과 같습니다.
service docker stop # 删除docker防火墙过滤规则 iptables -t nat -F POSTROUTING # 删除docker默认网关配置 ip link set dev docker0 down ip addr del 172.17.0.1/16 dev docker0 # 增加新的docker网关配置 ip addr add 192.168.2.1/24 dev docker0 ip link set dev docker0 up # 检测是否配置成功,如果输出信息中有 192.168.5.1,则表明成功 ip addr show docker0 service docker start # 验证docker防火墙过滤规则
이 변경 후에는 믿을 수 있나요? 대답은 '아니요'입니다. 왜냐하면 docker가 다시 시작된 후에도 docker0이 여전히 다시 빌드되어 우리가 수정한 내용을 덮어쓸 수 있기 때문입니다. 이는 Docker의 IP 규칙이 하드 코딩되어 있으며 이를 임의로 변경할 수 없음을 보여줍니다. 하지만 생각을 바꿔 docker0을 직접 종료하고 새 브리지를 다시 구축해 보겠습니다.
먼저 브리지 생성 도구 brctl을 설치해야 합니다.
sudo yum install -y bridge-utils
생성 작업 시작:
# 1.停止 Docker 服务 service docker stop # 2.创建新的网桥(新的网段) brctl addbr bridge0 ip addr add 192.168.2.1/24 dev bridge0 ip link set dev bridge0 up # 3.确认网桥信息 ip addr show bridge0 # 4.修改配置文件 /etc/docker/daemon.json(如不存在则创建一个 touch daemon.json),使Docker启动时使用自定义网桥 { "bridge": "bridge0" } # 5.重启 Docker service docker start # 确认 NAT 网络路由 iptables -t nat -L -n # 6.删除不再使用的网桥 ip link set dev docker0 down brctl delbr docker0 iptables -t nat -F POSTROUTING
4단계에서 수정한 구성에 대해서는 여기를 참조하세요. 새 브리지는 실제로 docker 구성 파일에서 참조될 수 있습니다.
echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/sysconfig/docker sudo service docker start
그러나 이것이 default/docker 또는 sysconfig/docker가 없는 경우 docker 사용자 정의 구성 파일을 확실히 볼 수 있다는 의미는 아닙니다. 해결 방법은 다음과 같습니다.
$ vi /lib/systemd/system/docker.service #添加一行 $ EnvironmentFile=-/etc/default/docker 或者 $ EnvironmentFile=-/etc/sysconfig/docker #-代表ignore error #并修改 $ ExecStart=/usr/bin/docker daemon -H fd:// #改成 $ ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS #这样才能使用/etc/default/docker里定义的DOCKER_OPTS参数 $ systemctl daemon-reload 重载 $ sudo service docker restart
bridge0 생성을 완료하고 docker0에서 bridge0으로 전환한 후 보고 싶지 않은 172.17 네트워크 세그먼트가 있는지 확인하기 위해 라우팅할 수 있습니다.
없는 한 우리는 심장이 172.17 네트워크 세그먼트의 기계에 연결될 뿐만 아니라. 아직 남아 있는 경우 지워질 때까지 ip addr del 172.17.0.1/16 dev docker0 을 사용하십시오(새 docker 브리지가 설정되었으므로 이전 브리지를 삭제해도 docker 사용에 영향을 미치지 않습니다).
기기를 다시 시작한 후 brctl로 생성된 네트워크 브리지가 손실될 수 있는 경우 Linux 자체 시작 스크립트에 다음 명령을 작성하여 다시 시작할 때마다 실행할 수 있습니다.
brctl addbr bridge0 ip addr add 192.168.2.1/24 dev bridge0 ip link set dev bridge0 up
자체 시작 스크립트를 전달할 수 있습니다. /etc/rc에서 실행 가능한 명령문(예: sh /opt/script.sh &)을 .local 파일에 추가합니다. 이렇게 하면 기본적으로 머신을 다시 시작할 때마다 bridge0이 생성되는 것을 보장하고 docker 서비스가 정상적으로 시작될 수 있습니다.
추가: IP 네트워크 세그먼트 충돌을 해결하고 위의 복잡한 프로세스를 실행하고 싶지 않은 경우 실제로 "bip" 콘텐츠를 추가하여 /etc/docker/daemon.json을 변경할 수 있습니다: "ip/ netmask". docker0 브리지의 네트워크 세그먼트를 다음과 같이 변경합니다.
[root@iZ2ze278r1bks3c1m6jdznZ ~]# cat /etc/docker/daemon.json { "bip":"192.168.2.1/24" }
위 내용은 Docker 기본 게이트웨이 수정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

실제 프로젝트에서 Docker의 애플리케이션 시나리오에는 배포 단순화, 멀티 컨테이너 응용 프로그램 관리 및 성능 최적화가 포함됩니다. 1. Docker는 DockerFile을 사용하여 Node.js 응용 프로그램을 배포하는 것과 같은 응용 프로그램 배포를 단순화합니다. 2. DockerCompose는 마이크로 서비스 아키텍처에서 웹 및 데이터베이스 서비스와 같은 멀티 컨테이너 응용 프로그램을 관리합니다. 3. 성능 최적화는 다단계 구성을 사용하여 이미지 크기를 줄이고 건강 검진을 통해 컨테이너 상태를 모니터링합니다.

소규모 프로젝트 또는 개발 환경에서 Docker를 선택하고 대규모 프로젝트 또는 생산 환경에서 Kubernetes를 선택하십시오. 1. Docker는 빠른 반복 및 테스트에 적합합니다. 2. Kubernetes는 강력한 컨테이너 오케스트레이션 기능을 제공하여 대규모 응용 프로그램을 관리하고 확장하는 데 적합합니다.

Linux는 풍부한 도구와 커뮤니티 지원을 제공하는 기본 플랫폼이기 때문에 Docker는 Linux에서 중요합니다. 1. Docker 설치 : Sudoapt-Getupdate 및 Sudoapt-GetInstalldocker-Cedocker-Ce-clicotainerd.io를 사용하십시오. 2. 컨테이너 생성 및 관리 : Dockerrun-D-Namemynginx-P80 : 80nginx와 같은 Dockerrun 명령을 사용하십시오. 3. Dockerfile 쓰기 : 이미지 크기를 최적화하고 다단계 구성을 사용하십시오. 4. 최적화 및 디버깅 : DockerLogs 및 Dockerex를 사용하십시오

Docker는 컨테이너화 도구이며 Kubernetes는 컨테이너 오케스트레이션 도구입니다. 1. Docker는 응용 프로그램과 그 종속성을 Docker 지원 환경에서 실행할 수있는 컨테이너로 패키지합니다. 2. Kubernetes는 이러한 컨테이너를 관리하고 자동 배포, 스케일링 및 관리를 구현하고 응용 프로그램을 효율적으로 실행합니다.

Docker의 목적은 애플리케이션 배포를 단순화하고 컨테이너화 기술을 통해 다른 환경에서 응용 프로그램이 지속적으로 실행되도록하는 것입니다. 1) Docker는 응용 프로그램 및 컨테이너로 의존성을 포장하여 환경 차이 문제를 해결합니다. 2) DockerFile을 사용하여 이미지를 작성하여 응용 프로그램이 어디서나 일관되게 실행되도록하십시오. 3) Docker의 작업 원칙은 이미지와 컨테이너를 기반으로하며 Linux 커널의 네임 스페이스 및 제어 그룹을 사용하여 격리 및 자원 관리를 달성합니다. 4) 기본 사용에는 DockerHub에서 이미지를 당기고 실행하는 것이 포함되며, 고급 사용법에는 DockerCompose를 사용하는 다중 컨테이너 응용 프로그램을 관리하는 것이 포함됩니다. 5) 이미지 빌딩 실패 및 컨테이너 실패와 같은 일반적인 오류가 시작되지 않으면 로그 및 네트워크 구성을 통해 디버깅 할 수 있습니다. 6) 성능 최적화 구성

Ubuntu, Centos 및 Debian에 Docker를 설치하고 사용하는 방법은 다릅니다. 1) Ubuntu : APT 패키지 관리자를 사용하여 명령은 sudoapt-getupdate && sudoapt-getinstalldocker.io입니다. 2) Centos : Yum 패키지 관리자를 사용하면 Docker 저장소를 추가해야합니다. 이 명령은 SudoyuminStall-Yyum-utils && sudoyum-config-manager--add-repohttps : //download.docker.com/lin입니다

Linux에서 Docker를 사용하면 개발 효율성을 향상시키고 응용 프로그램 배포를 단순화 할 수 있습니다. 1) Ubuntu 이미지를 당기기 : Dockerpullubuntu. 2) 우분투 컨테이너 실행 : Dockerrun-itubuntu/bin/bash. 3) nginx를 포함하는 dockerfile : fromubuntu; runapt-getupdate && apt-getinstall-ynginx; Expose80을 만듭니다. 4) 이미지를 빌드 : DockerBuild-tmy-nginx. 5) 컨테이너 실행 : Dockerrun-D-P8080 : 80

Docker는 Linux의 응용 프로그램 배포 및 관리를 단순화합니다. 1) Docker는 응용 프로그램과 그 종속성을 경량 및 휴대용 컨테이너로 포장하는 컨테이너화 된 플랫폼입니다. 2) Linux에서 Docker는 CGroup 및 네임 스페이스를 사용하여 컨테이너 격리 및 리소스 관리를 구현합니다. 3) 기본 사용에는 이미지를 당기고 컨테이너를 실행하는 것이 포함됩니다. DockerCompose와 같은 고급 사용법은 다중 컨테이너 응용 프로그램을 정의 할 수 있습니다. 4) 일반적으로 사용되는 DockerLogs 및 DockerExec 명령 디버그. 5) 성능 최적화는 다단계 구성을 통해 이미지 크기를 줄일 수 있으며 Dockerfile을 단순하게 유지하는 것이 가장 좋은 방법입니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

Dreamweaver Mac版
시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
