मेरी ubuntu docker छवि में "ifconfig" कमांड कैसे स्थापित करें?


88

मैंने अभी-अभी ubuntu docker की छवि स्थापित की है, जब मैं "ifconfig" निष्पादित करता हूं, तो कहता है कि ऐसी कोई कमांड नहीं है, मैंने apt-get install की कोशिश की, "ifconfig" नाम का कोई पैकेज नहीं है (मैं कुछ अन्य चित्र स्थापित कर सकता हूं)।

तो यह कैसे करना है? धन्यवाद।


4
serverfault.com/a/614972 - आपके डॉकरफाइल के भीतरRUN apt-get install -y net-tools
ब्रायन

1
iproute2 लिनक्स नेटवर्किंग टूलकिट कि प्रतिस्थापित नेट उपकरण (ifconfig, मार्ग, एआरपी आदि) देखें baturin.org/docs/iproute2 और यह भी देखने lwn.net/Articles/710533
स्कॉट Stensland

क्या मैं एसओ में स्थापना के बारे में सवाल पूछ सकता हूं? प्रोग्रामर द्वारा आमतौर पर उपयोग किए जाने वाले सॉफ्टवेयर टूल के बारे में प्रश्न एक व्यावहारिक, जवाबदेह समस्या
ट्रेंटन मैककिनी

जवाबों:


182

एक ताजा ubuntu docker छवि पर, दौड़ें

apt-get update
apt-get install net-tools

इन्हें डॉकटर कंटेनर में लॉग इन करके निष्पादित किया जा सकता है या इसी के साथ एक छवि बनाने के लिए अपने डॉकफाइल में जोड़ सकते हैं।


7
नेट उपकरण अब अप्रचलित ... अब उसके स्थान पर है: iproute2 लिनक्स नेटवर्किंग टूलकिट कि प्रतिस्थापित नेट उपकरण (ifconfig, मार्ग, एआरपी आदि) देखें baturin.org/docs/iproute2 और यह भी देखने lwn.net/Articles/710533
स्कॉट स्टेंसलैंड

12

आप इस पर भी विचार कर सकते हैं:

RUN apt-get update && apt-get install -y iputils-ping

( कोंटैंगो टिप्पणियों के रूप में : आपको पहले apt-get updateभंडार चलाना चाहिए , लापता भंडार के साथ त्रुटि से बचने के लिए)।

देखें " आईपी साथ ifconfig की जगह "

यह सबसे अधिक बार उस कमांड के साथ आगे बढ़ने की सिफारिश की जाती है जो बदल गई है ifconfig। यह आदेश है ip, और यह आउट-ऑफ-डेट के लिए कदम बढ़ाने का एक बड़ा काम करता है ifconfig

लेकिन जैसा कि " होस्ट से डॉकर कंटेनर का आईपी पता प्राप्त करना " में देखा गया है, docker inspectआपके उपयोग के मामले के आधार पर उपयोग करना अधिक उपयोगी हो सकता है।


1
पहले चलना चाहिए apt-get update(लापता भंडार के साथ त्रुटि से बचने के लिए)।
कंटैंगो

1
@ कांटांगो धन्यवाद। अधिक दृश्यता के जवाब में मैंने आपकी टिप्पणी को शामिल किया है।
VONC

RUN apt-get update && apt-get install -y iputils-pingनहीं ip-utils-ping कम से कम कि कैसे यह मेरे लिए काम करता है।
चेस

@ कैच धन्यवाद। मैंने उसी के अनुसार उत्तर संपादित किया है।
VonC

2

चल रहे कंटेनर का आईपी पता प्राप्त करने के लिए कृपया नीचे दिए गए आदेश का उपयोग करें।

$ ip addr

उदाहरण-:

root@4c712d05922b:/# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
247: eth0@if248: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.6/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:6/64 scope link
       valid_lft forever preferred_lft forever

यह Ubuntu docker छवि 747cb2d60bbe में काम नहीं कर रहा है। ifconfigयह भी काम नहीं कर रहा है।
शिमताई

2

Dockerfile के भीतर से निम्नलिखित की तरह कुछ करना चाहिए:

RUN apt-get update && \
     apt-get install -y net-tools

मेमोरी से अपडेट को संयोजित करने और पैकेज इंस्टॉलेशन लाइनों को अपडेट करने के चरण को रोकने के लिए यह सबसे अच्छा अभ्यास है, जिसके परिणामस्वरूप आउट-डेटेड पैकेज स्थापित हो सकते हैं।

इसे CLI या शेल स्क्रिप्ट के माध्यम से संस्थापित करना:

apt-get update && apt-get install net-tools


2

मैं यहां आया क्योंकि मैं अपने आईपीएड्रेस को खोजने के लिए कंटेनर पर ifconfig का उपयोग करने की कोशिश कर रहा था और कोई ifconfig नहीं था। यदि आपको वास्तव में कंटेनर पर ifconfig की आवश्यकता है, तो ऊपर @ विष्णु-नारायणन उत्तर के साथ जाएं, हालाँकि आप होस्ट पर docker निरीक्षण का उपयोग करके अपनी आवश्यक जानकारी प्राप्त करने में सक्षम हो सकते हैं:

docker inspect <containerid>

आउटपुट में बहुत अच्छा सामान है, जिसमें कंटेनर का IPAddress भी शामिल है:

"Networks": {
    "bridge": {
        "IPAMConfig": null,
        "Links": null,
        "Aliases": null,
        "NetworkID": "12345FAKEID",
        "EndpointID": "12345FAKEENDPOINTID",
        "Gateway": "172.17.0.1",
        "IPAddress": "172.17.0.3",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "MacAddress": "01:02:03:04:05:06",
        "DriverOpts": null
    }
}

1

यदि आप "नियमित" उबंटू स्थापना के रूप में डॉकर छवि का उपयोग करना चाहते हैं, तो आप भी चला सकते हैं unminimize। यह बहुत से अधिक स्थापित करेगा ifconfig, इसलिए यह वह नहीं हो सकता जो आप चाहते हैं।



0

यदि GNS3 के अंदर Ubuntu ifocker छवि 'ifconfig' को पहचान नहीं रही है, तो आपको अपने होस्ट पर Ubuntu docker छवि खोलने की आवश्यकता होगी।

मान लें कि आपके पास पहले से ही अपने मेजबान पीसी पर डॉक है और ubuntu खींचकर छवियों से खींचता है। अपने होस्ट OS (Linux, CentOS, आदि) CLI में ये कमांड दर्ज करें।

$docker images

$docker run -it ubuntu

$apt-get update

$apt-get install net-tools

(साइड नोट: आप जो भी अन्य उपकरण और सेवाएँ जोड़ सकते हैं, उन्हें अभी जोड़ सकते हैं, लेकिन अभी के लिए यह काम करने के लिए ifconfig प्राप्त करना है।)

$exit

अब आप डॉकर को ये बदलाव करेंगे। परिवर्तन करने के लिए यह लिंक सबसे अच्छा सारांश है और काम करता है (चरण 4 पर जाएं):

https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image#htoc-step-3-modify-the-container

जब आप GNS3 में docker की छवि को फिर से खोलते हैं, तो आपके पास ifconfig कमांड प्रयोग करने योग्य होनी चाहिए और आपके द्वारा कंटेनर में जोड़े गए अन्य उपकरण या सेवाएँ।

का आनंद लें!


-1

sudo apt-get install iproute2 इसके बाद ip addr शो चलाएं

यह काम करता हैं..


2
नमस्ते, ढेर अतिप्रवाह में आपका स्वागत है। जैसा कि यह एक अत्यंत लोकप्रिय स्वीकृत उत्तर के साथ एक पुराना प्रश्न है, कृपया अपने उत्तर को यह समझाने के लिए संपादित करें कि यह क्या प्रदान करता है कि मौजूदा उत्तर नहीं हैं। धन्यवाद।
मैंडीशॉ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.