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