Am construit un Docher imagine dintr-un dockerfile. Văd imaginea a fost construit cu succes, dar ce fac cu ea? Ar trebui't fi capabil de a rula ca un container?
Modul specific de a rula depinde dacă ai dat imaginea unui tag/nume sau nu.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Cu un nume (sa's utilizare Ubuntu):
$ docker run -i -t ubuntu:12.04 /bin/bash
Fără un nume, doar folosind ID-ul:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Vă rugăm să consultați Docker rula de referință pentru mai multe informații.
Faceți următorii pași:
$ docker imagini
Veți obține o listă cu toate locale Docker imagini cu tag-uri specificate.
$ docker rula image_name:tag_name
Dacă ai n't specifica identificare
va rula în mod automat o imagine cu 'mai recente' tag.
În loc de `image_name, puteți specifica, de asemenea, o imagine de IDENTITATE (nr. identificare).
$ docker imagini
$ docker run-d --restart=întotdeauna -p 8080:80 image_name:versiune
Puteți vedea imagini disponibile folosind:
docker images
Apoi, puteți rula în modul detașat atât terminalul este încă utilizabilă. Aveți mai multe opțiuni pentru a rula folosind un depozit numele (cu sau fara tag) sau image ID:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Apoi, puteți verifica recipientul se execută folosind
docker ps
docker ps
vă oferă un recipient de IDENTITATE. Puteți să-l utilizați sau doar 2/3 primele caractere pentru a merge în container cu ajutorul:
docker exec -it container_id /bin/bash
Și tu-l poate opri folosind docker opri container_id " și " docker rm container_id
.
Puteți rula, de asemenea, recipient cu rm
argumente asa ca daca te opresti container va fi eliminat automat.
Obține numele sau id-ul de imagine pe care doriți să ruleze, cu această comandă:
docker images
Docker rula command este folosit în felul următor:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Mai jos am inclus expedierii, numele, publica, volumul și reporniți opțiuni înainte de a specifica imaginea, numele sau id-ul:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
În cazul în care:
--desprinde , -d Rula recipient în fundal și imprimare recipient ID --numele Atribui un nume la container --publica , -p a Publica un container port(s) la gazdă --volum , -v Lega monta un volum --restart Restart politică să se aplice atunci când un container ieșirile
Pentru mai multe informații, vă rugăm să verificați oficial Docker rula de referință.
Aici este un exemplu de a rula un webdev serviciu în Docker. Imaginea's nume este morrisjobke/webdav. Puteți trage de la Docker Hub.
După ce executați aceste imagini, puteți accesa apoi WebDAV de exemplu la http://localhost:8888/webdav. Pe plan intern folderul
/var/webdav` este folosit ca rădăcina WebDAV.
Puteți rula acest recipient în felul următor:
$ docker run-d-e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Am avut aceeași problemă. Mi-am făcut Docker imagine, și a creat un recipient cu un anumit CONTAINER_ID. Am vrut să lucrez cu același container:
Primul termen Docker imagine:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Apoi lista toate containerele trebuie făcut:
sudo docker ps -a
Și selectați containerul doriți să lucrați cu (a mea este 167ddd6d7f15):
sudo docker start -ai 167ddd6d7f15
Din moment ce au creat o imagine de Dockerfile, imaginea nu se află în stare activă. În scopul de a lucra aveți nevoie pentru a rula această imagine în interiorul unui container.
A `$ docker imagini comandă descrie cât de multe imagini sunt disponibile în prezent în depozitul local. și
docker ps -a
arată cât de multe containere sunt disponibile în prezent, și anume lista de activ și a ieșit containere.
Există două moduri de a rula imaginea în container:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
În detașat modul:
-d=false: Detached mode: Run container in the background, print new container id
În modul interactiv:
-i :Keep STDIN open even if not attached
Aici este Docker rula comanda
$ docker run image_name:tag_name
Pentru mai multe clarificări cu privire Docker rula, puteți vizita Docker rula de referință.
L's cel mai bun material pentru a înțelege Docker.
Pentru cei care au avut aceeași problemă la fel de bine, dar a întâmpinat o eroare de genul
rpc eroare: cod = 2 desc = oci eroare de execuție: exec eșuat: container_linux.du-te:247: incepand recipient proces cauzat "exec: \"bash\": fișier executabil nu a fost găsit în $CALE"
Am adăugat un punct de intrare care a fost lucrat pentru mine:
docker run-ea-entrypoint /bin/sh
pentru imagini fără Bash.
Exemplu (din aprobată de exemplu):
rulați -l --entrypoint /bin/sh ubuntu:12.04
Referință: https://gist.github.com/mitchwongho/11266726