আমি কীভাবে ডকারের ধারকের শেলটিতে প্রবেশ করব?


1160

আমি ডকারের সাথে কাজ শুরু করছি। আমি ওয়ার্ডপ্রেস বেস চিত্র এবং ডকার-রচনা ব্যবহার করছি।

আমি প্রাথমিক পর্বের সময় তৈরি হওয়া ফাইল / ডিরেক্টরিগুলি পরীক্ষা করার জন্য একটি পাত্রে প্রবেশ করার চেষ্টা করছি। আমি দৌড়ানোর চেষ্টা করেছি docker-compose run containername ls -la, কিন্তু তাতে কিছু হয়নি। এমনকি যদি এটি হয় তবে আমার একটি কনসোল থাকবে যেখানে আমি একটি কমান্ড চালানোর পরিবর্তে ডিরেক্টরি কাঠামোকে অতিক্রম করতে পারি। ডকারের সাথে এটি করার সঠিক উপায় কী?


উত্তরটি ডকের সংযুক্তি বলে মনে হচ্ছে। তবে আমি কীভাবে ডকার-রচনা থেকে এটি পেতে পারি?
অ্যান্ড্রু

3
docker exec Askubuntu.com/a/543057/35816 ব্যবহার করুন । ব্যবহার করে ধারক আইডি পানdocker ps
মরিসিও শ্যাফার

26
sudo docker run -it --entrypoint /bin/bash <container_name>ইন্টারেক্টিভভাবে আপনাকে পাত্রে প্রবেশ করে। তারপরে কেউ কনটেইনারটিতে ফাইল সিস্টেমটি পরিদর্শন করতে পারেনcd <path>
সের্গেই

উত্তর:


1728

docker attachআপনাকে আপনার ডকারের ধারকটির সাথে সংযোগ করতে দেবে, তবে এটি আসলে একই জিনিস নয় ssh। উদাহরণস্বরূপ, যদি আপনার ধারক কোনও ওয়েব সার্ভার চালাচ্ছেন docker attachতবে সম্ভবত আপনাকে ওয়েব সার্ভার প্রক্রিয়াটির স্টাডআউটের সাথে সংযুক্ত করবেন । এটি অগত্যা আপনাকে শেল দেবে না।

docker execকমান্ড সম্ভবত আপনি যা খুঁজছিলেন তা নয়; এটি আপনাকে কোনও বিদ্যমান পাত্রে অভ্যন্তরীণ কমান্ড চালাতে দেবে। উদাহরণ স্বরূপ:

docker exec -it <mycontainer> bash

অবশ্যই, আপনি যে কমান্ডটি চালাচ্ছেন তা অবশ্যই কনটেইনার ফাইল সিস্টেমে থাকতে হবে।

উপরের কমান্ডটিতে <mycontainer>লক্ষ্য ধারকটির নাম বা আইডি রয়েছে। আপনি ব্যবহার করছেন কিনা তা বিবেচ্য নয় docker compose; কেবল docker psআইডি (প্রথম কলামে প্রদর্শিত হেক্সাডেসিমাল স্ট্রিং) বা নাম (চূড়ান্ত কলামে প্রদর্শিত) ব্যবহার করুন। যেমন, দেওয়া:

$ docker ps
d2d4a89aaee9        larsks/mini-httpd   "mini_httpd -d /cont   7 days ago          Up 7 days                               web                 

আমি রান করতে পারি:

$ docker exec -it web ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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
18: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:3/64 scope link 
       valid_lft forever preferred_lft forever

আমি দৌড়ে একই কাজটি করতে পেরেছিলাম:

$ docker exec -it d2d4a89aaee9 ip addr

একইভাবে, আমি পাত্রে একটি শেল শুরু করতে পারে;

$ docker exec -it web sh
/ # echo This is inside the container.
This is inside the container.
/ # exit
$

76
এছাড়াও, docker execকেবল চালিত পাত্রে কাজ করে (অন্যথায় ব্যবহার করুন docker run -it --entrypoint /bin/bashবা অনুরূপ)।
L0j1k

59
আপনার সুবিধার জন্য -itএটি একটি সংমিশ্রণ -iএবং -tযা --interactiveযথাক্রমে --tty(" সংযুক্ত না হলেও STDIN খোলা রাখুন") ("সিউডো- টিটিওয়াই বরাদ্দ করুন")।
অ্যাড্রিয়ান ফেডার

22
আলপাইন লিনাক্স ভিত্তিক পাত্রে আপনার বাশ নাও থাকতে পারে, তাই যদি থাকে তবে পরিবর্তে sh ব্যবহার করুন।
রবিন গ্রিন

8
@ L0j1k docker run -it --entrypoint /bin/bash <imageid> --any --more --args, কেবলমাত্র মানুষের জন্য স্পষ্ট করার জন্য
আলেকজান্ডার মিলস

2
@ আলেকজান্ডারমিলস হ্যাঁ, এবং আরও স্পষ্ট করে বলার জন্য, --any --more --argsআপনার কাছে যাঁরা ইমেজটিকে ডোকর হিসাবে CMDনয় এবং চিত্রটি যা সংজ্ঞায়িত করেছেন তাতে খাওয়ানো হবে (বা যদি আপনার চিত্রটি কেবল একটি ENTRYPOINTএবং না হিসাবে সংজ্ঞায়িত করে CMD, তবে /bin/bashআপনি এখানে নির্দিষ্ট হিসাবে এই বিকল্পগুলি খাওয়ানো হবে) )। সুতরাং উদাহরণস্বরূপ অন্য কোনও docker runবিকল্প (যেমন --net "host") এর আগে যাওয়া দরকার <imageid>
L0j1k

302

চলমান ধারকটিতে ব্যাশ করতে, এটি টাইপ করুন:

docker exec -t -i container_name /bin/bash

অথবা

docker exec -ti container_name /bin/bash

অথবা

docker exec -ti container_name sh

এটি কি লিনাক্স ধারক?
পিটার মর্টেনসেন

5
/ বিন / বাশ অপ্রয়োজনীয় ছিল কেবল আমার জন্য এটি করা হয়েছে
আনন্দ বার্কি ফিলিপস

6
আমি এর docker exec -itপরিবর্তে পছন্দ করবdocker exec -t -i
ভ্যাটো


@Athithrajendraani কেবল দুটি পতাকা রাখার পরিবর্তে কমান্ডের একটি সংক্ষিপ্ত রূপ পছন্দ করেন, আপনি এই দুটি বিকল্পকে একই যুক্তিতে অন্তর্ভুক্ত করতে পারেন - এটি।
ভ্যাটো

85

আসুন বলে নেওয়া যাক যে কারণে আপনার নিজের, আপনি সত্যই এসএসএইচ ব্যবহার করতে চান না। এটি কয়েক পদক্ষেপ নেয়, তবে এটি করা যেতে পারে। আপনি যে কমান্ডগুলি সেট আপ করার জন্য ধারকটির ভিতরে চালাবেন সেগুলি এখানে ...

apt-get update
apt-get install openssh-server

mkdir /var/run/sshd
chmod 0755 /var/run/sshd
/usr/sbin/sshd

useradd --create-home --shell /bin/bash --groups sudo username ## includes 'sudo'
passwd username ## Enter a password

apt-get install x11-apps ## X11 demo applications (optional)
ifconfig | awk '/inet addr/{print substr($2,6)}' ## Display IP address (optional)

এখন আপনি এমনকি এসএসএইচ ক্লায়েন্টের কাছে এক্স 11 ফরোয়ার্ডিং ব্যবহার করে গ্রাফিকাল অ্যাপ্লিকেশনগুলি (যদি সেগুলি ধারকটিতে ইনস্টল করা থাকে) চালাতে পারেন:

ssh -X username@IPADDRESS
xeyes ## run an X11 demo app in the client

এখানে কিছু সম্পর্কিত সম্পদ রয়েছে:


33

আপনি যদি এখানে যেমন আমার মতো কোনও ডকার রচনা-নির্দিষ্ট উত্তর খুঁজছেন তবে উত্পন্ন ধারক আইডিটি সন্ধান না করে এটি একটি সহজ উপায় সরবরাহ করে।

docker-compose execআপনার docker-compose.ymlফাইল অনুসারে পরিষেবাটির নাম নেয় ।

সুতরাং আপনার 'ওয়েব' পরিষেবার জন্য বাশ শেল পেতে, আপনি এটি করতে পারেন:

$ docker-compose exec web bash

docker-compose runপাশাপাশি কাজ করে, যদি আপনার ধারকটি এখনও উপস্থিত না থাকে।
পল

23

বিজ্ঞপ্তি : এই উত্তরটি আমার লেখা একটি সরঞ্জামকে উত্সাহ দেয়।

আমি একটি ধারকযুক্ত এসএসএইচ সার্ভার তৈরি করেছি যা আপনি যে কোনও চলমান ধারককে আটকে রাখতে পারেন। এইভাবে আপনি প্রতিটি ধারক দিয়ে রচনাগুলি তৈরি করতে পারেন। একমাত্র প্রয়োজন হ'ল কনটেইনারটিতে বাশ রয়েছে।

নিম্নলিখিত উদাহরণটি একটি 'এসএসএইচ সার্ভার শুরু করবে যার সাথে' আমার-ধারক 'নামটি ধারণ করা হবে।

docker run -d -p 2222:22 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e CONTAINER=my-container -e AUTH_MECHANISM=noAuth \
  jeroenpeeters/docker-ssh

ssh localhost -p 2222

আপনি যখন এই এসএসএইচ সার্ভিসে সংযোগ করবেন (আপনার পছন্দের এসএসএইচ ক্লায়েন্টের সাথে) একটি বাশ সেশনটি 'আমার-ধারক' নামযুক্ত ধারকটিতে শুরু করা হবে।

আরও পয়েন্টার এবং ডকুমেন্টেশনের জন্য দেখুন: https://github.com/jeroenpeeters/docker-ssh


1
এটা বেশ মিষ্টি। এইভাবে করার বড় সুবিধা হ'ল আপনি একটি সম্পূর্ণ কার্যকরী টার্মিনাল পাচ্ছেন। আমি যখন "ডকার এক্সিকিউটিভ" পদ্ধতির ব্যবহার করেছি তখন আমি টার্মিনাল বিষয়বস্তু সাফ করতে পারিনি, lessপ্রতিবার এটি চালানোর সময় একটি সতর্কতা দেখিয়েছিলাম Jer ডকুমেন্টেশন চেক আউট নিশ্চিত করুন । প্রতিক্রিয়াতে নমুনা কমান্ডটি আর বৈধ বলে মনে হচ্ছে না।
রাফাł জি।

1
এটি একটি দুর্দান্ত সরঞ্জাম। আপনি কী জানেন আমি কীভাবে এটি জেনকিনস পাইপলাইন ডকার এজেন্ট হিসাবে ব্যবহার করতে পারি? আমি চাই জেনকিনস এসসিপি দ্বারা কিছু ফাইল রিমোট হোস্টে স্থানান্তরিত করতে এবং এসএসএইচ দিয়ে তাদের সম্পাদন করতে
গিলসন

21

আপনি যদি উইন্ডোজে ডকার ব্যবহার করেন এবং কোনও ধারকটিতে শেল অ্যাক্সেস পেতে চান তবে এটি ব্যবহার করুন:

winpty docker exec -it <container_id> sh

সম্ভবত, আপনি ইতিমধ্যে গিট ব্যাশ ইনস্টল করেছেন। আপনি যদি তা না করেন তবে এটি ইনস্টল করতে ভুলবেন না।


1
লিনাক্স ডকারের ধারক ধারনা করে?
পিটার মর্টেনসেন

1
ডকার
এক্সিকিউট

17

যদি ধারকটি ইতিমধ্যে বেরিয়ে এসেছে (কিছু ত্রুটির কারণে), আপনি এটি করতে পারেন

$ docker run --rm -it --entrypoint /bin/ash image_name

অথবা

$ docker run --rm -it --entrypoint /bin/sh image_name

অথবা

$ docker run --rm -it --entrypoint /bin/bash image_name

একটি নতুন ধারক তৈরি এবং এটিতে একটি শেল পেতে। যেহেতু আপনি --rm নির্দিষ্ট করেছেন, আপনি শেলটি থেকে প্রস্থান করার সময় ধারকটি মোছা হবে।


16

কিছু ক্ষেত্রে আপনার চিত্র আলপাইন ভিত্তিক হতে পারে। এই ক্ষেত্রে এটি নিক্ষেপ করা হবে:

ওসিআই রানটাইম এক্সিকিউট ব্যর্থ হয়েছে: এক্সিকিউট ব্যর্থ হয়েছে: ধারক_লিনক্স.গো: 348: কনটেইনার প্রক্রিয়া শুরু হওয়ার কারণে "এক্সিকিউটি: \" বাশ \ ": এক্সিকিউটেবল ফাইলটি $ PATH" তে পাওয়া যায় নি: অজানা

কারণ /bin/bashঅস্তিত্ব নেই। এর পরিবর্তে আপনার ব্যবহার করা উচিত:

docker exec -it 9f7d99aa6625 ash

অথবা

docker exec -it 9f7d99aa6625 sh

15

এই আদেশটি ব্যবহার করে একটি ডকার পাত্রে এসএসএইচ:

sudo docker exec -i -t (container ID) bash

12

উইন্ডোজ ধারকটিতে সিএমডি সংযোগ করতে, ব্যবহার করুন

docker exec -it d8c25fde2769 cmd

যেখানে d8c25fde2769 কনটেইনার আইডি।


11

এটা সহজ !

আপনার সমস্ত ডকার চিত্রগুলি তালিকাভুক্ত করুন:

sudo docker images

আমার সিস্টেমে এটি নিম্নলিখিত আউটপুটটি দেখিয়েছে:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
bash                latest              922b9cc3ea5e        9 hours ago
14.03 MB
ubuntu              latest              7feff7652c69        5 weeks ago         81.15 MB

আমার পিসিতে আমার কাছে দুটি ডকার চিত্র রয়েছে। ধরা যাক আমি প্রথম চালাতে চাই।

sudo docker run -i -t ubuntu:latest /bin/bash

এটি আপনাকে ধারকটির টার্মিনাল নিয়ন্ত্রণ দেবে। এখন আপনি ধারক ভিতরে সমস্ত ধরণের শেল অপারেশন করতে পারেন। করানো যেমন lsফাইল সিস্টেমের মূল সমস্ত ফোল্ডার আউটপুট হবে।

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

11

ফাইলগুলি পরিদর্শন করতে docker run -it <image> /bin/shএকটি ইন্টারেক্টিভ টার্মিনাল পেতে চালান । ইমেজগুলির তালিকাটি প্রাপ্ত হতে পারে docker imagesdocker execএই চিত্রটির বিপরীতে যখন কোনও চিত্র শুরু না হয় (বা চলার সাথে সাথেই প্রস্থান করা হয়)।


লিনাক্স ডকারের চিত্র অনুমান করা হচ্ছে?
পিটার মর্টেনসেন

10

সমাধান যোগ দিন

goinsideকমান্ড লাইন সরঞ্জামটি এর সাথে ইনস্টল করুন :

sudo npm install -g goinside

এবং এর সাথে সঠিক টার্মিনাল আকারের সাথে ডকারের ধারকের ভিতরে যান:

goinside docker_container_name

পুরানো উত্তর

আমরা এই স্নিপেটটি এখানে রেখেছি ~/.profile:

goinside(){
    docker exec -it $1 bash -c "stty cols $COLUMNS rows $LINES && bash";
}
export -f goinside

এটি সবাইকে কেবল এটির সাথে চলমান পাত্রে প্রবেশ করতে সক্ষম করে না:

goinside containername

এটি স্থির ডকার কনটেইনার টার্মিনাল মাপ সম্পর্কে দীর্ঘকালীন সমস্যা সমাধান করে । এটির মুখোমুখি হলে যা খুব বিরক্তিকর।

এছাড়াও আপনি যদি লিঙ্কটি অনুসরণ করেন তবে আপনার ডকারের ধারক নামগুলিরও কমান্ড সম্পূর্ণ করতে হবে।


1
ধন্যবাদ। এটি মন্ত্রকের মতো কাজ করে, কমপক্ষে ইতিমধ্যে অন্তর্ভুক্ত থাকা চিত্রগুলির জন্য। আলপাইন ভিত্তিক চিত্রগুলির জন্য কাজ না করার জন্য, বিশেষত শে / অ্যাশ ইত্যাদির জন্য আলাদাভাবে লেখা একটি ফাংশন দিয়ে এটি ঠিক করা যেতে পারে
গৌরব ভাস্কর

8
$ docker exec -it <Container-Id> /bin/bash

বা শেলের উপর নির্ভর করে, এটি হতে পারে

$ docker exec -it <Container-Id> /bin/sh

আপনি ধারক-আইডি মাধ্যমে পেতে পারেনdocker ps কমান্ডের

-i = ইন্টারেক্টিভ

-t = একটি psuedo-TTY বরাদ্দ


8

আমি ধারকটির টার্মিনালটিতে আরও সহজে অ্যাক্সেসের জন্য একটি টার্মিনাল ফাংশন তৈরি করেছি। এটি আপনার ছেলেদের জন্যও কার্যকর হতে পারে:

সুতরাং ফলাফল টাইপ করার পরিবর্তে:

docker exec -it [container_id] /bin/bash

আপনি লিখবেন:

dbash [container_id]

নিম্নলিখিতগুলি আপনার ~ / .Bash_profile (অথবা আপনার জন্য যে কিছু কাজ করে) তে রাখুন, তারপরে একটি নতুন টার্মিনাল উইন্ডোটি খুলুন এবং শর্টকাটটি উপভোগ করুন:

#usage: dbash [container_id]
dbash() {
    docker exec -it "$1" /bin/bash
}

7

আপনি বিকল্পটি পাস করে ডকার পাত্রে টার্মিনালের সাথে আলাপচারিতা করতে পারেন

docker run --rm -ti <image-name>
eg: docker run --rm -ti ubuntu

-t মানে টার্মিনাল -i এর অর্থ ইন্টারেক্টিভ ractive


6

docker execঅবশ্যই একটি সমাধান হবে। আপনি যে প্রশ্নটি জিজ্ঞাসা করেছেন তার সাথে কাজ করার একটি সহজ উপায় হ'ল ডকারের ভিতরে ডিরেক্টরিটি স্থানীয় সিস্টেমের ডিরেক্টরিতে স্থাপন করা

যাতে আপনি স্থানীয় পাথের পরিবর্তনগুলি তাত্ক্ষণিকভাবে দেখতে পান।

docker run -v /Users/<path>:/<container path> 

1
আপনার কমান্ডটি আসলে ধারকটিতে হোস্টের ডিরেক্টরিটি মাউন্ট করছে।
Demonbane

হ্যাঁ! অন্য ডিরেক্টরিতে ব্যাকআপ নিন এবং তারপরে ভলিউম মাউন্ট করুন, তারপরে মাউন্ট করা ফোল্ডারে ব্যাকআপটি সরান।
প্রতীক

6

ব্যবহার করুন:

docker attach <container name/id here>

অন্য উপায়ে, যদিও এটির জন্য একটি বিপদ রয়েছে, তা ব্যবহার করা হয় attachতবে আপনি যদি Ctrl+ Cসেশন থেকে বেরোতে চান তবে আপনি ধারকটিও থামিয়ে দেবেন। যদি আপনি কেবল দেখতে চান তবে কী ঘটছে তা ব্যবহার করুন docker logs -f

:~$ docker attach --help
Usage:  docker attach [OPTIONS] CONTAINER

Attach to a running container

Options:
      --detach-keys string   Override the key sequence for detaching a container
      --help                 Print usage
      --no-stdin             Do not attach STDIN
      --sig-proxy            Proxy all received signals to the process (default true)


4

আপনার যদি ডকার ইনস্টল থাকে তবে আপনি Kitematicজিইআইআই ব্যবহার করতে পারেন। Kitematicডকার আইকনটি থেকে খুলুন এবং Kitematicউইন্ডোতে আপনার ধারক নির্বাচন করুন এবং তারপরে execআইকনে ক্লিক করুন ।

আপনি এই জিইউআইতেও ধারক লগ এবং প্রচুর ধারক তথ্য (সেটিংস ট্যাবে) দেখতে পাবেন।

মেনু থেকে কাইটমেটিক নির্বাচন করুন

এক্সিকিউটে ক্লিক করুন


2

আমার ক্ষেত্রে, কোনও কারণে (গুলি) জন্য আমাকে প্রতিটি ধারকটিতে সমস্ত নেটওয়ার্কের সাথে জড়িত তথ্য পরীক্ষা করা দরকার। সুতরাং নিম্নলিখিত কমান্ডগুলি অবশ্যই একটি ধারকটিতে বৈধ হতে হবে ...

ip
route
netstat
ps
...

আমি এই সমস্ত উত্তরগুলি পরীক্ষা করে দেখলাম, কেউই আমার পক্ষে সহায়ক ছিল না। আমি অন্যান্য ওয়েবসাইটে তথ্য অনুসন্ধান করেছি। আমি এখানে একটি সুপার লিঙ্ক যুক্ত করব না, কারণ এটি ইংরেজিতে লেখা নেই written সুতরাং আমি এই পোস্টটি কেবলমাত্র আমার মতো একই প্রয়োজনীয়তা রয়েছে এমন লোকদের সংক্ষিপ্ত সমাধান সহ রেখেছি।

বলুন আপনার কাছে হালকা-পরীক্ষা নামে একটি চলমান ধারক রয়েছে। নীচের পদক্ষেপগুলি অনুসরণ করুন।

  • docker inspect light-test -f {{.NetworkSettings.SandboxKey}}। এই আদেশটি মত উত্তর পাবেন /var/run/docker/netns/xxxx
  • তারপরে ln -s /var/run/docker/netns/xxxx /var/run/netns/xxxx। ডিরেক্টরি উপস্থিত থাকতে পারে না, mkdir /var/run/netnsআগে করুন।
  • এখন আপনি ip netns exec xxxx ip addr showধারক মধ্যে নেটওয়ার্ক ওয়ার্ল্ড অন্বেষণ করতে পারেন।

পুনশ্চ. xxxxপ্রথম কমান্ড থেকে সর্বদা একই মান পাওয়া যায়। এবং অবশ্যই, অন্য কোনও কমান্ড বৈধ, যেমন ip netns exec xxxx netstat -antp|grep 8080


1

আরেকটি বিকল্প হ'ল ন্যানস্টার ব্যবহার করা ।

PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>)
nsenter --target $PID --mount --uts --ipc --net --pid

2
এর সাথে বেশ কয়েকটি সমস্যা রয়েছে nsenter। প্রথমটি হ'ল এটির জন্য আপনাকে ডকার হোস্টে শারীরিক অ্যাক্সেস থাকা দরকার, যা কোনও প্রদত্ত নয় (আপনি হয়ত একটি রিমোট ডকার এপিআই দিয়ে কাজ করছেন)। এছাড়াও, nsenterডকারের জায়গায় রাখা বেশ কয়েকটি সুরক্ষা এবং সংস্থানীয় বিধিনিষেধের হাতছাড়া করে (যা আপনার পরিবেশের উপর নির্ভর করে প্রো বা কন হতে পারে)।
11:41

1
এমনকি nsenter লেখক এই দিন ব্যবহার করতে বলেছেনdocker exec
L0j1k

1
@ অ্যালার্কস হ্যাঁ, উভয়েরই নিজস্ব সুবিধা রয়েছে। উদাহরণস্বরূপ, এই এক nsenter ওভার একটি সুবিধা docker execdocker execআমার কাছে আরও মার্জিত দেখাচ্ছে।
xuhdev

2
@ L0j1k কেবল কম বিভ্রান্তিকর হতে হবে: আপনি যে পোস্টটি উল্লেখ করেছেন সেটি নেসেন্টারের লেখক নয়, তবে ডোকর ইমেজের লেখক যা নেন্সটার চালায়।
xuhdev

1

আপনি যদি ডকার রচনা ব্যবহার করছেন তবে এটি আপনাকে ডকারের ধারকের ভিতরে নিয়ে যাবে।

docker-compose run container_name /bin/bash

ধারকটির ভিতরে এটি আপনাকে ডকফাইফিলের মধ্যে সংজ্ঞায়িত ওয়ার্কডিরের কাছে নিয়ে যাবে। আপনি আপনার কাজের ডিরেক্টরিটি পরিবর্তন করতে পারেন

WORKDIR directory_path # E.g  /usr/src -> container's path

0

নামের একটি চলমান ধারককে চালিত করার জন্য testনীচে নিম্নলিখিত কমান্ডগুলি দেওয়া হবে

পাত্রে যদি bashশেল থাকে

docker exec -it test /bin/bash

যদি bourneধারকটিতে শেল থাকে এবং বেশিরভাগ ক্ষেত্রে এটি উপস্থিত থাকে

docker run -it test /bin/sh

-3

ডকার-কমপোজ আপের জন্য (ডকার 4 ড্রুপাল)

docker-compose exec php bash

আমি লিনাক্স ল্যাপটপে দ্রুপালের জন্য ডকার ব্যবহার করি । docker-compose exec php bashধারকটি চালানোর পরে আমি ধারকটির সাথে সংযোগ রাখতে ' ' ব্যবহার করি যাতে আমি ড্রাশ কমান্ডো চালাতে পারি। এটা আমার জন্য ভালই কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.