在 vscode 中安装了 docker 插件之后,发现有一个 attach vscode 的功能
打开之后,有点类似 ssh remote
但是用的并不是 ssh
这是什么原理
比如我试了一下 rabbitmq3-management
直接 docker exec -it rabbitmq3-management bash
后查看所有进程:
root@rabbitmq3-management-standalone:/# ps jfax
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 1332518 1332518 1332518 pts/0 1332525 Ss 0 0:00 bash
1332518 1332525 1332525 1332518 pts/0 1332525 R+ 0 0:00 \_ ps jfax
0 1 1 1 ? -1 Ss 999 0:05 /bin/sh /opt/rabbitmq/sbin/rabbitmq-server
1 20 1 1 ? -1 Sl 999 130:20 /usr/local/lib/erlang/erts-13.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -B i -- -root /usr/l
20 26 26 26 ? -1 Ss 999 0:12 \_ erl_child_setup 1048576
26 133 133 133 ? -1 Ss 999 0:03 \_ /usr/local/lib/erlang/erts-13.1/bin/inet_gethost 4
133 134 133 133 ? -1 S 999 0:04 | \_ /usr/local/lib/erlang/erts-13.1/bin/inet_gethost 4
26 137 137 137 ? -1 Ss 999 1:09 \_ /bin/sh -s rabbit_disk_monitor
1 82 81 81 ? -1 S 999 0:37 /usr/local/lib/erlang/erts-13.1/bin/epmd -daemon
使用 attach vscode
进入容器后查看所有进程:
root@rabbitmq3-management-standalone:~# ps jfax
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 1332871 1332871 1332871 ? -1 Ssl 0 0:00 /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node -e ????const net = require('net'); ????const fs = require('fs'); ????process.stdin.pause(); ????const client = net.createConnect
0 1332858 1332858 1332858 ? -1 Ss 0 0:00 /bin/sh -c # Watch machine settings ???trap "exit 0" 15 ???old=`ls -A --full-time settings.json 2>/dev/null || true` ???counter=0 ???while [ $counter -lt 60 ] ???do ????sleep 1 ????new=`ls -A --full-time settings
1332858 1333161 1332858 1332858 ? -1 S 0 0:00 \_ sleep 1
0 1332813 1332813 1332813 ? -1 Ssl 0 0:00 /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node -e ????const net = require('net'); ????const fs = require('fs'); ????process.stdin.pause(); ????const client = net.createConnect
0 1332782 1332782 1332782 ? -1 Ss 0 0:00 sh /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/bin/code-server --log debug --force-disable-user-env --server-data-dir /var/lib/rabbitmq/.vscode-server --telemetry-level all --acc
1332782 1332791 1332782 1332782 ? -1 Sl 0 0:04 \_ /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/out/server-main.js --log debug --force-disable-
1332791 1332825 1332782 1332782 ? -1 Sl 0 0:00 \_ /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/out/bootstrap-fork --type=ptyHost --logsPat
1332825 1333089 1333089 1333089 pts/0 1333166 Ss 0 0:01 | \_ /bin/bash --init-file /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh
1333089 1333166 1333166 1333089 pts/0 1333166 R+ 0 0:00 | \_ ps jfax
1332791 1332887 1332782 1332782 ? -1 Sl 0 0:01 \_ /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/out/bootstrap-fork --type=extensionHost --t
0 1332693 1332693 1332693 ? -1 Ss 0 0:00 /bin/sh
1332693 1332731 1332693 1332693 ? -1 Sl 0 0:00 \_ /var/lib/rabbitmq/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node /tmp/vscode-remote-containers-server-1a8800744ee456e6c2768aea24ffa6947e33623b.js
0 1332631 1332631 1332631 ? -1 Ss 0 0:00 /bin/sh
0 1 1 1 ? -1 Ss 999 0:05 /bin/sh /opt/rabbitmq/sbin/rabbitmq-server
1 20 1 1 ? -1 Sl 999 130:21 /usr/local/lib/erlang/erts-13.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -B i -- -ro
20 26 26 26 ? -1 Ss 999 0:12 \_ erl_child_setup 1048576
26 133 133 133 ? -1 Ss 999 0:03 \_ /usr/local/lib/erlang/erts-13.1/bin/inet_gethost 4
133 134 133 133 ? -1 S 999 0:04 | \_ /usr/local/lib/erlang/erts-13.1/bin/inet_gethost 4
26 137 137 137 ? -1 Ss 999 1:09 \_ /bin/sh -s rabbit_disk_monitor
1 82 81 81 ? -1 S 999 0:37 /usr/local/lib/erlang/erts-13.1/bin/epmd -daemon
可以看到多了很多 vscode 相关的进程,但是没有 ssh 相关的进程
什么原理?