当前位置: 首页 > 工具软件 > docker-npm > 使用案例 >

docker-compose安装及使用

公良育
2023-12-01

1.安装docker

跳转此链接:docker安装

2.安装docker-compose

# 下载docker compose   使用giehub安装较慢推荐使用daocloud安装
[root@localhost ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 添加可执行权限
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
# 将文件copy到 /usr/bin/目录下
[root@localhost ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 查看版本
[root@localhost ~]# docker-compose --version

3.编写Dockerfile文件

FROM java:8    //从java8的镜像开始构建一个容器镜像。 
ADD est.jar est.jar
RUN bash -c "touch /est.jar"
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "est.jar", "--spring.profiles.active=prod", "--server.port=8080", "> /log/est.log"]
//指定为java,格式为-jar,文件名称为est.jar,指定配置文件为prod,指定端口为8080,指定日志目录位置

4.编写docker-compose

version: '3'

services:
  nginx: #服务名称
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - /usr/local/docker/nginx/html:/usr/share/nginx/html  #挂载:前面是挂载到哪儿,后面是nginx得配置目录
      - /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /usr/local/docker/nginx/log:/var/log/nginx
    privileged: true   #解决nginx得文件调用权限的问题
  mysql:
    image: mysql:5.7
    ports:
      - 3306:3306    #前面是宿主机的端口,后边是容器自身的端口
    environment:
      - MYSQL_ROOT_PASSWORD= #输入自己的密码
  redis:
    image: redis:5.0.11
  vueblog:
    image: est:latest
    build: .
    ports:
      - 8080:8080
    depends_on:
      - mysql
      - redis

5.项目打包

5.1 前端打包

npm run build

打包好的文件放入 - > /usr/local/docker/nginx/html

5.2 后端打包

放入/usr/local/est中,注意Dockerfile文件和docker-compose文件与jar文件放在一起

5.2.1 新增配置文件application-prod.yml

  • 复制application-dev.yml,新文件名改为application-prod.yml

  • 修改mysql、redis地址

    • mysql: IP地址改为容器名

      • url: jdbc:mysql://mysql:3306/est?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&useSSL=false

    • redis:IP地址改为容器名

      • host: redis

6.编写nginx配置

nginx.conf配置文件        

7.启动

注意:启动是在jar的当前目录下

docker-compose up -d

 类似资料: