在本文中,我们将说明如何连接到容器的主要运行过程以及如何将shell安装到正在运行的容器。
前言
当您想查看容器内部正在发生什么时,连接到正在运行的Docker容器会很有帮助,如果Docker容器无法按预期工作,则可以将其连接到该容器或将Shell获取到该容器,然后运行诸如ps或top之类的命令,您还可以输入容器,安装新软件包,并从中构建新的Docker映像。参考杀掉Linux中进程的使用示例:使用ps,kill,killall,pkill,top命令。
连接到容器
尽管可以在一个容器中运行多个进程,但是大多数docker容器仅运行一个进程,使用ENTRYPOINT和/或RUN指令指定启动容器时执行的命令。
docker attach命令允许您将终端连接到正在运行的容器,当您想实时查看标准输出中写的内容或以交互方式控制过程时,此功能很有用。
为了更好地理解attach命令的工作原理,我们使用官方的Nginx映像运行一个新的分离的Nginx容器:
$ docker container run --name my_nginx -d -p 8080:80 nginx
-p 8080:80选项使Docker将容器的8080端口绑定到主机上的80端口。
列出容器以确保“my_nginx”容器运行:
$ docker container ls