চলমান ধারকটির হোস্টনাম কীভাবে নির্দিষ্ট করবেন?


51

চলমান ডকার পাত্রে হোস্টনামটি সেট করতে আমার সমস্যা হচ্ছে। চিত্রটি শুরু হওয়ার পরে কীভাবে হোস্টনাম নির্দিষ্ট করতে হবে তা বুঝতে আমারও সমস্যা হচ্ছে ।

আমি ডাউনলোড করা একটি চিত্র থেকে একটি ধারক শুরু করেছি:

sudo docker run -p 8080:80 -p 2222:22 oskarhane/docker-wordpress-nginx-ss

তবে আমি হোস্ট-এর মাধ্যমে নির্দিষ্ট করতে ভুলে গেছি -h; কনটেইনারটি চলছে এমন আমি কীভাবে হোস্টনামটি নির্দিষ্ট করতে পারি?


আপনি কি কেবল ধারকটি থামিয়ে আবার কোনও হোস্টনাম সরবরাহ করা শুরু করতে পারেন?
দাউদ

এএআইএআইএকি এটি কেবল যখন আপনি runকোনও চিত্র ব্যবহার করেন তখনই যখন আপনি কোনও ধারক শুরু করেন না start
মিগুয়েল পিং

কখনও কখনও আপনি যা চান তা হ'ল সঠিক নাম সহ bash কমান্ড প্রম্পটটি দেখা। যদি এটি হয় তবে আপনি .bashrc এ PS1 মানটি সম্পাদনা করতে পারেন। পরামর্শের জন্য Askubuntu.com/a/549150/55365 দেখুন । যে কোনও PS1 এ আপনি সার্ভার বা পরিষেবাটির নাম দিয়ে আলাদা করে রাখতে * বা # দ্বারা ঘিরে একটি (রঙিন) স্ট্রিং যুক্ত করতে পারেন।
এসপিআরবিএনএন

@dawud আপনি একটি নতুন হোস্টনাম যখন runing দিতে পারবে না docker restart ডকুমেন্টেশন
dangonfast

উত্তর:


48

সম্পাদনা /etc/hostnameহ'ল একটি জিনিস যার জন্য আপনার ধারকটির ভিতরে ssh অ্যাক্সেস প্রয়োজন। অন্যথায়, আপনি -hবিকল্প সহ ধারকটি স্পিন করতে পারেন ।

হোস্ট এবং ডোমেন নাম সেট করতে:

$ docker run -h foo.bar.baz -i -t ubuntu bash
root@foo:/# hostname
foo
root@foo:/# hostname -d
bar.baz
root@foo:/# hostname -f
foo.bar.baz

5
আপনি docker exec /bin/bashচলমান ধারকটিতে, ইনস্টল করার প্রয়োজন নেই ssh(যা প্রশাসনের উদ্দেশ্যে একটি খারাপ অভ্যাস)।
jjmontes

আপনি / ইত্যাদি / হোস্টগুলি সম্পাদনা করতেও চাইতে পারেন যে এটি ঠিকানায় একটি ঠিকানায় সমাধান হয়েছে।
dtoubelis

2
আপনি চলমান ধারক hostname(হোস্টিং ক্ষমতা) সহ হোস্টের নাম পরিবর্তন করতে পারবেন না । রানিং প্রদত্ত হোস্টনেম সহ docker run -h <hostname> <image> <container-name>একটি নতুন ধারক তৈরি করে ।
ড্যাঙ্গনফাস্ট 11 '10

6

ধারক এবং পরিষেবা বন্ধ করুন

sudo docker stop CONTAINER_NAME
sudo service docker stop

কনফিগারেশন ফাইল (JSON) সম্পাদনা করুন [আপনার প্রথমে ব্যাকআপ নেওয়া উচিত]

/var/lib/docker/containers/CONTAINER_ID/config.json

প্রতিস্থাপন করা

"হোস্ট-নেম": "whatever"

সঙ্গে

"হোস্ট-নেম": "NEW_HOSTNAME"

ধারক এবং পরিষেবা শুরু করুন

sudo service docker start
sudo docker start CONTAINER_NAME

(Allyচ্ছিকভাবে আপনি ডকারও সংযুক্ত করতে পারেন)

sudo docker attach CONTAINER_NAME

ডকারের সম্পর্কে বিশদ বিবরণ (অর্থাত্ CONTAINER_NAME, CONTAINER_ID) দৌড়ের মাধ্যমে প্রাপ্ত করা যেতে পারে

sudo docker ps -a

কাজ করে না আমি যখনই ধারক শুরু করি ততই ওভাররাইট করা get
আহমেদ

এটা অদ্ভুত. আমি এই পদক্ষেপগুলি পুনরুত্পাদন করেছি এবং এটি এখনও কার্যকর হয়। ডকার সংস্করণ 1.7.1। আপনি কি ফাইলটি সম্পাদনার আগে নিশ্চিত হয়েছিলেন যে আপনি ধারক এবং পরিষেবা বন্ধ করেছেন?
টমোট

17.04.0-ce ডকারে কাজ করে, যখন / ইত্যাদি / হোস্টনামটি সম্পাদনা করেনি। আপনি যদি এখনও ধারকটি তৈরি না করে থাকেন তবে -H এর সাথে উত্তরটি আরও ভাল তবে আমার ক্ষেত্রে আমি ইতিমধ্যে কনটেইনার স্থাপনের সমস্যায় পড়েছিলাম এবং কেবল হোস্ট-নেম সেট করার জন্য এটি পুনরায় তৈরি করতে চাইনি।
aনা

কাজ করে নাDocker version 17.05.0-ce, build 89658be
ড্যানগনফাসা

4

ধারকটি পুনরায় চালু করা সহজ বিকল্প হবে - তবে আপনি / ইত্যাদি / হোস্টনামটি সম্পাদনা করতে পারেন এবং সেখান থেকে যেতে পারেন।


/etc/hostnameপুনঃসূচনা হওয়ার পরে সম্পাদনাটির কোনও প্রভাব নেই, যেহেতু এটি ডক দ্বারা পরিচালিত "আসল" হোস্টনামের সাথে প্রতিবার ওভাররাইট করা হয়। আপনি hostname
ধারকটিতে

এবং ধারকটি সম্পাদনা /etc/hostnameএবং পুনরায় চালু না করার কোনও উদ্দেশ্য নেই।
ডাঙ্গনফাস 11


1

https://evolvingweb.ca/blog/changing-docker-hostnames-namespaces এটি করার একটি উপায় বর্ণনা করে। বেসিক ধারণাটি docker inspectধারকটির পিড পাওয়ার জন্য ব্যবহার করা হয়, তারপরে ধারকটির ইউটিস নেমস্পেস প্রবেশ করুন nsenterhostnameসেই নেমস্পেসের অভ্যন্তরে চলমান ডকার উদাহরণের জন্য হোস্টনামটি পরিবর্তিত হবে যা সেই নামস্থানটি ভাগ করে।


2
দয়া করে সমাধানটি এখানে সরাসরি যুক্ত করুন, এবং কোনও বাহ্যিক লিঙ্কটিও অদৃশ্য হয়ে যেতে পারে
এতিমরা

0

অন্য কয়েকজন উল্লেখ করেছেন যে, config.v2.jsonফাইলটি সংশোধন করে পাত্রে এটি পরিবর্তন করা যেতে পারে ।

কেবলমাত্র ফাইলটি সম্পাদনার আগে ডকার পরিষেবা বন্ধ হয়ে গেছে তা নিশ্চিত হয়ে নিন, অন্যথায় এটি ওভারওয়ারাইটেন হবে। এই ক্রমে পদক্ষেপগুলি করা আবশ্যক

  • ধারক থামান
  • ডকার পরিষেবা বন্ধ করুন
  • - /var/lib/docker/containers/CONTAINER_ID/config.v2.json- ফাইলটি পরিবর্তন করুন

  • ডকার পরিষেবা শুরু করুন

  • পাত্রে শুরু করুন

এটি ডকারের ভি 17.05.0-সিটিতে আমার ব্যবহারের জন্য একটি ধারকটিতে কাজ করার বিষয়টি নিশ্চিত হয়ে গেছে --net=host/etc/hostnameফাইলটি পরিবর্তন করা কার্যকর হয় না এবং ফাইলটি কেবল ওভাররাইট করা ten


-3

মধ্যে

 /var/lib/docker/containers/CONTAINER/config.json

খুঁজে এবং সেট

"Config":{"Hostname":"utils","Domainname":"mysite.com", ...}

কাজ করে না Docker version 17.05.0-ce, build 89658be। কনফিগারেশন ওভাররাইট হয়ে যায়, কে কোথায় থেকে জানে। এবং পুনরায় চালু হওয়ার পরে হোস্টের নামটি নিজেই পরিবর্তন হয় না।
ডানগনফাস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.