ধারক হিসাবে একটি ডকার চিত্র চালান


604

আমি একটি ডকস্পাইল থেকে একটি ডকার চিত্র তৈরি করেছি। আমি দেখতে পাচ্ছি যে চিত্রটি সফলভাবে নির্মিত হয়েছিল, তবে আমি এটি দিয়ে কী করব? এটি একটি ধারক হিসাবে চালাতে সক্ষম হবে না?

উত্তর:


855

এটি চালানোর নির্দিষ্ট উপায়টি আপনি চিত্রটিকে ট্যাগ / নাম দিয়েছেন কিনা তা নির্ভর করে।

$ docker images
REPOSITORY          TAG                 ID                  CREATED             SIZE
ubuntu              12.04               8dbd9e392a96        4 months ago        131.5 MB (virtual 131.5 MB)

একটি নামের সাথে (আসুন উবুন্টু ব্যবহার করুন ):

$ docker run -i -t ubuntu:12.04 /bin/bash

কোনও নাম ছাড়াই, কেবল আইডি ব্যবহার করে:

$ docker run -i -t 8dbd9e392a96 /bin/bash

আরও তথ্যের জন্য দয়া করে ডকার রান রেফারেন্স দেখুন।


4
তাহলে 'NAME' এর অধীনে ছাপানো মানব-বান্ধব নামগুলি docker ps -aএখানে কি কার্যকর নয়?
থারস্ম্মোনার

11
docker psপাত্রে তালিকাবদ্ধ করে, চিত্র নয়। আপনি যদি কোনও ধারক থেকে একটি চিত্র তৈরি করতে চান তবে আপনার অবশ্যই আবশ্যক docker commit। আপনি ব্যবহার করতে পারেন NAME এর (যেমন কমিট মধ্যে docker commit _NAME_ _imagename_)
অ্যান্ডি

8
@ অ্যান্ডি আমরা কেন / বিন / ব্যাশ শেষে ব্যবহার করব? আমিও নতুন
রাহেল

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

আপনার যদি পরিবেশের পরিবর্তনশীল যুক্ত করার প্রয়োজন হয় তবে আপনি ডকার রান করতে পারেন -i -t -e ROOT_PASSWORD = রুট উবুন্টু: 12.04
বালাজি রাধাকৃষ্ণন

70

নিম্নলিখিত পদক্ষেপগুলি করুন:

  1. $ docker images

    আপনি নির্দিষ্ট ট্যাগ সহ সমস্ত স্থানীয় ডকার চিত্রের একটি তালিকা পাবেন।

  2. $ docker run image_name:tag_name

    যদি আপনি নির্দিষ্ট না করেন তবে tag_nameএটি স্বয়ংক্রিয়ভাবে 'সর্বশেষ' ট্যাগ সহ একটি চিত্র চালাবে।

    পরিবর্তে image_name, আপনি একটি চিত্র আইডি নির্দিষ্ট করতে পারেন (কোনও ট্যাগ_নাম নেই)।


35
  • ডকার চিত্রগুলি তালিকাভুক্ত করতে

    $ docker images
    
  • যদি আপনার অ্যাপ্লিকেশনটি 80 বন্দর দিয়ে চলতে চায় এবং আপনি স্থানীয়ভাবে বাঁধাই করতে একটি ভিন্ন পোর্ট প্রকাশ করতে পারেন তবে 8080 বলুন:

    $ docker run -d --restart=always -p 8080:80 image_name:version
    

21

আপনি আপনার উপলব্ধ চিত্রগুলি ব্যবহার করে দেখতে পারেন:

docker images

তারপরে আপনি বিচ্ছিন্ন মোডে চালাতে পারেন যাতে আপনার টার্মিনালটি এখনও ব্যবহারযোগ্য। আপনার কাছে কোনও সংগ্রহস্থল নাম (ট্যাগ সহ বা ছাড়াই) বা চিত্র আইডি ব্যবহার করে এটি চালানোর জন্য বেশ কয়েকটি বিকল্প রয়েছে:

docker run -d repository
docker run -d repository:tag
docker run -d image_id

তারপরে আপনি পরীক্ষা করতে পারেন যে আপনার ধারকটি ব্যবহার করে চলছে

docker ps

docker psআপনাকে একটি ধারক আইডি দেয়। আপনি এটি ব্যবহার করে বা কেবল 2/3 প্রথম অক্ষর ব্যবহার করে আপনার ধারকটিতে যেতে ব্যবহার করতে পারেন:

docker exec -it container_id /bin/bash

আর তুমি ব্যবহার করে এটি বন্ধ করতে পারবেন docker stop container_idএবং docker rm container_id

আপনি -rmআর্গুমেন্ট সহ আপনার ধারকটিও চালাতে পারেন তাই আপনি যদি আপনার ধারক বন্ধ করেন তবে এটি স্বয়ংক্রিয়ভাবে সরানো হবে।


1
--Rm (দ্রষ্টব্য: 2 ড্যাশগুলি একক নয়) বিকল্পটি সোনার !!!, আমার সিস্টেমটি বন্ধ (মৃত) পাত্রে আবদ্ধ।
জোহান স্নিগুজ

13

এই কমান্ডটি দিয়ে আপনি যে চিত্রটি চালাতে চান তার নাম বা আইডি পান:

docker images

ডকার রান কমান্ড নিম্নলিখিত পদ্ধতিতে ব্যবহৃত হয়:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

নীচে আমি প্রেরণ, নাম, প্রকাশ, ভলিউম এবং পুনঃসূচনা বিকল্পগুলি চিত্রের নাম বা আইডি নির্দিষ্ট করার আগে অন্তর্ভুক্ত করেছি:

docker run -d --name  container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name

কোথায়:

--detach , -d        Run container in background and print container ID
--name                Assign a name to the container
--publish , -p        Publish a container’s port(s) to the host
--volume , -v        Bind mount a volume
--restart            Restart policy to apply when a container exits

আরও তথ্যের জন্য, দয়া করে অফিসিয়াল ডকার রান রেফারেন্সটি দেখুন


5

ডকারে ওয়েবদেব পরিষেবা চালানোর জন্য এখানে একটি উদাহরণ। চিত্রটির নাম মরিসজবক / ওয়েবডাভ । আপনি এটি ডকার হাব থেকে টানতে পারেন ।

আপনি এই চিত্রগুলি চালনার পরে আপনি এখানে ওয়েবডিএভি ইনস্ট্যান্সেলটি অ্যাক্সেস করতে পারবেন http://localhost:8888/webdav। অভ্যন্তরীণভাবে ফোল্ডারটি /var/webdavওয়েবডিএভি রুট হিসাবে ব্যবহৃত হয়।

আপনি এই ধারকটি নিম্নলিখিত উপায়ে চালাতে পারেন:

$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav

পুনরায় "একটি ওয়েবদেব পরিষেবা চালান" : আপনার অর্থ "ওয়েবডিএভি পরিষেবা চালান" ? নাকি "ওয়েব ডেভলপমেন্ট সার্ভিস চালাবেন" ?
পিটার মর্টেনসেন

5

আমারও একই সমস্যা ছিল। আমি আমার ডকার ইমেজটি চালিয়েছি এবং এটি একটি নির্দিষ্ট CONTAINER_ID সহ একটি ধারক তৈরি করেছে। আমি একই ধারকটির সাথে কাজ করতে চেয়েছিলাম:

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

docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning

তারপরে আপনার তৈরি সমস্ত পাত্রে তালিকাবদ্ধ করুন:

sudo docker ps -a

এবং আপনি যে ধারকটির সাথে কাজ করতে চান তা নির্বাচন করুন (খনিটি 167ddd6d7f15):

sudo docker start -ai 167ddd6d7f15

4

আপনি যেহেতু ডকফাইফাইল থেকে একটি চিত্র তৈরি করেছেন তাই বর্তমানে চিত্রটি সক্রিয় অবস্থায় নেই। কাজ করার জন্য আপনার এই চিত্রটি একটি পাত্রে চালানো দরকার।

$ docker imagesকমান্ড বর্ণনা কিভাবে অনেক ইমেজ বর্তমানে স্থানীয় সংগ্রহস্থলের মধ্যে পাওয়া যায়। এবং

docker ps -a

বর্তমানে কতগুলি পাত্রে পাওয়া যায় তা প্রদর্শন করে, যেমন সক্রিয় এবং বহিরাগত পাত্রে তালিকা।

পাত্রে চিত্রটি চালনার দুটি উপায় রয়েছে:

$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

বিচ্ছিন্ন মোডে:

-d=false: Detached mode: Run container in the background, print new container id

ইন্টারেক্টিভ মোডে:

-i :Keep STDIN open even if not attached

এখানে ডকার রান কমান্ডটি দেওয়া হচ্ছে

$ docker run image_name:tag_name

ডকার রান সম্পর্কে আরও স্পষ্টতার জন্য, আপনি ডকার রান রেফারেন্স দেখতে পারেন ।

এটি ডকারকে বোঝার সেরা উপাদান।


2

আপনার ডকার হোস্টে সমস্ত চিত্রের একটি তালিকা দেখতে, চালান:

  $ docker images
   REPOSITORY          TAG           IMAGE ID            CREATED             SIZE
   apache_snapshot     latest        13037686eac3        22 seconds ago      249MB
   ubuntu              latest        00fd29ccc6f1        3 weeks ago         111MB

ইন্টারেক্টিভ মোডে এখন আপনি ডকার চিত্রটি একটি ধারক হিসাবে চালাতে পারেন:

   $ docker run -it apache_snapshot /bin/bash

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

    $ docker search ubuntu
    NAME                            DESCRIPTION             STARS  OFFICIAL  AUTOMATED
    ubuntu                          Ubuntu is a Debian...   6759   [OK]       
    dorowu/ubuntu-desktop-lxde-vnc  Ubuntu with openss...   141              [OK]
    rastasheep/ubuntu-sshd          Dockerized SSH ser...   114              [OK]
    ansible/ubuntu14.04-ansible     Ubuntu 14.04 LTS w...   88               [OK]
    ubuntu-upstart                  Upstart is an even...   80     [OK]

ডকার টানুন কমান্ডের সাহায্যে একটি সংগ্রহশালা থেকে ডকার চিত্রটি টানুন:

     $ docker pull ubuntu

ধারক হিসাবে ডকার চিত্রটি চালান:

     $ docker run -it ubuntu /bin/bash


-1

যাদের একই সমস্যা ছিল, তবে তাদের মতো একটি ত্রুটি হয়েছে

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"

আমি আমার জন্য কাজ করা একটি এন্ট্রি পয়েন্ট যুক্ত করেছি:

docker run -it --entrypoint /bin/sh বাশ ছাড়া ইমেজ জন্য।

উদাহরণ (অনুমোদিত উদাহরণ থেকে):

run -it --entrypoint /bin/sh ubuntu:12.04

তথ্যসূত্র: https://gist.github.com/mitchwongho/11266726

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