Network / Dockerfile (Network tools) === ###### tags: `OS / Ubuntu / Network` ###### tags: `OS`, `Ubuntu`, `linux`, `command`, `network`, `docker`, `Dockerfile`, `containerd`, `curl`, `dig`, `nslookup`, `tcpdump` <br> [TOC] <br> ## (for K8s 網路除錯) | 工具 | 套件名稱 | 用途 | |-----------|------------------|---------------------------------------| | `ifconfig` | `net-tools` | 傳統網路資訊工具 | | `route` | `net-tools` | 傳統路由表查詢 | | `ip` | `iproute2` | 現代化網路工具組(建議優先使用)| | `ping` | `iputils-ping` | 測試 ICMP 連通性 | | `traceroute` | `traceroute` | 查封包的跳數與路徑 | | `dig` | `dnsutils` | DNS 查詢 | | `nslookup` | `dnsutils` | 簡單 DNS 查詢(也包含在 `dnsutils`) | | `curl` | `curl` | 測試 HTTP/HTTPS 可達性 | | `wget` | `wget` | 同上,備用工具 | | `tcpdump` | `tcpdump` | 抓封包用,非常有用 | | `telnet` | `telnet` | 測試 TCP 連線 | | `nmap` | `nmap` | 簡易 port 掃描、檢查防火牆 | | `netcat` | `netcat` 或 `ncat` | 檢查 TCP/UDP port,建 socket(類似 telnet)| | `vim`/`nano` | `vim` 或 `nano` | 編輯設定檔(可選)| | `iproute2` | `iproute2` | 新版網路管理工具組,取代 `net-tools` | | `net-tools` | `net-tools` | 傳統工具組(包含 ifconfig、route)| <br> ## Dockerifle ```dockerfile= # base image FROM ubuntu:22.04 # [Software Repository] # # update the Ubuntu software repository # # - for the 'tzdata' package, or you will meet: # E: Unable to locate package tzdata # # - for the 'software-properties-common' package, or you will meet: # E: Unable to locate package software-properties-common # RUN apt-get update \ && apt-get install -y curl wget nano # [Net Tools] RUN apt-get update && apt-get install -y \ iproute2 \ net-tools \ iputils-ping \ traceroute \ dnsutils \ curl \ wget \ tcpdump \ telnet \ netcat \ vim \ && apt-get clean CMD [ "bash" ] ``` - ### Build Image ``` $ docker build -t ubuntu22.04-net-tools . ``` - ### Run Image ``` $ docker run --rm -it ubuntu22.04-net-tools - ### 儲存成 tar 檔 ``` $ docker save ubuntu22.04-net-tools -o ubuntu22.04-net-tools.tar ``` - ### 載入到 containerd ``` $ sudo ctr -n k8s.io image import ubuntu22.04-net-tools.tar $ sudo ctr -n k8s.io image list | grep ubuntu22.04 ``` <br> {%hackmd vaaMgNRPS4KGJDSFG0ZE0w %}