暴露的Docker Socket
Docker守护进程可以通过三种不同类型的套接字监听Docker引擎API请求:
unixtcpfd
默认情况下,Docker通过非网络UNIX套接字运行,该套接字创建在/var/run/docker.sock,需要root权限或docker组成员资格。
tcp套接字用于远程访问Docker守护进程,默认设置提供未加密和未认证的直接访问。通常使用端口2375进行未加密通信,使用端口2376进行与守护进程的加密通信。
在基于Systemd的系统上,与Docker守护进程的通信可以通过Systemd套接字fd://进行。
有时Docker守护进程可以在容器内部或通过网络访问。这通常导致在主机系统上执行命令和从容器逃逸。
列出所有容器
使用curl命令通过unix套接字列出主机上的所有容器。
使用curl命令通过tcp套接字列出主机上的所有容器。
创建容器
使用curl命令通过unix套接字创建容器。
使用curl命令通过tcp套接字创建容器。
启动容器
在容器中执行代码
首先需要创建一个将在容器中运行的exec实例。
现在exec已经创建,您需要运行它。
主机接管
要在主机系统上执行命令,启动Docker容器并将主机根目录挂载到容器卷上。
下载ubuntu镜像。
创建容器。
启动容器。
为了在主机系统上执行命令,更改根目录。
参考资料
最后更新于