《Docker进阶与实战》章节试读

出版日期:2016-1-5
ISBN:9787111523393
作者:华为Docker实践小组
页数:264页

《Docker进阶与实战》的笔记-第80页 - Docker网络

实现环境需要三台机器consul-server, app-server, db-server。因此选择在Ubuntu机器上通过docker-machine创建虚拟机来完成。
首先创建host1:docker-machine create -d virtualbox consul-server
执行下面的代码在consul-server上启动consul server:docker $(docker-machine config consul-server) run -d -p "8500:8500" -h "consul" progrium/consul -server -bootstrap
执行下面的命令创建app-server:docker-machine create -d virtualbox \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-server):8500" \
--engine-opt="cluster-advertise=eth1:0" \
app-server 执行下面的命令创建db-server:docker-machine create -d virtualbox \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-server):8500" \
--engine-opt="cluster-advertise=eth1:0" \
db-server overlay网络要管理app-server db-server两台主机,所以,首先在app-server上建立overlay network "dev":docker $(docker-machine config app-server) network create --driver overlay --subnet=10.0.9.0/24 dev用下面的命令启动两个容器,他们都运行于app-server,不过连接到dev网络中了:docker $(docker-machine config app-server) run --net dev -h app-worker-1 --name app-worker-1 -itd ubuntu:14.04 bash
docker $(docker-machine config app-server) run --net dev -h app-worker-2 --name app-worker-2 -itd ubuntu:14.04 bash 用下面的命令启动两个容器,他们都运行于app-server,不过连接到dev网络中了:docker $(docker-machine config db-server) run --net dev -h db-worker-1 --name db-worker-1 -itd ubuntu:14.04 bash
docker $(docker-machine config db-server) run --net dev -h db-worker-2 --name db-worker-2 -itd ubuntu:14.04 bash 实验环境创建完毕。
用下面命令进入到app-worker-1容器中:docker $(docker-machine config app-server) exec -it app-worker-1 bash
然后可以尝试这个容器到app-worker-2, db-worker-1, db-worker-2的连通性。当然了,连通性肯定没有问题。
接下来,可以看一下网络的详细情况了。首先ssh登陆app-server,docker-machine ssh app-server
在这个主机中,Docker的沙箱(Network Namespace)在/var/run/docker/netns/目录下,可以通过符号连接把它加到/var/run/netns目录下,这样就可以利用ip命令查看具体信息了。ln -s /var/run/docker/netns/1-164825fbdf /var/run/netns/1-164825fbdf
ip netns exec 1-164825fbdf ip addr show
可以看到如下的输入:
1: lo: xxxxxxxxxxxxx
2: br0: xxxxxxxxxxxxx
10: vxlan1: xxxxxxxxxxxx
12: veth1@if11: xxxxxxxxxxxxx
17: veth3@if16: xxxxxxxxxxxxx
对照CNM模型,可以知道vxlan1是垮主机通讯的关键,veth1和veth2分别是app-worker-1 app-worker-2接入docker bridge的虚拟网络接口。

《Docker进阶与实战》的笔记-第127页 - Docker API

调用与Registry相关的API时需要一个头域,X-Registry-Auth,包含username,password,email_address,server_address。
> XRA=echo {"username": $USERNAME, "password": $PASSWORD, "email": $EMAIL_ADDRESS, "serveraddress": $SERVER_ADDRESS} | base64
(以上字符串传给echo前需要讲双引号转义)
> echo $XRA
> curl -XPOST -H "X-Registry-Auth: $XRA" http://DOCKER_ENGINE/images/REGISTRY_SERVER/IMAGE_TAG

《Docker进阶与实战》的笔记-第72页 - Docker网络

CNM模型


 Docker进阶与实战下载


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024