安装
> curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
> curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
> sha256sum /usr/local/bin/docker-compose
> chmod +x /usr/local/bin/docker-compose
> docker-compose version
卸载
rm -rf /usr/local/bin/docker-compose
常用命令
> docker-compose pull
> docker-compose up
> docker-compose up -d
> docker-compose -f docker-compose.yml up -d
> docker-compose ps
> docker-compose start
> docker-compose stop
> docker-compose down
docker-compose.yml模板
version: "3.8"
services:
mysql:
container_name: mysql
image: mysql:latest
restart: always
ports:
- 3306:3306
volumes:
- /home/docker/mysql/logs:/var/log/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
redis:
container_name: redis
image: redis:latest
restart: always
expose:
- 80
volumes:
- /home/docker/redis/conf:/usr/local/etc/redis
- /home/docker/redis/logs:/logs
command:
- redis-server --requirepass 123456
- redis-server /usr/local/etc/redis/redis.conf
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3.8.9-management
restart: always
ports:
- 15672:15672
expose:
- 5672
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=admin
tomcat:
container_name: tomcat
image: tomcat:latest
restart: always
expose:
- 8080
depends_on:
- mysql
- redis
- rabbitmq
volumes:
- /home/docker/tomcat/webapps:/usr/local/tomcat/webapps
- /home/docker/tomcat/logs:/usr/local/tomcat/logs
nginx:
container_name: nginx
image: nginx:latest
restart: always
ports:
- 80:80
depends_on:
- tomcat
links:
- tomcat
volumes:
- /home/docker/nginx/conf:/etc/nginx/conf.d
- /home/docker/nginx/logs:/var/log/nginx
- /home/docker/nginx/html:/home/docker/nginx/html
environment:
- TZ=Asia/Shanghai
参数说明:
container_name:自定义容器命名
image:指定服务的镜像名称或镜像ID,如果镜像在本地不存在,Compose将会尝试拉取镜像
restart:always:docker重启时,容器自动启动
privileged:是否让docker容器获取宿主机root权限
commond:覆盖容器启动后默认执行的命令
ports:用于映射端口
expose:暴露端口,但不映射到宿主机,只允许能被连接的服务访问
depends_on:用于解决容器的依赖、启动先后的问题
links:链接到其它服务中的容器
volumes:挂载一个目录或者一个已存在的数据卷容器
environment:添加环境系统配置