docker命令温习 第三天

安装 bash completion script

1.从https://github.com/docker/machine/tree/master/contrib/completion/bash下载 completion script:docker-machine-prompt.bash,docker0machine-wrapper.bash,docker-machine.bash
2.将其放置到/etc/bash_completion.d目录下
3.将如下代码添加到
$home/.bashrc:PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '

查看当前machine

docker-machine ls

创建第一个machine
1.machine要求无密码登录远程主机
ssh-copy-id x.x.x.x

2.docker-machin create --driver generic --feneric-ip-address=x.x.x.x host1

显示host1 所有的环境变量
docker-machine env host1
根据提示,进入host1
eval $(docker-machine env host1)

更新machine的docker到最新版本
docker-machine upgrade host1 host2

查看machine的docker daemon配置
docker-machine config host1
不同machine之间拷贝文件
docker-machine scp host1:/tmp/a host2:/tmp/b/

跨主机网络方案包括:
1.docker 原生的overlay和macvlan
2.第三方方案:常用的包含flannel,weaver,calico
ibnetwork 是 docker 容器网络库,最核心的内容是其定义的 Container Network Model (CNM)

Sandbox: 是容器的网络栈,包含容器的 interface、路由表和 DNS 设置。 Linux Network Namespace 是 Sandbox 的标准实现。Sandbox 可以包含来自不同 Network 的 Endpoint
Endpoint:将 Sandbox 接入 Network。Endpoint 的典型实现是 veth pair,一个 Endpoint 只能属于一个网络,也只能属于一个 Sandbox。
Network: 包含一组 Endpoint,同一 Network 的 Endpoint 可以直接通信。Network 的实现可以是 Linux Bridge、VLAN 等。

Docker overlay
需要一个key-value数据库用于保存网状信息,包括Network,Endpoint,ip。

以容器的方式运行Consul

1.docker run -d -p 8500:8500 -h consul --name consul progrium/consul --server --bootstrap

2.修改host1和host2的docker daemon 配置文件 /etc/systemd/system/docker.service
--cluster-store=consul://192.168.56.101:8500 --cluster-adverties=enp0s8:2376
--cluster-store 制定consul的地址
--cluster-advertise 告知consul自己的里连接地址。
3.重启docker daemon
systemctl daemon-reload
systemlctl restart docker.service


在host1中创建overlay网络ov_net:1
docker network create -d overlay ov_net1
-d overlay指定dirver为overlay

IPAM是指IP Address Management,docker 自动为ov_net1分配的ip空间为10.0.0.0/24

运行一个busybox容器连接到ov_net1
docker run -itd --name bbox1 --network ov_net1 busybox

查看容器的网络配置

docker exec bbox1 ip r
bbox1 有两个网络接口 eth0 和 eth1
docker 会创建一个bridge网络“docker_gwbridge” 为所有连接到overlay网络的容器提供访问外网的能力


打开网络混杂模式
ip link set enp0s9 promisc on
查看promisc模式是否生效
ip link show eth0
创建macvlan网络mac_net1
docker network create -d macvlan --subent=x.x.x.x/xx --gateway=x.x.x.1 -o oarent=eth- mac_net

查看 ip forward

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1



今天就到这里,改天专门对网络这块进行一个小结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值