使用Docker-Compose部署项目

若为自由故 / 2024-10-15 / 原文

1、概述

​ 是Docker官方考虑到Docker命令过多,参数复杂,而开源一个通过配置文件来进行容器的编排与部署的组件

2、配置文件

  • docker-compose.yml

    例如:

#version: "3"  #旧版本要这个属性,写3。。。最新版本,不需要这个属性

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - hm-net
  hmall:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
networks:
  hm-net:
    name: hmall

3、常用命令

语法
docker compose [OPTIONS] [COMMAND]

image

4、步骤

到root目录
cd /root

清理之前所有的容器
docker stop $(docker ps -qa)
docker rm $(docker ps -qa)

部署Java应用,
将Dockerfile 文件、Java应用Jar包 上传资料(从本地拉)到服务器

将配置好的docker-compose.yml上传资料(从本地拉)到服务器

将mysql,nginx从本地拉到服务器
启动所有, -d 参数是后台启动
docker-compose up -d

测试


下面的是一些其他命令
docker-compose down

docker-compose ps

docker-compose logs -f 容器名称

docker-compose exec -it 容器名称 bash

删除网络
docker network rm 网络名