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

188 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 安装 DPanel
```shell
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
```shell
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
```shell
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
```shell
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
```shell
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
```