日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

docker-compose 实战案例

發(fā)布時(shí)間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker-compose 实战案例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

          • 一、Compose入門案例
            • 1. 依賴
            • 2. 實(shí)體類
            • 3. mapper接口
            • 4. 啟動(dòng)類
            • 5. yml配置
            • 6. 測(cè)試案例
            • 7. 打包
          • 二、制作 DockerFile和docker-compose.yml
            • 2.1. 制作 DockerFile
            • 2.2. docker-compose.yml
          • 三、打包部署
            • 3.1. 資料上傳
            • 3.2. 啟動(dòng)docker-compose
            • 3.3. 創(chuàng)建表
            • 3.4. 接口測(cè)試
            • 3.5. 數(shù)據(jù)驗(yàn)證
            • 3.6. Compose常用命令

一、Compose入門案例

流程:

  • 需要定義一個(gè)docker-compose.yml文件----工程
  • 需要在docker-compose文件配置依賴服務(wù)
  • docker-compose up 執(zhí)行該文件
  • 1. 依賴

    創(chuàng)建springboot項(xiàng)目

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
    2. 實(shí)體類
    package com.gblfy.entity;import com.baomidou.mybatisplus.annotation.TableName; import lombok.*;/**** @Author gblfy* @Date 2022-03-20 8:18**/ @Data @ToString @EqualsAndHashCode @AllArgsConstructor @NoArgsConstructor @TableName("docker_compose_entity") public class DockerComposeEntity {private Integer id;private String name; }
    3. mapper接口
    package com.gblfy.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gblfy.entity.DockerComposeEntity;/**** @Author gblfy* @Date 2022-03-20 8:17**/ public interface DockerComposeMapper extends BaseMapper<DockerComposeEntity> { }
    4. 啟動(dòng)類
    package com.gblfy;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication @MapperScan("com.gblfy.mapper") public class DockerComposeApplication {public static void main(String[] args) {SpringApplication.run(DockerComposeApplication.class, args);}}
    5. yml配置
    spring:datasource:url: jdbc:mysql://mysql:3306/docker-compose-boot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver server:###端口號(hào)port: 8080servlet:##設(shè)置springboot項(xiàng)目訪問(wèn)路徑context-path: /gblfy
    6. 測(cè)試案例
    package com.gblfy;import com.gblfy.entity.DockerComposeEntity; import com.gblfy.mapper.DockerComposeMapper; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/**** @Author gblfy* @Date 2022-03-20 8:16**/ @RestController public class DockerComposeController {@Resourceprivate DockerComposeMapper dockerComposeMapper;@PostMapping("/insert")public String insert() {DockerComposeEntity dockerComposeEntity = new DockerComposeEntity();dockerComposeEntity.setId(1);dockerComposeEntity.setName("zhangsan");dockerComposeMapper.insert(dockerComposeEntity);return "success";} }
    7. 打包
    mvn clean package -Dmaven.test.skip=true
    二、制作 DockerFile和docker-compose.yml
    2.1. 制作 DockerFile
    # Docker image for springboot file run #VERSION 0.0.1 #Author: GBLFY # 基礎(chǔ)鏡像使用java FROM java:8 # 作者 MAINTAINER gblfy.com # VOLUME 指定了臨時(shí)文件目錄為/tmp。 # 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp,測(cè)試可以這樣,企業(yè)中這里建議docker真實(shí)目錄并賦予權(quán)限 VOLUME /tmp # 將jar包添加到容器中并更名為docker-compose-boot.jar ADD docker-compose-0.0.1-SNAPSHOT.jar docker-compose-boot.jar # 運(yùn)行jar包 RUN bash -c 'touch /docker-compose-boot.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker-compose-boot.jar"] #暴露8080端口 EXPOSE 8080
    2.2. docker-compose.yml
    version: "3.0" services:mysql: # mysql服務(wù)image: mysql:5.7command: --default-authentication-plugin=mysql_native_password #解決外部無(wú)法訪問(wèn)ports:- "3306:3306" #容器端口映射到宿主機(jī)的端口environment:MYSQL_ROOT_PASSWORD: 'root'MYSQL_ALLOW_EMPTY_PASSWORD: 'no'MYSQL_DATABASE: 'docker-compose-boot'MYSQL_USER: 'gblfy'MYSQL_PASSWORD: '123456'networks:- gblfy_webdocker-compose-boot-web: #自己?jiǎn)为?dú)的springboot項(xiàng)目hostname: gblfybuild: ./ #需要構(gòu)建的Dockerfile文件ports:- "38000:8080" #容器端口映射到宿主機(jī)的端口depends_on: #web服務(wù)依賴mysql服務(wù),要等mysql服務(wù)先啟動(dòng)- mysqlnetworks:- gblfy_web networks: ## 定義服務(wù)的橋gblfy_web:

    這里演示為了看測(cè)試效果,關(guān)鍵的目錄映射沒(méi)有設(shè)置,企業(yè)中是需要把數(shù)據(jù)目錄和日志目錄映射到宿主機(jī)目錄,簡(jiǎn)言之,目錄掛載

    三、打包部署
    3.1. 資料上傳
    docker-compose-0.0.1-SNAPSHOT.jar docker-compose.yml Dockerfile

    3.2. 啟動(dòng)docker-compose
    cd /app/docker-compose-boot docker-compose up

    日志(拉取mysql5.7鏡像和jdk8鏡像我已經(jīng)操作過(guò)了,下面日志是將springboot項(xiàng)目打包成鏡像)

    Building docker-compose-boot-web Step 1/7 : FROM java:8---> d23bdf5b1b1b Step 2/7 : MAINTAINER gblfy.com---> Running in b052905b2072 Removing intermediate container b052905b2072---> 980a20b17ff7 Step 3/7 : VOLUME /tmp---> Running in d62f63bb0b52 Removing intermediate container d62f63bb0b52---> 51a9d0815625 Step 4/7 : ADD docker-compose-0.0.1-SNAPSHOT.jar docker-compose-boot.jar---> 8c574ff477a7 Step 5/7 : RUN bash -c 'touch /docker-compose-boot.jar'---> Running in 3722a261b8ed Removing intermediate container 3722a261b8ed---> b6892e5f045a Step 6/7 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker-compose-boot.jar"]---> Running in 5bc7270bbfd7 Removing intermediate container 5bc7270bbfd7---> d7c53524cf66 Step 7/7 : EXPOSE 8080---> Running in 92e2c377c0ca Removing intermediate container 92e2c377c0ca---> f18c2c26bf27 Successfully built f18c2c26bf27 Successfully tagged docker-compose-boot_docker-compose-boot-web:latest WARNING: Image for service docker-compose-boot-web was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. Creating docker-compose-boot_mysql_1 ... done Creating docker-compose-boot_docker-compose-boot-web_1 ... done
    3.3. 創(chuàng)建表

    3.4. 接口測(cè)試

    http://192.168.92.134:38000/gblfy/insert

    3.5. 數(shù)據(jù)驗(yàn)證

    3.6. Compose常用命令
    docker-compose -h # 查看幫助docker-compose up # 創(chuàng)建并運(yùn)行所有容器 docker-compose up -d # 創(chuàng)建并后臺(tái)運(yùn)行所有容器 docker-compose -f docker-compose.yml up -d # 指定模板 docker-compose down # 停止并刪除容器、網(wǎng)絡(luò)、卷、鏡像。docker-compose logs # 查看容器輸出日志 docker-compose pull # 拉取依賴鏡像 dokcer-compose config # 檢查配置 dokcer-compose config -q # 檢查配置,有問(wèn)題才有輸出docker-compose restart # 重啟服務(wù) docker-compose start # 啟動(dòng)服務(wù) docker-compose stop # 停止服務(wù)

    總結(jié)

    以上是生活随笔為你收集整理的docker-compose 实战案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。