linux 構建 docker 網路

2021-07-10 09:50:15 字數 1612 閱讀 6646

ifconfig 和 route 已過時,現在推薦 ip 命令

ip a 等價於 ip addr

ip netns exec 用於配置網路命名空間

注意:這個是針對較舊版本的 docker

sudo apt-get install bridge-utils

# 顯示網橋資訊,可以看到有兩個容器連線到 bridge 上

sudo brctl show

# 容器中的網絡卡介面是 eth0

docker run -h="nn1" --net=none --name nn1 -it -v $download_src:$download_dst yuzx2008/web_env:v2 /bin/bash

# 從容器內看網路

ip addr show eth0

ip route

# 檢視容器程序的 pid

pid=`docker inspect -f

'}' nn1`

# 建立 ip netns 命令要用的命名空間條目

sudo mkdir -p /var/run/netns

sudo ln -s /proc/$pid/ns/net /var/run/netns/$pid

# 檢視網橋的 ip 位址和子網掩碼,172.17.42.1/16

ip addr show docker0

# 新增介面 a,對應容器內的介面 b

sudo ip link add a type veth peer name b

# 繫結 a 到網橋

sudo brctl addif docker0 a

# 啟動 a 介面

sudo ip link set a up

# 檢視網橋,可以看到 a

sudo brctl show

# 檢視所有的介面 a b docker0

ifconfig -a

# 將 b 放到容器的網路命名空間,可以容器中 ifconfig -a

sudo ip link set b netns $pid

# b 在容器中的名稱為 eth0

sudo ip netns exec

$pid ip link set dev b name eth0

# 設定它的 mac 位址

sudo ip netns exec

$pid ip link set eth0 address 12:34:56:78:9a:bc

# 啟用它

sudo ip netns exec

$pid ip link set eth0 up

# ip 位址

sudo ip netns exec

$pid ip addr add 172.17.42.99/16 dev eth0

# 新增路由

sudo ip netns exec

$pid ip route add default via 172.17.42.1

# 容器網路已配置好

容器退出時,docker 會清理容器,網路命名空間也會被銷毀

# 清理

sudo find -l /var/run/netns -type l -delete

Docker極速構建

docker極速構建指,使用docker的映象快速構建開發環境 功能模組 應用服務。本文會為你介紹一條命令,搭建出你想要的容器。構建過程中,我們會把容器的掛載目錄集中放在一起,全文中統一使用 home work做為主目錄。主目錄 home work可以換成linux命令中的變數 pwd意為當前目錄。...

docker構建映象

做映象就是構建映象!提交容器更改,生成新的映象!docker commit 容器名 新映象的名字 tag 例如 將web2容器提交為乙個新的映象,新映象的名字為nginx 1.1 在docker中映象的儲存方式是分層儲存的!每個映象都會有不同層數!映象的層數只能增加不能減少!映象是唯讀的!裡面的記憶...

docker構建映象

建立docker映象有兩種方法。1。docker commit 這種不推薦,就不介紹了。2。用docker build命令和dockerfile檔案 下面構建乙個nginx小應用。建立資料夾 mkdir static web 進入這個資料夾 cd static web 建立dockerfile檔案 ...