compose部署


 Compose 概述

Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。借助 Compose,可以使用 YAML 文件来配置应用程序的服务。然后,使用单个命令,从配置中创建并启动所有服务。

常用命令:
docker-compose up:
使用docker-compose启动docker-compose.yaml中组合定义的所有容器

docker-compose up --build:
如果docker-compose.yaml中的某些镜像有改动,使用此命令重新打包镜像,并运行

docker-compose up -d:
效果与docker-compose up类似,但是由于增加了-d参数,会在后台启动

docker-compose up --build -d:
效果与docker-compose up --build类似,由于增加了-d参数,所有容器都会在后台运行。

docker system prune:
服务都启动成功后,使用此命令行可清除none镜像,如果有改变的镜像,重新打包后,会只更换这一个,这时这个镜像对应的原来old镜像会变更为none。

 编写Dockerfile文件 

vim Dockerfile

FROM openjdk:latest
WORKDIR /project
COPY spring.jar /project
CMD java -jar spring.jar --mysql.addr=m1

构建镜像

docker build -t spring:v1 .

 运行容器(3个)

docker run -itd spring:v1

docker run -itd spring:v1

docker run -itd spring:v1

运行

docker run -itd \
--name t1 \
tomcat:8.5.20

创建目录

mkdir -p tomcat/webapps

cd 进入目录

cd tomcat/webapps

把jar包放到里面

运行代码: 

 

docker run -itd \

-v  /root/soft/mysql/conf/my.cnf:/etc/my.cf \

-v /root/soft/mysql/data:/var/lib/mysql \

-v /root/soft/mysql/script:/script \

--privileged=true \

-e MYSQL_ROOT_PASSWORD=123456 \

--name m1 \

--net my_net \  (指定使用自定义网络)

mysql/mysql-server:5.7

docker run -itd \
--name t1 \
-v /root/soft/tomcat/webapps/:/usr/local/tomcat/webapps \
--privileged=true \
-p 8080:8080 \

--net my_net \
tomcat:8.5.20

修改配置文件 :docker network create --subnet=172.33.0.1/16 my_net

编辑docker-compose.yml文件:

定义docker-compose.yml

先来看下完整的docker-compose.yml文件内容

version: "3"

networks:
  network:
    ipam:
      driver: default
      config:
        - subnet: '177.7.0.0/16'

services:
  server:
    build:
      context: ./Server
      dockerfile: ./Dockerfile
    container_name: ETS-Server
    restart: always
    ports:
      - '8888:8888'
    depends_on:
      - mysql
      - redis
    links:
      - mysql
      - redis
    volumes:
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    networks:
      network:
        ipv4_address: 177.7.0.12

  mysql:
    image: mysql:8.0.21
    container_name: ETS-Mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
    restart: always
    ports:
      - "3308:3306"  # host物理直接映射端口为13306
    environment:
      MYSQL_DATABASE: 'ETS' # 初始化启动时要创建的数据库的名称
      MYSQL_ROOT_PASSWORD: 'root' # root管理员用户密码
    volumes:
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    networks:
      network:
        ipv4_address: 177.7.0.13

  redis:
    image: redis:6.0.6
    container_name: ETS-Redis # 容器名
    restart: always
    ports:
      - '16379:6379'
    volumes:
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    networks:
      network:
        ipv4_address: 177.7.0.14

放进去之后启动

docker-compose up -d

把wait-for-it.sh文件放到目录

给权限: chmod a+x wait-for-it.sh

./wait-for-it.sh www.baidu.com:80 -t 20

再编写一些 Dockerfile文件

FROM tomcat:8.5.20

WORKDIR /usr/local/tomcat/bin

COPY ./wait-for-it.sh /usr/local/tomcat/bin/

RUN chmod 777 ./wait-for-it.sh

构建镜像

docker  build -t tomcat:v1 .

docker-compose start mysql //启动mysql

docker-compose up tomcat //启动tomcat

 

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值