从官方文档中,静态IP地址应该与docker compose v3 + docker swarm一起使用.但我不能让它发挥作用.
这是我的码头组成yaml:
version: '3'
networks:
test:
ipam:
driver: default
config:
- subnet: 10.1.0.0/24
services:
one:
image: mongo
networks:
test:
ipv4_address: '10.1.0.100'
two:
image: mongo
networks:
test:
ipv4_address: '10.1.0.101'
three:
image: mongo
networks:
test:
ipv4_address: '10.1.0.102'
Run Code Online (Sandbox Code Playgroud)
我docker stack up -c xxx.yml test用来部署.我发现创建的容器的ip是10.1.0.3,10.1.0.5,...
Code#1 和 Code#2 之间的区别是:Code#1 使用resolve(p),Code#2 使用p.then(()=>resolve())。我希望输出的序列是不变的,但它们会生成不同的序列。我不明白为什么。
resolve(p)const p = Promise.resolve();
new Promise((resolve) => {
resolve(p); // <---
}).then(() => {
console.log('after:await');
});
p.then(() => console.log('tick:a'))
.then(() => console.log('tick:b'))
.then(() => console.log('tick:c'));Run Code Online (Sandbox Code Playgroud)
输出:
tick:a
tick:b
after:await
tick:c
Run Code Online (Sandbox Code Playgroud)
p.then(()=>resolve())const p = Promise.resolve();
new Promise((resolve) => {
p.then(()=>resolve()); // <---
}).then(() => {
console.log('after:await');
});
p.then(() => console.log('tick:a'))
.then(() => console.log('tick:b'))
.then(() => console.log('tick:c'));Run Code Online (Sandbox Code Playgroud)
输出:
tick:a
after:await
tick:b
tick:c
Run Code Online (Sandbox Code Playgroud)
为什么输出的顺序不同?