Yanıtlar:
Çalıştırmanın belirli yolu, resme bir etiket / ad verip vermediğinize bağlıdır.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Bir adla (haydi Ubuntu kullanalım ):
$ docker run -i -t ubuntu:12.04 /bin/bash
Bir ad olmadan, sadece kimliği kullanarak:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Daha fazla bilgi için Docker çalışma referansına bakın .
docker ps
Resimleri değil kapları listeler. Bir kaptan resim oluşturmak istiyorsanız, yapmanız gerekir docker commit
. NAME adlı kişiyi taahhütte kullanabilirsiniz (örn. docker commit _NAME_ _imagename_
)
Aşağıdaki adımları uygulayın:
$ docker images
Etiketleri belirtilen tüm yerel Docker görüntülerinin bir listesini alırsınız.
$ docker run image_name:tag_name
Belirtmediyseniz tag_name
, otomatik olarak 'en son' etiketli bir resim çalıştırılır.
Bunun yerine, image_name
bir resim kimliği de belirtebilirsiniz (etiket_adı yok).
Docker görüntülerini listelemek için
$ docker images
Uygulamanız bağlantı noktası 80 ile çalışmak istiyorsa ve yerel olarak bağlanmak için farklı bir bağlantı noktası gösterebilirsiniz, örneğin 8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
Kullanılabilir görüntülerinizi aşağıdakileri kullanarak görebilirsiniz:
docker images
Ardından, terminalinizin hala kullanılabilir olması için ayrılmış modda çalışabilirsiniz. Depo adı (etiketli veya etiketsiz) veya resim kimliği kullanarak çalıştırmak için birkaç seçeneğiniz vardır:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Ardından konteynerinizin çalışıp çalışmadığını kontrol edebilirsiniz.
docker ps
docker ps
size bir kapsayıcı kimliği verir. Aşağıdakileri kullanarak kabınıza gitmek için onu veya yalnızca 2/3 ilk karakterini kullanabilirsiniz:
docker exec -it container_id /bin/bash
Ve kullanarak durdurabilirsiniz docker stop container_id
ve docker rm container_id
.
Kapsayıcınızı -rm
bağımsız değişkenlerle de çalıştırabilirsiniz, böylece kapsayıcıyı durdurursanız otomatik olarak kaldırılır.
Bu komutla çalıştırmak istediğiniz resmin adını veya kimliğini alın:
docker images
Docker çalıştırma komutu aşağıdaki şekilde kullanılır:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Aşağıda görüntü adını veya kimliğini belirtmeden önce gönderme, ad, yayınlama, birim ve yeniden başlatma seçeneklerini ekledim:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
Nerede:
--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
Daha fazla bilgi için lütfen resmi Docker çalıştırma referansına bakın .
Docker'da bir webdev hizmeti çalıştırmak için bir örnek. Resmin adı morrisjobke / webdav . Docker Hub'dan çekebilirsiniz .
Bu görüntüleri çalıştırdıktan sonra, adresindeki WebDAV örneğine erişebilirsiniz http://localhost:8888/webdav
. Dahili olarak klasör /var/webdav
WebDAV kökü olarak kullanılır.
Bu kapsayıcıyı aşağıdaki şekilde çalıştırabilirsiniz:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Ben de aynı problemi yaşadım. Docker görüntümü çalıştırdım ve belirli bir CONTAINER_ID içeren bir kap oluşturdu. Aynı konteynerle çalışmak istedim:
Önce Docker resminizi çalıştırın:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Ardından, yaptığınız tüm kapları listeleyin:
sudo docker ps -a
Ve çalışmak istediğiniz konteyneri seçin (benimki 167ddd6d7f15):
sudo docker start -ai 167ddd6d7f15
Dockerfile öğesinden bir görüntü oluşturduğunuzdan, görüntü şu anda etkin durumda değil. Çalışmak için bu görüntüyü bir kabın içinde çalıştırmanız gerekir.
$ docker images
Komut birçok görseller şu yerel depoda mevcuttur açıklamaktadır. ve
docker ps -a
mevcut durumda kaç konteyner bulunduğunu, yani aktif ve çıkışlı konteynerlerin listesini gösterir.
Görüntüyü kapta çalıştırmanın iki yolu vardır:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
Müstakil modda:
-d=false: Detached mode: Run container in the background, print new container id
Etkileşimli modda:
-i :Keep STDIN open even if not attached
İşte Docker çalıştırma komutu
$ docker run image_name:tag_name
Docker çalıştırması hakkında daha fazla açıklama için Docker çalıştırma referansını ziyaret edebilirsiniz .
Docker'ı anlamak için en iyi malzeme.
Docker ana makinenizdeki tüm görüntülerin bir listesini görüntülemek için şunu çalıştırın:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
Artık Docker görüntüsünü etkileşimli modda bir kapsayıcı olarak çalıştırabilirsiniz:
$ docker run -it apache_snapshot /bin/bash
VEYA yerel olarak hiçbir resminiz yoksa indirmek için bir resim için Docker Hub'da arama yapın:
$ 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 çekme komutunu kullanarak Docker görüntüsünü bir havuzdan çekin:
$ docker pull ubuntu
Docker görüntüsünü kapsayıcı olarak çalıştırın:
$ docker run -it ubuntu /bin/bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED
jamesmedice/marketplace latest e78c49b5f380 2 days ago
jamesmedice/marketplace v1.0.0 *e78c49b5f380* 2 days ago
$ docker run -p 6001:8585 *e78c49b5f380*
Aynı sorunu yaşayan, ancak benzer bir hatayla karşılaşanlar için
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"
Benim için işe yarayan bir giriş noktası ekledim:
docker run -it --entrypoint /bin/sh
Bash olmayan görüntüler için.
Örnek (onaylanmış örnekten):
run -it --entrypoint /bin/sh ubuntu:12.04
docker ps -a
burada kullanışlı değil mi?