Docker高級網絡管理及私有鏡像倉庫配置
一、網絡啓動與配置參數
Docker啓動時會在主機上自動創建一個docker0虛擬網橋,實際上是一個Linux網橋,可以理解爲一個軟件交換機,它會在掛載其上的接口之間進行轉發。當創建一個Docker容器時,同時會創建一個對vet pair接口。這對接口一端在容器內,即eth0;另一端在本地並被掛載到docker0網橋,名稱以veth開頭
1、Docker網絡相關命令參數
(1)服務啓動時配置,不能馬上生效
-b BRIDGE:指定同期掛載的網橋
--bip=CIDR:定製docker0的掩碼
-H SOCKET:Docker服務端接收命令的通道
--icc=true|false:是否支持容器之間進行通信
--ip-forward=true|false:啓用net.ipv4.ip_forward,打開轉發功能
--mtu=BYTES:容器網絡中的MTU
(2)可在啓動服務時指定,也可以啓動容器時指定
--dns:指定DNS服務器
--dns-searche:指定DNS搜索域
(3)在docker run時使用
-h:配置容器主機名
--link:添加另一個容器的鏈接
--net:配置容器的橋接模式
-p、-P:映射端口
(4)--net的模式
①bridge:橋接模式
②none:爲容器創建獨立的網絡命名空間,但不進行網絡配置
③host:部位容器創建獨立的網絡命名空間,容器內看到的網絡配置與宿主機保持一致
④container:NAME_or_ID:新創建的容器共享指定的已存在容器的網絡命名空間,兩個容器共享網絡配置,但其他資源還是相互隔離的
⑤user_defined_network:用戶自定義的網絡
⑥macvlan:Macvlan網絡允許您爲容器分配MAC地址,使其在網絡上顯示爲物理設備
2、docker network命令
(1)docker network ls:列出已有網絡
-f:指定輸出過濾器
--no-trunc:不截斷輸出內容
(2)docker network create [OPTIONS] NETWORK:創建網絡
--aux-address:輔助的IP地址
--subnet:網絡地址段
-d, --driver:網絡驅動類型,如bridge或overlay
--gateway:網關地址
--ip-range:分配IP地址範圍
--ipam-driver:IP地址管理插件類型
--ipam-opt:IP地址管理插件的選項
--ipv6:支持IPv6地址
--label:爲網絡添加元標籤信息
-o, --opt:網絡驅動支持的選項--subnet:網絡地址段。
(3)docker network rm NETWORK [NETWORK ...]:刪除網絡
(4)docker network connect [OPTIONS] NETWORK CONTAINER:將容器接入指定網絡
--alias:爲容器添加一個別名,此別名僅在所添加網絡可見
--ip:指定IP地址
--ip6:指定IPv6地址
--link:添加鏈接到另外一個容器
--link-local-ip:爲容器添加一個鏈接地址
(5)docker network disconnect [OPTIONS] NETWORK CONTAINER:卸載容器網絡
-f or --force:強制把容器從網絡上移除
(6)docker network inspect [OPTIONS] NETWORK [NETWORK ...]:查看已有網絡詳情
-f or --format:給到一個golang模板字符串,對輸出結果進行格式化
二、Harbor搭建私有鏡像倉庫
1、下載harbor
https://github.com/goharbor/harbor/releases
2、解壓
tar xf harbor-offline-installer-v1.10.2.tgz
3、配置harbor.yml
主要修改hostname與port
4、準備安裝包
./prepare
如出現ERROR:root:Error: The protocol is https but attribute ssl_cert is not set,直接註釋掉配置文件中的https即可
5、安裝
(1)安裝compose
yum -y install python-pip gcc gcc-c++ python-devel
pip install --upgrade pip
pip install docker-compose
(2)安裝harbor
./install.sh
6、登錄harbor
網址:即主機ip
默認賬號:admin
默認密碼:Harbor12345
7、使用harbor
(1)登錄:docker login 192.168.11.50
①需輸入賬號密碼
②如沒有安裝https及證書,需在客戶端修改docker服務啓動配置
vim /etc/systemd/system/multi-user.target.wants/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.11.50 -H fd:// --containerd=/run/containerd/containerd.sock
vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://192.168.11.50"]
}
(2)上傳鏡像
①給鏡像打標籤
docker tag 7c6604cacec1 192.168.11.50/library/zxg/centos_nginx:v1
②上傳鏡像
docker push 192.168.216.52/library/zxg/centos_nginx:v1