docker compose yml文件编写示例以及说明。
version: '3' #指定本 yml 依从的 compose 哪个版本制定的
services: #多个容器集合
#一套环境
nginx-server-8282: #自定义服务名称
container_name: nginx-8282 #容器名称
image: nginx:latest #docker-hub上的nginx最新版本的nginx镜像
depends_on: #依赖,会在如下依赖服务启动之后再启动本服务
- redis-server-8282
- php-server-8282
- mysql-server-8282
# - elasticsearch-server
tmpfs: /home/yhm/docker-test #挂载临时目录到容器内部,数据是保存到内存中的
ports:
- 8282:80 #端口映射,外部端口:内部端口
networks:
- nginx-networks
volumes: #映射宿主机和容器目录,数据是永久保存的
# - /home/yhm/docker-test:/etc/nginx/conf.d/ #宿主机目录:容器目录
- ./:/usr/share/nginx/html1
redis-server-8282:
container_name: redis-8282
image: redis:latest
php-server-8282:
container_name: php-8282
image: php:latest
mysql-server-8282:
container_name: mysql-8282
image: mysql:latest
ports:
- 8382:3306
environment: #设置镜像变量,它可以保存变量到镜像里面,也就是说启动的容器也会包含这些变量设置
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_DATABASE: "nodeapp"
MYSQL_USER: "guozimo"
MYSQL_PASSWORD: "123456"
volumes:
- /home/yhm/docker-test:/var/lib/mysql
#二套环境
nginx-server-8283: #自定义服务名称
container_name: nginx-8283
image: nginx:latest #docker-hub上的nginx最新版本的nginx镜像
depends_on: #依赖,会在如下依赖服务启动之后再启动本服务
- redis-server-8283
- php-server-8283
- mysql-server-8283
# - elasticsearch-server
tmpfs: /home/yhm/docker-test #挂载临时目录到容器内部
ports:
- 8283:80 #端口映射,外部端口:内部端口
networks:
- nginx-networks
redis-server-8283:
container_name: redis-8283
image: redis:latest
php-server-8283:
container_name: php-8283
image: php:latest
mysql-server-8283:
container_name: mysql-8283
image: mysql:latest
ports:
- 8383:3306
# elasticsearch-server:
# container_name: elasticsearch
# image: elasticsearch:6.8.20
# ports:
# - 8384:9200
# kibana-server:
# container_name: kibana
# image: kibana:6.8.20
consul-server:
container_name: consul-server
image: consul:latest
networks:
nginx-networks:
driver: bridge
docker-compose 命令简介
如命令:
docker-compose up -d
-f
默认使用的配置文件是当前目录中的 docker-compose.yml 文件,我们可以通过 -f 选项指定一个其它名称的配置文件
up
启动所有在Compose问中定义的容器,并且把它们的日志信息汇集在一起。通常会添加-d参数(在up后面),让容器在后台执行
start
启动指定的已经存在的容器
build
重新建造由Dockerfile构建的镜像。
ps
获取由Compose管理的容器的状态信息
run
启动一个容器,并允许一个一次性的命令。被连接的容器会同时启动,除非用了 --no-deps参数。
logs
汇集由Compose管理的容器的日志,并以彩色输出。
stop
停止容器,但不会删除它们
rm
删除已停止的容器。不要忘记使用-v参数来删除任何由Docker管理的数据卷