1
0
md/0_跟Docker相关的脚本.md

5.0 KiB
Raw Blame History

安装 DPanel

docker run \
 -d \
 -p 端口号:8080 \
 -e APP_NAME=dpanel \
 --name dpanel \
 --restart=always \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v 替换成DPanel的存储目录:/dpanel \
 registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:lite

基于毫秒镜像源构建 Maven、OpenJDK21、git 的 Dockerfile

镜像命名为mvn-java-21

FROM docker.1ms.run/eclipse-temurin:21-jdk
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN sed -i s@http://archive.ubuntu.com/@http://mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list && \
    sed -i s@http://security.ubuntu.com/@http://mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y git maven && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

基于毫秒镜像源构建 Maven、OpenJDK8、git 的 Dockerfile

镜像命名为mvn-java-8

FROM docker.1ms.run/maven:3.8.6-jdk-8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 阿里云镜像源
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye main contrib non-free" > /etc/apt/sources.list && \
    echo "deb https://mirrors.aliyun.com/debian-security/ bullseye-security main contrib non-free" >> /etc/apt/sources.list && \
    echo "deb https://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y git && \
    rm -rf /var/lib/apt/lists/*

基于毫秒镜像源构建 node:16、git、nginx 的 Dockerfile

镜像命名为node-16

FROM docker.1ms.run/node:16-alpine
# 阿里云镜像源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk add --no-cache git nginx

示例:构建一个 SpringBoot、Java21 的 Dockerfile

FROM docker.1ms.run/library/mvn-java-21:latest
ENV PROJECT_ACTIVE=根据实际情况激活 application-xxx.yaml 配置文件比如prod
WORKDIR /app
EXPOSE springboot 内嵌的 servlet 容器端口号

# 配置容器启动命令
RUN << 'EOF' cat > /entrypoint.sh
#!/bin/bash
set -e
cd /app && rm -rf 源码目录
git clone "http://用户名:密码@远程仓库地址.git"
cd /app/源码目录 && mvn clean package
exec java -jar target/jar包名称.jar --spring.profiles.active=$PROJECT_ACTIVE
EOF

RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

示例:构建一个 SpringBoot、Java8 的 Dockerfile

FROM docker.1ms.run/library/mvn-java-8:latest
ENV PROJECT_ACTIVE=根据实际情况激活 application-xxx.yaml 配置文件比如prod
WORKDIR /app
EXPOSE springboot 内嵌的 servlet 容器端口号

# 配置容器启动命令
RUN << 'EOF' cat > /entrypoint.sh
#!/bin/bash
set -e
cd /app && rm -rf 源码目录
git clone "http://用户名:密码@远程仓库地址.git"
cd /app/源码目录 && mvn clean package
exec java -jar target/jar包名称.jar --spring.profiles.active=$PROJECT_ACTIVE
EOF

RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

示例:构建一个 Node16、Vue2 的 Dockerfile

FROM docker.1ms.run/library/node-16:latest
WORKDIR /web
EXPOSE Nginx的端口号

# 配置 nginx.conf 
RUN << 'EOF' cat > /nginx.conf
在这里补全Nginx配置文件内容
EOF

# 配置容器启动命令
RUN << 'EOF' cat > /entrypoint.sh
#!/bin/bash
set -e
继续补全。。。
EOF

RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

安装 Grafana

docker run \
-d \
--name grafana-12.1.1 \
-p 宿主机端口号:3000 \
-v 替换成数据存储目录:/var/lib/grafana \
-v 替换成日志存储目录:/var/log/grafana \
-v 替换成插件存储目录:/var/lib/grafana/plugins \
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/grafana/grafana-oss:12.1.1

安装 Mysql 8.4.5

参数按需调整

docker run -d \
  --name mysql-8.4.5 \
  -e MYSQL_ROOT_PASSWORD='设置root登录密码' \
  -p 宿主机端口号:3306 \
  -v 替换成mysql存储目录:/var/lib/mysql \
  --memory="2g" \
  --memory-swap="-1" \
  --restart=on-failure:3 \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.4.5 \
  --max_connections=100 \
  --tmp_table_size=67108864 \
  --max_heap_table_size=67108864 \
  --innodb_buffer_pool_size=536870912 \
  --innodb_log_file_size=134217728 \
  --thread_cache_size=16 \
  --slow_query_log=1 \
  --log_output='TABLE' \
  --long_query_time=5 \
  --bind-address=0.0.0.0 \
  --skip-name-resolve

安装 Redis 6.2.6

参数按需调整

docker run -d \
  --name redis-6.2.6 \
  --memory="512m" \
  --memory-swap="-1" \
  --restart=on-failure:3 \
  -p 宿主机端口号:6379 \
  -v 替换成redis持久化存储目录:/data \
  -e REDIS_PORT=6379 \
  -e REDIS_REQUIREPASS='登录密码' \
  docker.1ms.run/redis:6.2.6 \
  redis-server --bind 0.0.0.0 \
               --requirepass 'Ketao@789!' \
               --appendonly no \
               --save "" \
               --dir /data \
               --daemonize no \
               --maxmemory 500mb \
               --maxmemory-policy allkeys-lru