5.1 KiB
5.1 KiB
常用的 Docker 镜像脚本和命令
安装 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