在安装docker-compose
前须保证安装了docker
。
安装
下载
获取docker-compose的版本下载地址,选择要下载的版本,执行以下命令进行下载:
# 下载指定版本的docker-compose的二进制文件到 /user/local/bin 目录
sudo curl -L "https://github.com/docker/compose/releases/download/<version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo curl -L “https://github.com/docker/compose/releases/download/v2.32.1/docker-compose- ( u n a m e − s ) − (uname -s)- (uname−s)−(uname -m)” -o /usr/local/bin/docker-compose
授权
为下载的 docker-compose 二进制文件设置执行权限
sudo chmod +x /usr/local/bin/docker-compose
验证
docker-compose --version / -v
卸载
使用 curl的方式安装,则使用以下命令进行卸载
sudo rm /usr/local/bin/docker-compose
拓展
常见命令
命令 | 说明 |
---|---|
docker-compose build | 构建或重新构建服务 |
docker-compose up | 启动并运行 docker-compose.yml 文件中定义的容器 |
docker-compose up -d | 启动并后台运行 docker-compose.yml 文件中定义的容器 |
docker-compose down | 停止并删除由docker-compose up创建的容器、网络和卷 |
docker-compose stop | 停止运行中的容器 |
docker-compose restart | 重启服务 |
docker-compose ps | 列出当前docker-compose编排运行的容器 |
docker-compose top | 列出当前docker-compose编排过的容器的进程 |
docker-compose logs | 列出所有服务或特定服务的日志 |
docker-compose exec | 在运行的容器中执行命令 |
docker-compose run | 对服务运行一次性命令 |
docker-compose config | 检查配置 |
docker-compose config -q | 检查配置,有问题才有输出 |
编排样例
部署nginx、mysql、redis,并使用自定义网络
services:
web:
image: nginx:latest
container_name: nginx
ports:
- "80:80" # 将主机的8080端口映射到容器的80端口
# 防止打开文件没有权限
privileged: true
volumes:
- ./nginx/html:/usr/share/nginx/html # 挂载本地html文件夹到容器内的Nginx默认网页根目录
- ./nginx/conf.d:/etc/nginx/conf.d # 挂载自定义配置文件夹(可选)
networks:
- webnet
db:
image: mysql:8.0
container_name: mysql
# 添加环境变量
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:
- "3306:3306" # 映射MySQL端口
# 防止打开文件没有权限
privileged: true
volumes:
- ./mysql/data:/var/lib/mysql # 使用Docker卷持久化数据
- ./mysql/conf:/etc/mysql/conf.d/
networks:
- webnet
cache:
image: redis:latest
container_name: redis
ports:
- "6379:6379" # 映射Redis端口
volumes:
- ./redis/data:/data # 使用Docker卷持久化数据
- ./redis/conf/redis.conf:/etc/redis/redis.conf
- ./redis/logs:/logs
# 防止打开文件没有权限
privileged: true
command: ["redis-server","/etc/redis/redis.conf"]
networks:
- webnet
networks:
webnet:
driver: bridge