Vapor4.0对docker-Compose文件浅析

上篇对docker-compose.yml的某些理解有误,这篇对某些命令进行浅解。

1
docker build -f Dockerfile -t tblog .

那个.是指上下文路径,参见这里-镜像构建上下文(Context)

1
docker-compose build

这个命令为啥先去运行Dockerfile里的命令呢?因为这个文件是用来构建tblog:latest镜像的。在docker-compose.xml中的首要任务就是构建tblog:latest, 并指定了build所需要的上下文, docker就找到上下文中的Dockerfile进行编辑了。就是下面这一段。

1
2
3
4
5
6
...
app:
image: tblog:latest
build:
context: .
...

docker-compose.xml最上面有一段:

1
2
3
volumes:
db_data:
....

这个是干嘛的呢?这个是创建一个磁盘。db_data:应该就相当于我们说的盘符。没有给这个盘指定名称,它会有个默认的名称tblog_db_data, 也可以这样指定磁盘的名称。

1
2
3
volumes:
db_data:
name: "tuchangwei"

磁盘是用来存数据的,它不会消失。多个容器也可以共享这个磁盘。我们的数据库就把数据放在这个磁盘里面:

1
2
3
4
5

db:
image: postgres:12.1-alpine
volumes:
- db_data:/var/lib/postgresql/data/pgdata

对于docker-compose.xml文件里命令的解释,可以参考这里