Como se inicia um contentor Docker-ubuntu no bash?

Author: Community, 2017-04-15

2 answers

Em primeiro lugar, container não é uma máquina virtual, container é um ambiente de isolamento para um processo em execução, o ciclo de vida do container é ligado ao processo em execução dentro, quando o processo sai, o container também sai, e o ambiente de isolamento se foi. O Significado de" anexar ao Contentor "ou" introduzir um contentor " significa, na verdade, que você vai para dentro do ambiente de isolamento do processo em execução, por isso, se o seu processo foi terminado, o seu contentor também tem foi expulso, por isso não há contentor para ti. Assim, o comando de docker attach, docker exec são alvo no contentor em execução.

Qual o processo que será iniciado quando o docker run estiver configurado em Dockerfile e incorporado na imagem do 'docker'. Veja a imagem ubuntu como exemplo, se executar docker inspect ubuntu, irá encontrar os seguintes configuros no resultado:

"Cmd": ["/bin/bash"]
O que significa que o processo começou quando você corre docker run ubuntu é /bin/bash, mas você não está em um modo interativo e não aloca um por isso, o processo saiu imediatamente e o contentor saiu. É por isso que não tem como voltar a entrar no contentor.

Para iniciar um contentor e entrar bash, basta tentar:

docker run -it ubuntu

Então você será trazido para a concha do contentor. Se abrir outro terminal e docker ps, verá que o contentor está a correr e poderá docker attach entrar nele ou docker exec -it <container_id> bash entrar nele novamente.

Você também pode se referir a este link para mais informações.

 6
Author: shizhz, 2017-05-23 12:32:33

Aqui está um ficheiro de Dockerfile muito simples com instruções como comentários ... dê uma volta e veja se você tem um contêiner de trabalho que você pode executar para

FROM ubuntu:16.04

ENV TERM linux
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update
RUN apt-get install -y  

CMD ["/bin/bash"]


# ... save this file as Dockerfile then in same dir issue following
#
# docker build --tag stens_ubuntu .   # creates image stens_ubuntu
#
# docker run -d  stens_ubuntu  sleep infinity # launches container 
#
# docker ps     #   show running containers
#
# 
# ... find CONTAINER ID from above and put into something like this
#
# docker exec -ti 3cea1993ed28 bash   #  login to running container
#

Um contentor sai normalmente quando não tem trabalho a fazer ... se você não der nenhum trabalho ele sai imediatamente após o lançamento por esta razão ... normalmente, o último comando do seu ficheiro Dockerfile é a execução de algum sabor de um servidor que permanece vivo devido a um loop de eventos internos e, ao fazê-lo, mantém vivo o seu recipiente envolvente ... em suma, você pode mencionar um servidor excitável como o parâmetro final de sua chamada para

docker run -d  my-image-name  my-server-executible
 1
Author: Scott Stensland, 2017-04-14 22:53:50