宿主机访问操作docker方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宿主机访问操作docker方式相关的知识,希望对你有一定的参考价值。

一、ssh访问

启动的时候需要把22端口隐射出来

docker run -t -i -d -p 8091:8080 -p 9527:22 --name tomcat4 tomcat-bases /bin/bash


二、nsenter

用来访问另一个进程的名字空间。nsenter要正常工作需要有root权限


为了连接到容器,你还需要找到容器的第一个进程的PID。


docker inspect --format "{{ .State.Pid }}" <container-id>


通过这个PID,你就可以连接到这个容器:


nsenter --target $PID --mount --uts --ipc --net --pid


三、Docker exec与Docker attach


1、Docker attach

Docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。 但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。

使用方法 docker attach 容器ID


2、Docker exec

关于-i、-t参数

可以看出只用-i时,由于没有分配伪终端,看起来像pipe执行一样。但是执行结果、命令 返回值都可以正确获取。使用-it时,则和我们平常操作console界面类似。而且也不会像attach方式因为退出,导致 整个容器退出。 这种方式可以替代ssh或者nsenter、nsinit方式,在容器内进行操作。如果只使用-t参数,则可以看到一个console窗口,但是执行命令会发现由于没有获得stdin 的输出,无法看到命令执行情况。


使用方法:docker exec -ti  容器ID BASH命令

本文出自 “我的运维时光” 博客,请务必保留此出处http://aaronsa.blog.51cto.com/5157083/1740980

以上是关于宿主机访问操作docker方式的主要内容,如果未能解决你的问题,请参考以下文章

Docker容器使用--net=host的方式启动后怎样访问

Docker 所有版本都中招,重大漏洞允许攻击者访问主机文件系统

[Docker]Volume

用Docker搭建web开发环境

Docker学习之volume

只查看正在运行的容器和docker主机做了哪些端口映射的命令