**这是本文档旧的修订版!**
Docker flusher
新版flusher使用JAVA编写,需要JAVA 21环境。
镜像加速:
mkdir -p /etc/docker
cat <<-EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
]
}
EOF
systemctl daemon-reload
systemctl restart docker
安装Docker
https://developer.aliyun.com/article/1369203
# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start systemctl enable docker
参考文档
https://www.cnblogs.com/ejiyuan/p/18114574
https://blog.csdn.net/weixin_46799707/article/details/137877881
- Dockerfile
# 使用 Alpine Linux 作为基础镜像
FROM alpine:latest
# 设置语言环境变量为中文
ENV LANG=zh_CN.UTF-8
# 安装所需的软件包,包括中文字体和中文语言支持
RUN apk add --no-cache \
ttf-dejavu \
fontconfig \
tzdata \
openjdk21 \
&& \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
# 设置 JAVA_HOME 环境变量
ENV JAVA_HOME=/usr/lib/jvm/default-jvm
- 构建镜像
docker build -t ejiyuan/openjdk:21-jdk-alpine .
得到了一个基于alpine包含jdk21的docker镜像,下面就可以使用了
- 使用
FROM ejiyuan/openjdk:21-jdk-alpine VOLUME /data ADD maven/oa-0.0.1-SNAPSHOT.war app.war RUN sh -c 'touch /app.war' ENV JAVA_OPTS="" ENV spring.profiles.active="prod" ENTRYPOINT ["java","-jar","/app.war"]
制作镜像
制作flusher镜像,基础镜像:ejiyuan/openjdk:21-jdk-alpine
FROM ejiyuan/openjdk:21-jdk-alpine VOLUME /data ADD demo.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" ENV spring.profiles.active="prod" ENTRYPOINT ["java","-jar","/jar.war"]
docker build -t yan/flusher:x86_64 .
保存镜像
https://blog.csdn.net/qq_41204464/article/details/122034637
作用:在现在容器镜像上保存镜像进行打包,在另一台服务上使用;或现有的容器安装了一些库,配置了开发环境,需要保存下载,下次加载后直接使用。
一、docker保存镜像
1.1 首先查看下现有容器镜像(目的是查询需要保存镜像的ID)
docker ps -a
1.2 接下来用commit参数进行保存镜像(精简版)
docker commit 7ca736d99653 yolov5:v6.2
其中,7ca736d99653 是需要保存镜像的ID,刚才用docker ps -a 查询到的。
yolov5:v6.2 是需要保存镜像的REPOSITORY、和TAG,这两个自由设定的。(yolov5 对应REPOSITORY、v6.2对应TAG;两者用:分割开。)
或者用commit参数进行保存镜像, -a 提交人的姓名 -m “提交内容”,格式如:docker commit -a -m 现有容器ID 保存后的名称:版本号(详细版)
docker commit -a "xiaoming" -m "Update target detection model" 7ca736d99653 yolov5:v6.2
1.3 查看镜像是否保存成功
docker images
能看到刚才保存的镜像yolov5:v6.2出现了,说明成功了。
二、打包tar
使用save参数进行打包,格式如:docker save -o tar文件名称 镜像REPOSITORY:TAG
docker save -o yolov5-v6.2.tar yolov5:v6.2
其中yolov5:v6.2 是需要保存镜像的REPOSITORY、和TAG;也是上面保存的镜像名称。
三、加载tar镜像
使用load进行从tar文件导出镜像
docker load -i yolov5-v6.2.tar
然后查看是否出现镜像
docker images