cari
RumahOperasi dan penyelenggaraanDockerApakah yang perlu saya lakukan jika docker tidak boleh ping hos?

Penyelesaian kepada masalah yang docker tidak boleh ping hos: 1. Ubah suai daemon.json; 2. Matikan firewall;

Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

Persekitaran pengendalian artikel ini: sistem ubuntu16.04, Docker 20.10.11, komputer Dell G3.

Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

Mod jambatan Docker tidak boleh ping hos

Perihalan masalah:

  DockerMod rangkaian terbahagi kepada empat jenis Secara umumnya, apabila kita tidak menetapkannya, lalainya ialah bridgetunggal mod jambatan, dan bekas menggunakan bebas network Namespace, dan bersambung ke docker0 kad rangkaian maya. Berkomunikasi dengan hos melalui docker0 bridge dan Iptables nat konfigurasi jadual.
  Pada masa ini, uji pada mesin benteng, gunakan busybox untuk menguji:

# 拉取镜像
docker pull busybox
# 运行容器
docker run -itd --name busy_bridge busybox

  Perintah docker network inspect bridge untuk melihat rangkaian:
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

Konfigurasi rangkaian berjaya , masukkan ke dalam bekas, lihat ip, anda dapat melihat bahawa ip telah diperuntukkan, tetapi ping gagal apabila menyambung ke rangkaian luaran dan tidak boleh menyambung ke rangkaian luaran:
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

 Tetapi di tempatan anda sendiri atau Ujian yang sama telah dijalankan di Alibaba Cloud dan didapati rangkaian boleh disambungkan Apakah punca masalah ini?

Analisis masalah:

  Selepas mencari maklumat di Internet, ramai orang memulakan semula docker dan kemudian mereka boleh menyambung Biasanya kerana konfigurasi tertentu diubah suai dan kemudian memulakan semula tidak berfungsi di sini. Terdapat beberapa pengubahsuaian umum, sila uji satu demi satu di bawah:

  1. Pengubahsuaiandaemon.json

Bekas tidak boleh mengakses mesin hos. Kerana segmen rangkaian yang diperuntukkan oleh jambatan bercanggah dengan hos, anda perlu mengubah suai daemon.json untuk menentukan peruntukan Gunakan perintah vim /etc/docker/daemon.json untuk masuk dan menambah:

{"bip":"172.16.10.1/24"}

 Walaupun. anda boleh memulakan semula docker dan mencipta Akses bekas, walau bagaimanapun, tiada konflik sama sekali antara ip yang asalnya diperuntukkan oleh hos benteng dan bekas, jadi kaedah ini tidak berfungsi.

  1. Matikan tembok api

  Bekas tidak boleh mengakses hos melalui jambatan, dan oleh itu tidak boleh mengakses rangkaian luaran menyekat akses, supaya ia boleh dimatikan atau membuka port tertentu. Diuji pada pelayan, menghidupkan tembok api dan mendapati bahawa bekas itu memang tidak dapat mengakses halaman utama Baidu dan hos Selepas menutup tembok api dan memulakan semula docker, bekas itu boleh mengakses seperti biasa.
 Namun, tembok api pada mesin benteng pada asalnya dimatikan, jadi kaedah ini tidak berguna.

  1. Ubah suaisysctl.conf

  dockerRangkaian dalaman hos adalah perkara biasa, tetapi sambungan dengan hos lain adalah tidak sah dan hos lain tidak boleh menyambungdocker Port yang dipetakan pada hos tidak boleh menyambung ke hos luaran dalam docker Gunakan perintah docker info untuk melihat maklumat dan mencari ralat berikut:

WARNING: IPv4 forwarding is disabled
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Gunakan. arahan vim /etc/sysctl.conf untuk mengedit fail konfigurasi dan tambahkan yang berikut pada Kod fail:

net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-arptables=1
net.ipv4.ip_forward=1

 kemudian gunakan arahan systemctl restart network untuk memulakan semula rangkaian, semak docker info sekali lagi, dan amaran hilang . Tetapi ia masih tidak berguna Bekas pada mesin benteng masih tidak boleh mengakses mesin hos melalui jambatan dan tidak boleh mengakses rangkaian luaran.

  1. Tetapkan semula jambatan

  Selepas menggunakan arahan yum install bridge-utils untuk memasang alat, gunakan brctl show untuk melihat jambatan dan anda akan cari:
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?
Gunakan perintah docker network create [网桥名] untuk mencipta jambatan baharu dan ketahui sama ada bridge id atau 8000.0000000000 yang dijana dijana pada jambatan baharu dan semak semula di sana tiada perubahan, menunjukkan bahawa ia mungkin merupakan persoalan.
Uji sekali lagi. Pada masa ini, jambatan ip ialah 172.17.0.1 dan bekas ip ialah 172.0.0.2 Didapati bahawa fungsi hos boleh ping bersambung ke jambatan, tetapi tidak boleh disambungkan bekas, dan bekas tidak boleh menyambung ke jambatan Menyambung ke mesin hos, apatah lagi rangkaian luaran, jadi mesti ada masalah dengan jambatan rangkaian di sini.

问题解决

  这里docker network生成新的网桥不行,说明dockernetwork存在问题,我们利用刚才下载的bridge-utils来创建网桥。
  首先暂停docker服务,利用指令:

service docker stop

  添加网桥:

brctl addbr br0

  添加ip字段:

ip addr add 172.16.0.1/24 dev br0

  启用网桥br0

ip link set dev br0 up

  查看网络br0
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

  修改docker默认网桥:

vim /etc/docker/daemon.json

  添加字段:

"bridge":"br0"

  重启docker

service docker start

  此时查看网桥:
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

  在没有挂载容器前,依旧是8000.000000000000。运行测试容器:

docker run -itd --name busy_test busybox

  查看Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?:
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

  此时容器挂载在网桥上了,再次查看网桥id
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

  说明已经其作用,进入测试容器内部,Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?:
Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?

  成功!
  补充:这里使用docker network新建网桥,没有用,发现新建网桥挂载容器后,其bridge id依旧不变,没有起作用,说明堡垒机上的docker network可能存在问题。

问题补充:

  上面的问题是创建自定义网桥,然后在自定义网桥上连接容器ab,结果宿主机无法pingab,且进入容器内部后,两个容器无法ping通自定义网络,但能彼此相通。
  查了很多资料,发现了这篇文章。博主说问题原因是系统内核的网桥模块bridge.ko加载失败导致,解决问题的方案是升级内核或升级系统。
  升级centos内核参考这篇。
  升级完成后,重装Docker,自定义网桥和容器,成功!不再有网络问题。

推荐学习:《docker视频教程

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika docker tidak boleh ping hos?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Docker vs Kubernetes: Memutuskan Yang Perlu DigunakanDocker vs Kubernetes: Memutuskan Yang Perlu DigunakanApr 29, 2025 am 12:05 AM

Perbezaan antara Docker dan Kubernet adalah bahawa Docker adalah platform kontena yang sesuai untuk projek kecil dan persekitaran pembangunan; Kubernet adalah sistem orkestra kontena yang sesuai untuk projek besar dan persekitaran pengeluaran. 1.Docker memudahkan penggunaan aplikasi dan sesuai untuk projek kecil dengan sumber yang terhad. 2. Kubernetes menyediakan keupayaan automasi dan skalabiliti, sesuai untuk projek besar yang memerlukan pengurusan yang cekap.

Docker dan Kubernet: Membina Aplikasi SkalaDocker dan Kubernet: Membina Aplikasi SkalaApr 28, 2025 am 12:18 AM

Gunakan Docker dan Kubernet untuk membina aplikasi berskala. 1) Buat imej kontena menggunakan Dockerfile, 2) Penyebaran dan perkhidmatan Kubernet melalui perintah Kubectl, 3) Gunakan HorizontalPodautoscaler untuk mencapai skala automatik, dengan itu membina seni bina aplikasi yang cekap dan berskala.

Kubernet dan Docker: Analisis PerbandinganKubernet dan Docker: Analisis PerbandinganApr 27, 2025 am 12:05 AM

Perbezaan utama antara Docker dan Kubernet adalah bahawa Docker digunakan untuk kontena, manakala kubernet digunakan untuk orkestra kontena. 1.Docker menyediakan persekitaran yang konsisten untuk membangun, menguji dan menggunakan aplikasi, dan melaksanakan pengasingan dan batasan sumber melalui bekas. 2. Kubernetes menguruskan aplikasi kontena, menyediakan fungsi penempatan, pengembangan dan pengurusan automatik, dan menyokong pengimbangan beban dan penskalaan automatik. Gabungan kedua -duanya dapat meningkatkan penggunaan aplikasi dan kecekapan pengurusan.

Docker Running di Linux: Pemasangan dan KonfigurasiDocker Running di Linux: Pemasangan dan KonfigurasiApr 26, 2025 am 12:12 AM

Memasang dan mengkonfigurasi Docker pada Linux memerlukan memastikan bahawa sistem adalah versi 64-bit dan kernel 3.10 dan ke atas, gunakan perintah "sudoapt-getupdate" dan pasangkannya dengan perintah "sudoapt-getupdate" dan sahkan dengan "sudoapt-getdate" dan. Docker menggunakan ruang nama dan kumpulan kawalan kernel Linux untuk mencapai pengasingan kontena dan batasan sumber. Imej adalah templat baca sahaja, dan bekas boleh diubahsuai. Contoh penggunaan termasuk menjalankan pelayan Nginx dan membuat imej dengan dockerfiles tersuai. biasa

Mengapa menggunakan Docker? Faedah dan kelebihan dijelaskanMengapa menggunakan Docker? Faedah dan kelebihan dijelaskanApr 25, 2025 am 12:05 AM

Alasan untuk menggunakan Docker adalah bahawa ia menyediakan persekitaran yang cekap, mudah alih dan konsisten untuk membungkus, mengedarkan, dan menjalankan aplikasi. 1) Docker adalah platform kontena yang membolehkan pemaju untuk membungkus aplikasi dan kebergantungan mereka ke dalam bekas ringan, mudah alih. 2) Ia berdasarkan teknologi kontena Linux dan sistem fail bersama untuk memastikan permulaan yang cepat dan operasi yang cekap. 3) Docker menyokong pembinaan pelbagai peringkat, mengoptimumkan saiz imej dan kelajuan penempatan. 4) Menggunakan Docker dapat memudahkan proses pembangunan dan penempatan, meningkatkan kecekapan dan memastikan konsistensi di seluruh persekitaran.

Docker in Action: Contoh Dunia dan Kes Gunakan SeduniaDocker in Action: Contoh Dunia dan Kes Gunakan SeduniaApr 24, 2025 am 12:10 AM

Senario aplikasi Docker dalam projek sebenar termasuk memudahkan penggunaan, menguruskan aplikasi multi-kontainer dan pengoptimuman prestasi. 1.Docker memudahkan penggunaan aplikasi, seperti menggunakan DockerFile untuk menggunakan aplikasi Node.js. 2. DockerCompose menguruskan aplikasi multi-kontainer, seperti perkhidmatan web dan pangkalan data dalam seni bina microservice. 3. Pengoptimuman Prestasi menggunakan pembinaan pelbagai peringkat untuk mengurangkan saiz imej dan memantau status kontena melalui pemeriksaan kesihatan.

Docker vs Kubernet: Gunakan Kes dan SenarioDocker vs Kubernet: Gunakan Kes dan SenarioApr 23, 2025 am 12:11 AM

Pilih Docker dalam persekitaran kecil atau persekitaran pembangunan, dan Kubernet dalam persekitaran projek atau pengeluaran yang besar. 1.Docker sesuai untuk lelaran dan ujian pesat, 2. Kubernetes menyediakan keupayaan orkestra kontena yang kuat, sesuai untuk mengurus dan memperluaskan aplikasi besar.

Docker on Linux: Containerization untuk Sistem LinuxDocker on Linux: Containerization untuk Sistem LinuxApr 22, 2025 am 12:03 AM

Docker adalah penting pada Linux kerana Linux adalah platform asalnya yang menyediakan alat yang kaya dan sokongan masyarakat. 1. Pasang Docker: Gunakan sudoapt-getupdate dan sudoapt-getinstalldocker-cedocker-ce-clicotainerd.io. 2. Buat dan Menguruskan Bekas: Gunakan arahan Dockerrun, seperti Dockerrun-D-Namemynginx-P80: 80nginx. 3. Tulis Dockerfile: Mengoptimumkan saiz imej dan gunakan pembinaan pelbagai peringkat. 4. Pengoptimuman dan penyahpepijatan: Gunakan dockerlog dan dockerex

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular