2017-10-20 38 views
2
docker pull httpd 
.. 
docker run -d --name MyWebServer httpd 
.. 
docker attach MyWebServer 
(nothing printed here - so I press enter + ls) 
ls 
(nothing printed here - so I press enter multiple times and still nothing..) 

Lorsque j'essaie de faire la même chose avec l'image ubuntu, cela fonctionne. Pourquoi ça ne marche pas ici?Rien ne se passe lors de l'exécution du docker attacher

Répondre

2

La différence est le processus en cours. Avec Ubuntu, vous êtes attaché au sh. Avec httpd vous êtes attaché au processus principal apache, qui n'est pas un shell.

Est-ce que ce lieu de joindre:

docker exec -it MyWebServer sh 

Avec cela, vous lancez une coquille dans le même conteneur qui va processus apache.

1

Avez-vous lu les documents? La connexion renvoie tous les messages que le conteneur produit. Je parie que tu voulais faire l'exec à la place.

Il est soit

docker exec -it container_name_or_id bash 

ou

docker-compose exec service_name bash 

si vous utilisez l'application docker-Compose.

Vous pouvez exécuter une commande (à moins que le conteneur n'a pas entrypoint fixe), par exemple

docker exec container ls/