Docker-compose安装、使用,容器化部署springboot项目

目录

一、docker-compose的安装

1、按官网的方式去安装

2、通过pip进行安装

3、离线安装    

二、docker-compose常用命令

三、docker-compose.yml 说明

1.基本结构

四、docker-compose部署SpringBoot项目

1.编写docker-compose.yml文件

2.使用docker-compose启动容器

3.取消部署

4.查看日志

5.使用 Docker Compose 实现容器IP和宿主机IP一致 


 

一、docker-compose的安装

1、按官网的方式去安装

        1)下载docker-compose
            curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
            若速度较慢,可以使用如下命令:
            curl -L "https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
        2)修改目录权限(添加可执行权限)
            chmod +x /usr/local/bin/docker-compose
        3)创建软连接
            ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
        4)验证安装是否完成
            docker-compose --version

2、通过pip进行安装

        安装pip
        yum -y install epel-release
        yum -y install python-pip
        查看版本
        pip --version
        更新pip
        pip install --upgrade pip
        安装docker-compose
        pip install docker-compose
        查看docker compose的版本
        docker-compose version

3、离线安装    

        访问https://github.com/docker/compose/releases,下载 docker-compose-Linux-x86_64,我是复制链接地址,在迅雷中下载的,下载后,将docker-compose-Linux-x86_64重命名为docker-compose
        通过ssh工具MobaXterm,将刚才下载的docker-compose文件上传到centos7的/usr/local/bin/目录下

        重命名并添加执行权限

cd /usr/local/bin/

mv ./docker-compose-linux-x86_64 docker-compose

chmod +x /usr/local/bin/docker-compose

        docker-compose -v出现版本信息说明安装成功

        

二、docker-compose常用命令

    1)docker-compose -help         查看帮助。
    2)docker-compose config -q     验证docker-compose.yml文件。当配置正确时,不输出任何内容,当配置错误时,输出错误信息。
    3)docker-compose pull          拉取服务依赖的镜像。
        # 拉取工程中所有服务依赖的镜像
        docker-compose pull
        # 拉取工程中 nginx 服务依赖的镜像
        docker-compose pull nginx
        # 拉取镜像过程中不打印拉取进度信息
        docker-compose pull -q
    4)docker-compose up             创建并启动所有服务的容器。指定多个yml加-f选项。以守护进程模式运行加-d选项。
        # 前台启动
        docker-compose up
        # 后台启动
        docker-compose up -d
        # -f 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定,指定多个 yml
        docker-compose -f docker-compose.yml up -d
    5)docker-compose logs            查看服务容器的输出日志。默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。可以通过--no-color来关闭颜色。
        # 输出日志,不同的服务输出使用不同的颜色来区分
        docker-compose logs
        # 跟踪日志输出
        docker-compose logs -f
        # 关闭颜色
        docker-compose logs --no-color
    6)docker-compose ps            列出工程中所有服务的容器。
        # 列出工程中所有服务的容器
        docker-compose ps
        # 列出工程中指定服务的容器
        docker-compose ps nginx
    7)docker-compose run            在指定服务容器上执行一个命令。
        # 在工程中指定服务的容器上执行 echo "helloworld"
        docker-compose run nginx echo "helloworld"
    8)docker-compose exec            进入服务容器。
        # 进入工程中指定服务的容器
        docker-compose exec nginx bash
        # 当一个服务拥有多个容器时,可通过 --index 参数进入到该服务下的任何容器
        docker-compose exec --index=1 nginx bash
    9)docker-compose pause            暂停服务容器
        # 暂停工程中所有服务的容器
        docker-compose pause
        # 暂停工程中指定服务的容器
        docker-compose pause nginx
    10)docker-compose unpause        恢复服务容器。
        # 恢复工程中所有服务的容器
        docker-compose unpause
        # 恢复工程中指定服务的容器
        docker-compose unpause nginx
    11)docker-compose start        启动服务容器。
        # 启动工程中所有服务的容器
        docker-compose start
        # 启动工程中指定服务的容器
        docker-compose start nginx
    12)docker-compose stop            停止服务容器。
        # 停止工程中所有服务的容器
        docker-compose stop
        # 停止工程中指定服务的容器
        docker-compose stop nginx
    13)docker-compose kill            通过发送SIGKILL信号停止指定服务的容器。
        # 通过发送 SIGKILL 信号停止工程中指定服务的容器
        docker-compose kill nginx
    14)docker-compose rm             删除服务(停止状态)容器。
        # 删除所有(停止状态)服务的容器
        docker-compose rm
        # 先停止所有服务的容器,再删除所有服务的容器
        docker-compose rm -s
        # 不询问是否删除,直接删除
        docker-compose rm -f
        # 删除服务容器挂载的数据卷
        docker-compose rm -v
        # 删除工程中指定服务的容器
        docker-compose rm -sv nginx
    15)docker-compose down            停止并删除所有服务的容器、网络、镜像、数据卷。
        # 停止并删除工程中所有服务的容器、网络
        docker-compose stop
        # 停止并删除工程中所有服务的容器、网络、镜像
        docker-compose down --rmi all
        # 停止并删除工程中所有服务的容器、网络、数据卷
        docker-compose down -v
    16)docker-compose images        打印服务容器所对应的镜像。
        # 打印所有服务的容器所对应的镜像
        docker-compose images
        # 打印指定服务的容器所对应的镜像
        docker-compose images nginx
    17)docker-compose port            打印指定服务容器的某个端口所映射的宿主机端口。
        docker-compose port nginx 80
    18)docker-compose top            显示正在运行的进程。
        # 显示工程中所有服务的容器正在运行的进程
        docker-compose top
        # 显示工程中指定服务的容器正在运行的进程
        docker-compose top nginx

三、docker-compose.yml 说明

创建 docker-compose.yml 文件是使用 Docker Compose 管理多容器应用的第一步。这个 YAML 格式的文件详细描述了服务、网络和卷等组件以及它们之间的关系。下面是对一个典型 docker-compose.yml 文件结构的详解:

1.基本结构

一个基本的 docker-compose.yml 文件通常包括以下几个部分:

version: '3.8' # Docker Compose 文件版本
services: # 定义服务
  service_name_1: # 服务1的名称
    image: image_name_1 # 使用的镜像
    build: # 或者使用 Dockerfile 构建镜像
      context: . # Dockerfile 所在的上下文路径
      dockerfile: Dockerfile # Dockerfile 的名称,默认为 Dockerfile
    ports:
      - "host_port:container_port" # 端口映射
    environment: # 环境变量
      VAR_NAME: value
    volumes: # 数据卷挂载
      - host_path:container_path # 主机路径:容器路径
    networks: # 网络配置
      - network_name
    depends_on: # 依赖服务
      - service_name_2
    restart: always # 重启策略
    command: # 覆盖容器启动命令
      - your-command
      - here
 
  service_name_2: # 类似地定义其他服务...
 
networks: # 可选部分,定义网络
  network_name:
    driver: bridge # 网络类型,默认为桥接网络
 
volumes: # 可选部分,定义数据卷
  volume_name:
    driver: local # 数据卷驱动,默认为本地存储

关键概念解释
        version: 指定 Docker Compose 文件的版本号,这影响到你能使用的功能和语法。
        services: 定义了组成应用的服务集合。每个服务定义了如何构建或使用哪个镜像、环境变量、端口映射等。
        image: 指定服务使用的 Docker 镜像名称。
        build: 当你需要基于 Dockerfile 构建镜像时使用。
        ports: 映射容器端口到宿主机端口,格式为 宿主机端口:容器端口。
        environment: 设置环境变量,供服务中的进程使用。
        volumes: 挂载数据卷,用于持久化数据或共享数据。
        networks: 定义网络,让服务之间可以相互通信。
        depends_on: 指定服务启动的依赖顺序。
        restart: 设置服务的重启策略,如 always 表示无论何种退出状态都会重启容器。
        command: 覆盖容器启动时默认执行的命令。
实践建议
        简洁性: 尽量保持文件的简洁明了,可以通过变量和外部文件引用提高可维护性。
        版本控制: 将 docker-compose.yml 文件纳入版本控制系统,便于团队协作和回溯历史变更。
        测试: 在应用更改后,使用 docker-compose up 命令测试配置是否正确无误。
        通过上述细节,你可以根据实际需求灵活编写 docker-compose.yml 文件,实现复杂应用的快速部署和管理。

四、docker-compose部署SpringBoot项目

 docker-compose部署SpringBoot项目依赖于docker,Dockerfile编写、制作docker镜像步骤请查看如下连接

Docker安装、使用,容器化部署springboot项目-CSDN博客

1.编写docker-compose.yml文件

version: '3'
services:
  mes-gateway:
    restart: always
    container_name: mes-gateway
    image: mes-gateway:1.0.1
    ports:
      - 8080:8080
    volumes:
      - ./gateway/mes-gateway-1.0.1.jar:/home/docker/mes-gateway-1.0.1.jar
      - /etc/localtime:/etc/localtime
      - ./logs/mes-gateway:/home/mes/docker/mes/logs/mes-gateway
    networks:
      - mesnetwork
      
  mes-auth:
    restart: always
    container_name: mes-auth
    image: mes-auth:1.0.1
    ports:
      - 9200:9200
    volumes:
      - ./auth/mes-auth-1.0.1.jar:/home/docker/mes-auth-1.0.1.jar
      - /etc/localtime:/etc/localtime
      - ./logs/mes-auth:/home/mes/docker/mes/logs/mes-auth
    networks:
      - mesnetwork


networks:
  mesnetwork:
    external: true

2.使用docker-compose启动容器

 docker-compose up -d # -d表示以守护模式启动,会一直运行在后台 

3.取消部署

执行以下任一命令即可 

 删除所有容器实例(常用于排查问题的时候)

docker-compose down

暂停所有容器,但是不删除容器实例(常用于停机维护前暂停所有容器服务)
 docker-compose stop 

4.查看日志

# 查看所有日志
docker-compose logs -f
 
# 持续打印某个应用的日志
docker logs -f 容器名
 
# 持续打印某个应用的日志(只显示最后10行)
docker logs -f 容器名 --tail 10
 
# 导出某个容器的所有日志
docker logs 容器名 > app.log 

5.使用 Docker Compose 实现容器IP和宿主机IP一致 

Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多个 Docker 容器的应用程序。它使用 YAML 文件定义容器相关的配置信息,并提供简单的命令来管理容器。

要实现容器IP和宿主机IP一致,我们需要在 Docker Compose 配置文件中设置网络模式为 host。在 host 模式下,容器与宿主机共享同一个网络命名空间,容器将直接使用宿主机的 IP 地址。以下是一个示例的 Docker Compose 配置文件:

version: '3'
services:
  myapp:
    image: myapp:latest
    network_mode: "host"

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker ComposeDocker 官方编排(Orchestration)项目之一,负责快速部署分布式应用。通过 Docker Compose,我们可以定义和运行多个 Docker 容器,并通过一个 YAML 文件来配置需要的服务。 下面是使用 Docker Compose 部署 Spring Boot 项目的简单步骤: 1. 编写 Dockerfile 在 Spring Boot 项目的根目录下创建一个名为 Dockerfile 的文件,并添加以下内容: ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE ADD ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 2. 编写 docker-compose.yml 文件 在 Spring Boot 项目的根目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容: ``` version: '3' services: app: image: your-image-name build: context: . dockerfile: Dockerfile ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prod restart: always ``` 其中,your-image-name 是自定义的镜像名称,需要在构建镜像时使用。 3. 构建镜像 在 Spring Boot 项目的根目录下执行以下命令,构建镜像: ``` docker build -t your-image-name . ``` 4. 启动容器Spring Boot 项目的根目录下执行以下命令,启动容器: ``` docker-compose up -d ``` 5. 查看容器状态 执行以下命令查看容器状态: ``` docker-compose ps ``` 至此,你已经成功使用 Docker Compose 部署Spring Boot 项目。如果需要停止容器,可以执行以下命令: ``` docker-compose stop ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值