Jinsi ya kupata bash au ssh kwenye chombo kinachoendesha katika hali ya chini?


Nenda kwa jibu lililokubaliwa


Ninataka kushona au kushika kwenye chombo kinachoendesha kizimbani. Tafadhali, angalia mfano:

 $ sudo docker run -d webserver
webserver is clean image from ubuntu:14.04
$ sudo docker ps
CONTAINER ID  IMAGE            COMMAND    CREATED STATUS  PORTS          NAMES
665b4a1e17b6  webserver:latest /bin/bash  ...     ...     22/tcp, 80/tcp loving_heisenberg 
 

sasa nataka kupata kitu kama hiki (nenda kwenye chombo kinachoendesha):

 $ sudo docker run -t -i webserver (or maybe 665b4a1e17b6 instead)
$ [email protected]:/# 
However when I run the line above I get new CONTAINER ID
$ [email protected]:/#
 

Nilitumia Vagrant na ningependa kupata tabia kama hii vagrant ssh .


941





2014-08-01




Idadi ya majibu: 15


Jibu ni attach agizo la Docker . Kwa hivyo kwa mfano wangu hapo juu, suluhisho litakuwa:

 $ sudo docker attach 665b4a1e17b6 #by ID
or
$ sudo docker attach loving_heisenberg #by Name
$ [email protected]:/#
 

Kwa toleo la Docker 1.3 au baadaye: Shukrani kwa mtumiaji wa WiR3D aliyependekeza njia nyingine ya kupata ganda la kontena. Ikiwa tutatumia attach tunaweza kutumia mfano mmoja tu wa ganda. Kwa hivyo ikiwa tunataka kufungua terminal mpya na mfano mpya wa ganda la kontena, tunahitaji tu kufuata zifuatazo:

 $ sudo docker exec -i -t 665b4a1e17b6 /bin/bash #by ID
 

au

 $ sudo docker exec -i -t loving_heisenberg /bin/bash #by Name
$ [email protected]:/#
 

1318


2014-08-05

Kuanzia Docker 1.3 kuendelea:

 docker exec -it <containerIdOrName> bash
 

Kimsingi, ikiwa chombo cha Docker kilianzishwa kwa kutumia /bin/bash amri unaweza kuifikia ukitumia attach . Ikiwa sio hivyo, basi unahitaji kutekeleza amri ya kuunda mfano wa Bash ndani ya chombo kutumia exec .

Pia kutoka kwa Bash bila kuacha Bash inayoendesha katika mchakato mkali:

 exit
 

Ndio, ni rahisi.


683


2014-10-29

Ingawa mwandishi wa swali alisema hasa wanavutiwa na chombo kinachoendesha, ni muhimu pia kuzingatia kwamba ikiwa kontena haifanyi kazi, lakini ungetaka kuiendesha ili kuzunguka unayoweza kukimbia:

docker run -i -t --entrypoint /bin/bash <imageID>


125


2014-11-07

Jaribu hii:

 sudo docker run -i -t webserver /bin/bash
 

Chanzo: https://docs.docker.com/articles/basics/#running-an-interactive-shell


27


2014-08-01

Kulingana na jibu la @ Timur nimeunda hati inayofuata inayofaa

Usanidi

Weka docker-ssh faili ndani yako $PATH na yaliyofuata

 #!/bin/bash -xe

# docker container id or name might be given as a parameter
CONTAINER=$1

if [[ "$CONTAINER" == "" ]]; then
  # if no id given simply just connect to the first running container
  CONTAINER=$(docker ps | grep -Eo "^[0-9a-z]{8,}\b")
fi

# start an interactive bash inside the container
# note some containers don't have bash, then try: ash (alpine), or simply sh
# the -l at the end stands for login shell that reads profile files (read man)
docker exec -i -t $CONTAINER bash -l
 

Kumbuka : Chombo vingine hazina bash , lakini ash , sh nk Katika kesi hizi bash zitabadilishwa kwenye hati ya hapo juu.

Matumizi

Ikiwa una mfano mmoja tu wa kukimbia, kukimbia tu

 $> docker-ssh 
 

Vinginevyo, ipe kwa paramu ya id ya kizimbani ambayo unapata kutoka docker ps (kolamu ya kwanza)

 $> docker-ssh 50m3r4nd0m1d
 

19


2016-04-20

Ikiwa chombo chako hakijasanikishwa unaweza kujaribu sh:

 docker exec -it CONTAINER /bin/sh
 

Au utafute magamba kwenye / bin kwanza:

 docker export CONTAINER|tar -t|egrep ^bin/
 

14


2015-07-29

Nimeunda seva ya SSH yenye chombo ambacho hutoa uwezo wa SSH kwa chombo chochote kinachoendesha. Huna haja ya kubadilisha chombo chako. Mahitaji tu ni kwamba chombo kina bash.

Ikiwa unayo chombo kilicho na jina 'web-server1'. Amri inayofuata ya kukimbia kizimbani ingeanza kontena la pili ambalo litatoa SSH kwa chombo cha kwanza.

 docker run -ti --name sshd-web-server1 -e CONTAINER=web-server1 -p 2222:22 \
-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker \
jeroenpeeters/docker-ssh
 

Kwa vidokezo zaidi, angalia https://github.com/jeroenpeeters/docker-ssh


9


2015-10-03

@jpetazzo ina chapisho la kushangaza juu ya mada hii . Jibu fupi litakuwa kutumia nsenter :

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

PS: usisahau kuangalia mjadala katika maoni ya chapisho ...

Cheers


6


2015-03-14

Unaweza pia kutoa kontena ya Docker anwani ya IP inayowezekana na Pipework, na baada ya hiyo SSH kwenye mashine na anwani hiyo mpya ya IP.

Hii itakuwa "jadi" zaidi (ssh), badala ya kutumia amri maalum ya programu kama docker attach , na mwishowe itafanya iwe 'portable' zaidi kwa mifumo na matoleo.


4


2014-10-29

Wakati mwingine itakuwa rahisi kuweza kushona kwenye chombo cha Docker, haswa wakati wa maendeleo. Picha ifuatayo ya Docker inaruhusu kushona kwenye chombo kwa kutumia kitufe cha kibinafsi:

UbuntuWithSSH-Docker

Mada ya Dockerfile ni https://gist.github.com/devbkhadka/98792f7bca57f9778793b2db758b3d07 .


3


2017-08-26

 docker run -it openjdk:8
 

Hii inafanya kazi :-)


2


2016-09-06

GOINSIDE

kufunga goinside mstari amri chombo na:

 sudo npm install -g goinside
 

na nenda ndani ya kontena ya kizimba na saizi sahihi ya sekunde na:

 goinside docker_container_name
 

kwa maelezo zaidi angalia hii .


1


2018-08-13

Ili kujifunga kwenye chombo kinachoendesha, chapa hii:

 docker exec -t -i container_name /bin/bash
 

0


2015-10-11

Kwa habari tu. Ikiwa unahitaji kuingia kwenye chombo rahisi ambacho sio daemon, unahitaji kutumia amri zifuatazo.

 docker start {id}
docker attach {id}
 

0


2015-11-04

ikiwa chombo kimesimamishwa kama kwa mfano chombo tu cha data basi suluhisho nzuri ni kuendesha chombo cha kutupwa kila wakati unapotaka kushikamana na chombo cha data. Katika kesi hii chombo cha data yenyewe kinaweza kuwa tupu kabisa, kwani chombo cha muda kitakuwa na vifaa vya OS.

 $ docker run --rm --volumes-from mydata -it ubuntu bash
[email protected]:/# ls /mydata
[email protected]:/# touch /mydata/foo
[email protected]:/# exit
exit
 

-1


2015-10-14