이번 글은 주로 Docker에서 커스텀 네트워크 브리지를 추가하는 방법을 소개합니다. 편집자는 꽤 좋다고 생각해서 지금부터 공유하고 참고용으로 올려드리겠습니다. 편집기를 따라 살펴보겠습니다.
Docker 서비스 프로세스가 시작되면 docker0이라는 네트워크 브리지가 생성됩니다. 컨테이너는 기본적으로 이 브리지에 마운트되지만 docker 시작 매개변수 -b를 추가할 수 있습니다. Birdge를 사용하거나 docker구성 파일을 변경하여 사용할 브리지를 선택하세요.
운영 체제: centos7
삭제docker0 bridge
service docker stop //关闭docker服务 ip link set dev docker0 down //关闭docker0网桥 ip link del dev docker0 //删除docker0网桥
사용자 정의 브리지 설정(/etc/sysconfig/network-scripts/ifcfg-br0 파일)
DEVICE="br0" ONBOOT="yes" TYPE="Bridge" BOOTPROTO="static" IPADDR="10.10.10.20" NETMASK="255.255.255.0" GATEWAY="10.10.10.20" DEFROUTE="yes" NM_CONTROLLED="no"
네트워크 서비스 다시 시작
service network restart
네트워크 브리지 보기
[black@test opt]$ brctl show bridge name bridge id STP enabled interfaces br0 8000.32e7297502be no virbr0 8000.000000000000 yes
다음으로 docker를 다시 시작해야 합니다. docker 서비스를 시작할 수 있습니다. 프로세스 중에 다음 두 가지 방법이 사용됩니다.
첫 번째 방법: -b 매개변수는 네트워크 브리지를 지정합니다.
[root@test opt]# docker -d -b br0 INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) INFO[0000] [graphdriver] using prior storage driver "devicemapper" WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1 INFO[0000] Loading containers: start. ...... INFO[0000] Loading containers: done. INFO[0000] Daemon has completed initialization INFO[0000] Docker daemon commit=786b29d execdriver=native-0.2 graphdriver=devicemapper version=1.7.1
Docker 서비스 프로세스를 시작하는 이유를 모르겠습니다. 이렇게 하면 현재 터미널( ︶︿︶)이 차단되므로 터미널을 다시 열고 컨테이너를 실행해야 했습니다.
[root@test shell]# docker run -ti --rm centos:latest [root@3c6874559411 /]# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:0A:0A:0A:01 inet addr:10.10.10.1 Bcast:0.0.0.0 Mask:255.255.255.0 inet6 addr: fe80::42:aff:fe0a:a01/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:418 (418.0 b) TX bytes:508 (508.0 b)
컨테이너가 br0 브리지를 성공적으로 사용했습니다.
두 번째: /etc/sysconfig/docker 파일 수정
이 작업을 수행할 때 약간의 문제가 발생하여 /etc/sysconfig/docker를 수정했습니다. file
[root@test opt]# vi /etc/sysconfig/docker # /etc/sysconfig/docker # # Other arguments to pass to the docker daemon process # These will be parsed by the sysv initscript and appended # to the arguments list passed to docker -d other_args="-b br0"
그런 다음 service docker start를 사용하여 docker 서비스를 시작했지만 other_args가 적용되지 않습니다. centos7에서는 servicer docker start가 계속 systemctl start docker.service 명령을 사용하여 실행되므로 확인/ usr/lib/systemd/system/docker.service
[root@test opt]# vi /lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] ExecStart=/usr/bin/docker -d -H fd:// MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity [Install] WantedBy=multi-user.target
는 ExecStart 항목에 실행 매개변수가 없다는 것을 발견하여 ExecStart를 /usr/bin/docker -d -b br0 -H fd:/로 변경했습니다. /, docker 서비스를 실행하고 컨테이너를 시작한 후 br0 브리지를 성공적으로 사용할 수 있는지 확인합니다.
인터넷에서 더 좋은 방법을 봤습니다. docker.service를 다음
[black@test ~]$ vi /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] EnvironmentFile=-/etc/sysconfig/docker ExecStart=/usr/bin/docker -d $other_args -H fd:// MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity [Install] WantedBy=multi-user.target
로 변경하세요. 이때 other_args에 추가된 매개변수가 적용됩니다.
[관련 추천]
데이터 가져오기 시 innodb_index_stats에 대한 자세한 설명 프롬프트 테이블 기본 키 충돌 오류
3. Linux에서 zip 파일의 압축을 풀 때 잘못된 문자가 나타나면 어떻게 해야 하나요?
4. Linux에서 파티션 크기를 조정하는 방법을 알려주세요
5. Linux에서 서버 네트워크 상태를 감지하는 방법
위 내용은 Docker를 사용하여 네트워크 브리지를 수동으로 추가하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!