Respostas:
A maneira específica de executá-lo depende se você deu à imagem uma etiqueta / nome ou não.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Com um nome (vamos usar o Ubuntu ):
$ docker run -i -t ubuntu:12.04 /bin/bash
Sem nome, basta usar o ID:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Consulte a referência de execução do Docker para obter mais informações.
docker ps
lista recipientes, não imagens. Se você deseja criar uma imagem a partir de um contêiner, é necessário docker commit
. Você pode usar o NAME no commit (por exemplo docker commit _NAME_ _imagename_
)
Execute os seguintes passos:
$ docker images
Você obterá uma lista de todas as imagens locais do Docker com as tags especificadas.
$ docker run image_name:tag_name
Se você não especificou tag_name
, a imagem será executada automaticamente com a tag 'mais recente'.
Em vez de image_name
, você também pode especificar um ID da imagem (sem tag_name).
Para listar as imagens do Docker
$ docker images
Se seu aplicativo deseja executar a porta 80 e você pode expor uma porta diferente à ligação local, diga 8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
Você pode ver suas imagens disponíveis usando:
docker images
Em seguida, você pode executar no modo desconectado para que seu terminal ainda possa ser utilizado. Você tem várias opções para executá-lo usando um nome de repositório (com ou sem uma tag) ou ID da imagem:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Em seguida, você pode verificar se o contêiner está em execução usando
docker ps
docker ps
fornece um ID de contêiner. Você pode usá-lo ou apenas os 2/3 dos primeiros caracteres para entrar no seu contêiner usando:
docker exec -it container_id /bin/bash
E você pode parar usando docker stop container_id
e docker rm container_id
.
Você também pode executar seu contêiner com -rm
argumentos; portanto, se você parar o contêiner, ele será removido automaticamente.
Obtenha o nome ou o ID da imagem que você deseja executar, com este comando:
docker images
O comando de execução do Docker é usado da seguinte maneira:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Abaixo, incluí as opções de envio, nome, publicação, volume e reinicialização antes de especificar o nome ou ID da imagem:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
Onde:
--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
Para obter mais informações, consulte a referência oficial da execução do Docker .
Aqui está um exemplo para executar um serviço webdev no Docker. O nome da imagem é morrisjobke / webdav . Você pode retirá-lo do Docker Hub .
Depois de executar essas imagens, você poderá acessar a instância do WebDAV em http://localhost:8888/webdav
. Internamente, a pasta /var/webdav
é usada como raiz do WebDAV.
Você pode executar este contêiner da seguinte maneira:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Eu tive o mesmo problema. Executei minha imagem do Docker e ela criou um contêiner com um CONTAINER_ID específico. Eu queria trabalhar com o mesmo contêiner:
Primeiro, execute sua imagem do Docker:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Em seguida, liste todos os recipientes que você criou:
sudo docker ps -a
E selecione o container com o qual deseja trabalhar (o meu é 167ddd6d7f15):
sudo docker start -ai 167ddd6d7f15
Desde que você criou uma imagem do Dockerfile, a imagem atualmente não está no estado ativo. Para funcionar, você precisa executar esta imagem dentro de um contêiner.
O $ docker images
comando descreve quantas imagens estão disponíveis no momento no repositório local. e
docker ps -a
mostra quantos contêineres estão disponíveis no momento, ou seja, a lista de contêineres ativos e encerrados.
Existem duas maneiras de executar a imagem no contêiner:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
No modo desanexado:
-d=false: Detached mode: Run container in the background, print new container id
No modo interativo:
-i :Keep STDIN open even if not attached
Aqui está o comando de execução do Docker
$ docker run image_name:tag_name
Para obter mais esclarecimentos sobre a execução do Docker, visite a referência de execução do Docker .
É o melhor material para entender o Docker.
Para visualizar uma lista de todas as imagens em seu host Docker, execute:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
Agora você pode executar a imagem do Docker como um contêiner no modo interativo:
$ docker run -it apache_snapshot /bin/bash
OU se você não tiver nenhuma imagem localmente, pesquise no Docker Hub uma imagem para baixar:
$ 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]
Puxe a imagem do Docker de um repositório com o comando pull do docker:
$ docker pull ubuntu
Execute a imagem do Docker como um contêiner:
$ 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*
Para quem também teve o mesmo problema, mas encontrou um erro como
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"
Eu adicionei um ponto de entrada que foi trabalhado para mim:
docker run -it --entrypoint /bin/sh
para as imagens sem o Bash.
Exemplo (do exemplo aprovado):
run -it --entrypoint /bin/sh ubuntu:12.04
Referência: https://gist.github.com/mitchwongho/11266726
docker ps -a
não são úteis aqui?