方式一:在Dockerfile中设置环境变量
ENV <KEY> <VALUE>
- 1.必须写死.不灵活
- 2.只能在构建镜像的时候设置的环境变量
方式二:在docker-compose.yml中设置环境变量
environment:
MYSQL_DATABASE: "my_database"
MYSQL_PASSWORD: "mysql"
- 1.这里的环境变量为启动容器时,传入容器的环境变量
- 2.此时镜像已经构建完成
方式三:结合Dockerfile、docker-compose.yml和.env设置环境变量
Dockerfile:
ARG MYSQL_DATABASE
docker-compose.yml:
services:
db:
build:
context: mysql
args:
MYSQL_DATABASE: ${MYSQL_DATABASE}
.env:
MYSQL_DATABASE=mydatabase
- 1.必须使用docker-compose build db 才能自动去.env中寻找同名环境变量
- 2.docker-compose.ym和.env和l必须在同一目录下,不然waring:找不到环境变量
- 3.如果build标签和images标签同时存在,则去build目录下寻找Dockerfile构建镜像,容器名字为image后面的名字.
- 4.如果只有images标签,则在当前系统中寻找镜像,如果找不到,则自动pull