我一直直接使用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-armcontainer_name: nacosenv_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=test1234volumes:- ../log/nacos/:/home/nacos/logs- ./nacos/custom.properties:/home/nacos/init.d/custom.propertiesports:- "8848:8848"- "9848:9848"restart: alwaysnetworks:- pignetworks:pig:external: true