Mengapa ifconfig tidak tersedia dalam wadah Ubuntu Docker?


64

Dengan basis ubuntu:12.04, ifconfigtidak tersedia dalam wadah, meskipun ipperintahnya tersedia, mengapa ini? dan, bagaimana cara masuk ke ifconfigdalam wadah?



Saya sadar bahwa ifconfigitu sudah usang, tetapi beberapa program masih bergantung padanya.
Pellaeon

3
Apakah pengembangnya masih hidup? Ini sudah ditinggalkan bertahun-tahun yang lalu.
Michael Hampton

Ada bug saat menggunakan ipdalam versi perangkat lunak saat ini. Saya perlu solusi cepat untuk masalah ini.
Pellaeon

1
"Beberapa program" dan "ada bug": dapatkah Anda lebih spesifik?
Mark Wagner

Jawaban:


95

Anda dapat menginstal ifconfig dengan apt-get install net-tools. (Khususnya, dengan menambahkan RUN apt-get install -y net-toolske Dockerfile Anda.)

Berdasarkan pengujian saya, ifconfig termasuk dalam ubuntu: 14.04.


6
Masih membuat saya bertanya-tanya mengapa itu tidak termasuk secara default, tapi saya kira inti dari wadah ini adalah seminimal mungkin dan masih berfungsi.
Iguananaut

5
Tambahan lain - pada contoh baru dari wadah Ubuntu daftar paket juga tidak terisi, jadi Anda harus menjalankannya sudo apt-get updatejika belum.
Iguananaut

1
ifconfigtidak termasuk dalam ubuntu:16:04.
JamesThomasMoon1979

11
Untuk menjawab @Iguananaut: VM Ubuntu adalah 500+ MB, sedangkan gambar Ubuntu Docker kurang dari 100MB. Orang-orang yang membuat wadah gambar perlu menggambar garis untuk paket / binari apa yang harus dimasukkan dan apa yang tidak, sehingga hanya menyimpan kebutuhan dasar di dalam. Anda tahu, semua ini lebih masuk akal jika Anda menganggap wadah sebagai proses, dan bukan sebagai 'lingkungan komputasi yang terisolasi untuk dimainkan di dalam dan di sekitar'
Rushi Agrawal

13

Kecuali dan sampai Anda dapat menginstal net-tools, tidak perlu untuk memberikannya secara default. Juga jika Anda ingin melihat alamat IP maka ada perintah lain yang tersedia oleh buruh pelabuhan itu sendiri: -

docker inspect <container_name or container_id>

buruh pelabuhan memeriksa sintaks:docker inspect [OPTIONS] NAME|ID [NAME|ID...]

Cmd ini akan menunjukkan kepada Anda setiap detail wadah yang berjalan termasuk alamat IP.


4

Saya juga menemukan gangguan ini, tetapi seperti yang ditulis Devendra di docker, Anda bisa mendapatkan semua detail tentang wadah tanpa itu net-tools. Dalam kasus saya, saya membutuhkan IP kontainer. Untuk mengekstrak IP Anda dapat menggunakan:

docker inspect <container-id> \
  | grep "\"IPAddress\"" -m 1 \
  | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

Sunting notasi yang bahkan lebih pendek untuk mendapatkan IP kontainer (lihat contoh inspeksi buruh pelabuhan ):

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-id-or-name>

Namun ini tidak akan berfungsi di dalam wadah, seperti yang diminta OP.
Gerald Schneider

Kamu benar. Kelihatannya seperti tip yang berguna, dan saya pikir OP kemungkinan besar juga mencari untuk menemukan IP wadah itu.
Ditaati
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.