我一直直接使用docker命令来创建容器,没有怎么用过docker-compose。也不知道docker-compose和docker有什么区别,docker-compose有什么好处。
现在我约略认为,docker-compose是一个简化docker命令的工具,或者说,它是能将docker各种繁琐的命令集成到配置文件的工具,所谓compose也者,就是组合的意思吧。
比如,如果用docker,可能这样写:
docker run --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true -p 8848:8848 nacos/nacos-server
但如果是docker-compose,会这样写(nacos.yml内容从其他项目抄过来,跟上面的docker命令对不上,只是表达docker-compose可以将繁复的选项写到yaml文件这么个意思):
docker-compose -f nacos.yml up -d
繁琐的命令都写在nacos.yml里:
version: '3.1'
services:
nacos:
image: jiehoom/nacos-server-dm:2.3.0-arm
container_name: nacos
env_file:
- PREFER_HOST_MODE=hostname
- MODE=standalone
- NACOS_AUTH_ENABLE=true
- NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE=false
- NACOS_AUTH_TOKEN=R3owMS1MQU5EdG9vbDIwMTYtMjAyMS1ieS1jaGVuZGFxdQ==
- NACOS_AUTH_IDENTITY_KEY=test
- NACOS_AUTH_IDENTITY_VALUE=test1234
volumes:
- ../log/nacos/:/home/nacos/logs
- ./nacos/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8848:8848"
- "9848:9848"
restart: always
networks:
- pig
networks:
pig:
external: true