docker:flusher

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

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

1、创建一个名为portainer_data​的数据卷

docker volume create portainer_data

2、安装portainer

docker run -d \
  -p 9000:9000 \
  -p 9443:9443 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

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-v1 .

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
  • docker/flusher.1741422017.txt.gz
  • 最后更改: 2025/03/08 16:20
  • admin