docker容器技术的应用

1.docker部署pgsql

version: '3.1'

services:
  pgsql:
    image: postgres:15.7-alpine
    container_name: pgsql
    restart: always
    ports:
        - "5433:5432"
    environment:
      POSTGRES_PASSWORD: dsk806888!@#
      PGDATA: /var/lib/pgsql/data/pgdata
    volumes:
        - ./data:/var/lib/pgsql/data

2.k8s一键部署pgsql

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgsql-deployment
spec:
  replicas: 1 # 设置需要运行的 Pod 数量
  selector:
    matchLabels:
      app: pgsql
  template:
    metadata:
      labels:
        app: pgsql
    spec:
      containers:
        - name: pgsql
          image: postgres:14.7-alpine3.17 # 使用最新版本的 pgsql 镜像
          env:
            - name: POSTGRES_PASSWORD
              value: dsk806888!@# # 设置 postgres 密码
            - name: PGDATA
              value: /var/lib/pgsql/data/pgdata
          ports:
            - containerPort: 5432 # 将容器端口 5432
          volumeMounts: #挂载数据卷
          - name: pgsql-data
            mountPath: "/var/lib/pgsql/data" #挂载到容器内的目录
      volumes: #数据卷
      - name: pgsql-data
        hostPath: #宿主机路径
          path: /var/lib/pgsql/data #宿主机的目录
          type: Directory 

---
# pgsql对外暴露服务的service
apiVersion: v1
kind: Service
metadata:
  name: pgsql-service
  labels:
    app: pgsql
spec:
  type: NodePort
  ports:
   - port: 5432
     protocol: TCP
     targetPort: 5432
     nodePort: 30432    # 对外访问的端口
  selector:
   app: pgsql

3.docker部署redis

version: '3'
services:
   redis:
      image: redis:4.0.14-buster
      container_name: redis
      command: redis-server redis.conf
      restart: always
      ports:
        - "6389:6379"
      volumes:
        - ./data:/data

redis.conf在data目录下,内容为:

# 使得Redis服务器可以跨网络访问
bind 0.0.0.0

# 日志文件
logfile "redis.log"

# 当前服务端口
port 6379

# 数据文件所在文件夹
dir "/data"

# 硬盘数据文件文件名
dbfilename "dump.rdb"

# 开启AOF模式
appendonly yes

# 保存数据的AOF文件名称
appendfilename "appendonly.aof"

# 主服务器密码,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
requirepass dsk806888

4.docker部署springcloud

version: '3.1'
services:
  dragon-business:
    image: openjdk:20-ea-17-jdk
    container_name: dragon-business
    environment:
      JVM_OPTS:
        -XX:NativeMemoryTracking=summary
        -XX:+StartAttachListener
        -XX:+UseSerialGC
        -Xss512k
        -Dcom.sun.management.jmxremote.rmi.port=7067
        -Dcom.sun.management.jmxremote=true
        -Dcom.sun.management.jmxremote.port=7067
        -Dcom.sun.management.jmxremote.ssl=false
        -Dcom.sun.management.jmxremote.authenticate=false
        -Dcom.sun.management.jmxremote.local.only=false
        -Djava.rmi.server.hostname=192.168.2.54
    #ports:
    # - 7067:7067
    command: java -Dcom.sun.management.jmxremote.port=7067 -Dcom.sun.management.jmxremote.rmi.port=7067 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.2.54 -Duser.timezone=Asia/Shanghai --add-opens java.base/java.lang=ALL-UNNAMED -jar /data/business.jar
    restart: always
    network_mode: host
    volumes:
      - /etc/localtime:/etc/localtime #将外边时间直接挂载到容器内部,权限只读
      - ./data:/data

5.docker部署rabbitMQ

version: '3'
services:
   rabbitmq: 
      image: rabbitmq:management-alpine
      container_name: rabbitmq
      restart: always
      environment:
        - RABBITMQ_DEFAULT_USER=admin
        - RABBITMQ_DEFAULT_PASS=dsk806888!@#
      ports:
        - "5672:5672"
        - "15672:15672"
      privileged: true
      volumes:
        - ./data:/var/lib/rabbitmq

6.docker部署nacos

nacos.yml

version : '3.8'
services:
  nacos-service:
    container_name: nacos-server
    image: nacos/nacos-server
    build:
      context: .  # 指定dockerfile文件所在路径,.代表在当前路径下
    environment:
      - MODE=standalone
    volumes:
      - ./logs/:/home/nacos/logs
      - ./conf/application.properties:/home/nacos/conf/application.properties
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
    logging:
      driver: "json-file"
      options:
        max-size: "500m"

application.properties

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.2.27:3336/nacos-config?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user=root
db.password=dsk806888@

nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000

management.endpoints.web.exposure.include=*

management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false

server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i

server.tomcat.basedir=/home/ruoyi/nacos/tomcat/logs

nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=false
nacos.core.auth.default.token.expire.seconds=18000
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
nacos.core.auth.caching.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 
nacos.istio.mcp.server.enabled=false

dockerfile

# 基础镜像
FROM nacos/nacos-server
# author
MAINTAINER yangfeng
#时区设置
ENV TZ="Asia/Shanghai"
COPY ./conf/application.properties /home/nacos/conf/application.properties

7.docker部署mysql

version: '3.1'

services:
  mysql-master:
    image:  mysql:8.0.32
    container_name: mysql-master
    restart: always
    ports:
      - "3336:3306"
    volumes:
      - ./data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: dsk806888@
public void generateCode(List codes){
        int count = 0;
        do{
            String code = "1121236";
            if(!codes.contains(code)){
                codes.add(code);
                System.out.println(count);
                break;
            }else{
                count++;
            }
            System.out.println(count);
        }while (count<100);
        System.out.println(codes);
    }

docker 可用镜像

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
    	"https://docker.m.daocloud.io",
    	"https://docker.imgdb.de",
    	"https://docker-0.unsee.tech",
    	"https://docker.hlmirror.com",
    	"https://docker.1ms.run",
    	"https://func.ink",
    	"https://lispy.org",
    	"https://docker.xiaogenban1993.com"
    ]
}
EOF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值