docker容器调试利器 nic
10 December 2023
docker容器调试利器 nicolaka/netshoot ( docker 容器注入 netshoot )
只需要一条命令即可
创建一个外挂于 npm 的netshoot容器
docker run -it --name netshoot-npm --net container:npm nicolaka/netshoot
# 创建一个停止就删除的容器
docker run -it --rm --net container:<container_name> nicolaka/netshoot
# 简版
docker tag docker.wodedata.com/netshoot:latest netshoot # 重打tag
docker run --rm -it --name netshoot --net container:nginx-ui netshoot
这个 –net 参数,可以让你启动一个容器并“加入”到另一个容器的 Network Namespace 里,并共享一个网络栈,即Namespace 和目标容器的一样,这样就实现了合并命令工具到目标容器里。如果执行命令 hostname 命令的话,结果显示的是目标“容器ID”。此时就可以在容器里执行常用的一些 ps、top、netstat、iftop 之类的命令。
参考: docker容器调试利器nicolaka/netshoot
超好用的k8s中pod诊断工具:kubectl-debug
docker容器间及host间的文件传输
# 查看容器 httpd 的家(工作)目录路径
podman exec -it httpd pwd
# 将一个container的文件复制到另一个Container中
docker cp nervous_ride:/root/index.html httpd:/usr/local/apache2/htdocs/index.html
docker 创建基于 macvlan 的连接宿主机的网桥
# 创建基于 macvlan 的虚拟网桥 network_100
docker network create -d macvlan \
--subnet=192.168.100.0/24 \
--gateway=192.168.100.1 \
-o parent=ens18 \
network_100
