
docker-compose
docker-compose 就是用过yaml的方式来实现docker的编排
特别注意!!!你要使用docker-compose命令,必须当前目录下有docker-compose.yml文件!!!
安装docker-compose
centos的系统
shell
# 1. 安装 epel-release 扩展源
sudo yum install -y epel-release
# 2. 使用 yum 安装 docker-compose
sudo yum install -y docker-compose
# 3. 验证安装
docker-compose --version
#如果报命令不存在 则应该是路径问题 用下面的测试
/usr/bin/docker-compose --version
# 为了让终端在任何地方都能识别 docker-compose 命令,你可以创建一个软链接
sudo ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose常用命令
shell
# 启动所有服务(后台运行)
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs
# 启动容器
docker-compose start
# 停止但不删除容器
docker-compose stop
# 停止并删除容器、网络
docker-compose down
# 重新构建并启动(代码修改后)
docker-compose up -d --build
# 只启动某个服务
docker-compose up -d nginx-app第一个简单的docker-compose.yml
text
你的项目目录/
├── docker-compose.yml # 这个文件
├── Dockerfile # nginx2 需要的 Dockerfiledocker-compose.yml
shell
version: "3.3" # 使用更新的版本
services:
# 反向代理/网关(使用最新版)
nginx-proxy:
image: nginx:alpine # 使用 alpine 版本,体积更小
container_name: nginx-proxy
ports:
- "8081:80"
restart: unless-stopped # 自动重启策略
# 应用服务器(需要构建)
nginx-app:
image: my-custom-nginx:v1 # <--- 添加这一行,强制指定镜像名
depends_on:
- nginx-proxy # 等待代理启动
build:
context: .
dockerfile: Dockerfile # 可指定 Dockerfile 名称
container_name: nginx-app
ports:
- "8082:80"
restart: unless-stopped
# 添加健康检查
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 30s
timeout: 3s
retries: 3Dockerfile
shell
FROM alpine:3.19
LABEL maintainer="liuzhw"
# 安装 nginx(Alpine 官方源)
RUN apk add --no-cache nginx wget
# 声明端口
EXPOSE 80
# 前台运行 nginx
ENTRYPOINT ["nginx", "-g", "daemon off;"]需要注意的是,通过docker-compose.yml 编排的容器,他们网络都是互通的。你可以用下面的方法测试
shell
docker exec -it nginx-app curl http://nginx-proxy:80
