DockerCompose是docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用compose,我们可以通过在该多容器应用目录下以YAML文件(docker-compose.yml)声明式的定义应用程序的各个服务(容器),之后便可在该应用目录下由单个命令dockercomposeup-d完成应用所有容器的创建和启动。
DockerCompose的yml文件中privileged参数的作用是什么?
DockerCompose的yml文件中,privileged参数的作用是什么?翻了文档,百度和谷歌,可是没查到,麻烦帮解释一下。
为什么fpm和nginx需要加上这个参数,而web不需要这个参数呢?如下图所示:
大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。
privileged参数说明
image=>镜像
container_name=>容器名字
volume=>挂载目录
ports=>端口
在配置文件中我们能看到支撑应用运行的所有容器的详细信息。
下列文件说明onlinejudgedeploy的运行,由四个容器的运行支撑起来:
oj-redis
oj-postgres
judge-server
oj-backend
version:"3"
services:
oj-redis:
image:redis:4.0-alpine
container_name:oj-redis
restart:always
volumes:
-./data/redis:/data
oj-postgres:
image:postgres:10-alpine
container_name:oj-postgres
restart:always
volumes:
-./data/postgres:/var/lib/postgresql/data
environment:
-POSTGRES_DB=onlinejudge
-POSTGRES_USER=onlinejudge
-POSTGRES_PASSWORD=onlinejudge
总之,privileged参数给大家简单的介绍了一些,希望大家多看看。