Skip to content
目录

创建推送镜像

概述

本章节介绍如何将HIS系统的各个组件构建成Docker镜像并推送到镜像仓库,为后续的HELM部署做准备。

1. 上传NFS包到服务器

1.1 上传ht-his-nfs.zip

将下载的ht-his-nfs.zip文件上传至NFS服务器的/data/nfs目录下。

bash
# 使用SFTP上传文件
sftp user@nfs-server-ip
put ht-his-nfs.zip /data/nfs/
# 使用SFTP上传文件
sftp user@nfs-server-ip
put ht-his-nfs.zip /data/nfs/
1
2
3

或使用SCP命令:

bash
scp ht-his-nfs.zip user@nfs-server-ip:/data/nfs/
scp ht-his-nfs.zip user@nfs-server-ip:/data/nfs/
1

1.2 验证上传

登录NFS服务器验证文件上传成功:

bash
ssh user@nfs-server-ip
ls -la /data/nfs/ht-his-nfs.zip
ssh user@nfs-server-ip
ls -la /data/nfs/ht-his-nfs.zip
1
2

2. 解压文件

2.1 进入目录并解压

bash
# 进入NFS目录
cd /data/nfs

# 解压文件
unzip ht-his-nfs.zip
# 进入NFS目录
cd /data/nfs

# 解压文件
unzip ht-his-nfs.zip
1
2
3
4
5

2.2 检查解压结果

bash
# 查看解压后的目录结构
ls -la
# 查看解压后的目录结构
ls -la
1
2

解压后应该包含以下主要目录:

  • his/ - HIS后端服务相关文件
  • jf-view/ - 界面视图服务相关文件
  • plumelog/ - 日志服务相关文件

3. 创建和推送镜像

重要提醒

镜像地址需要改成实际的镜像仓库地址。示例中的121.229.190.104:30080需要替换为实际环境的镜像仓库地址。

镜像仓库地址说明

3.1 构建His镜像

bash
# 进入his目录
cd /data/nfs/his

# 构建镜像(请将镜像地址改为实际地址)
docker build -t 121.229.190.104:30080/haitai/his:2.0.0 .

# 推送镜像
docker image push 121.229.190.104:30080/haitai/his:2.0.0
# 进入his目录
cd /data/nfs/his

# 构建镜像(请将镜像地址改为实际地址)
docker build -t 121.229.190.104:30080/haitai/his:2.0.0 .

# 推送镜像
docker image push 121.229.190.104:30080/haitai/his:2.0.0
1
2
3
4
5
6
7
8

3.2 构建Jf-view镜像

bash
# 进入jf-view目录
cd /data/nfs/jf-view

# 构建镜像
docker build -t 121.229.190.104:30080/haitai/jf-view:3.0.0 .

# 推送镜像
docker image push 121.229.190.104:30080/haitai/jf-view:3.0.0
# 进入jf-view目录
cd /data/nfs/jf-view

# 构建镜像
docker build -t 121.229.190.104:30080/haitai/jf-view:3.0.0 .

# 推送镜像
docker image push 121.229.190.104:30080/haitai/jf-view:3.0.0
1
2
3
4
5
6
7
8

3.3 构建Plumelog镜像

bash
# 进入plumelog目录
cd /data/nfs/plumelog

# 构建镜像
docker build -t 121.229.190.104:30080/haitai/his-plumelog:3.5.3 .

# 推送镜像
docker image push 121.229.190.104:30080/haitai/his-plumelog:3.5.3
# 进入plumelog目录
cd /data/nfs/plumelog

# 构建镜像
docker build -t 121.229.190.104:30080/haitai/his-plumelog:3.5.3 .

# 推送镜像
docker image push 121.229.190.104:30080/haitai/his-plumelog:3.5.3
1
2
3
4
5
6
7
8

4. 镜像构建验证

4.1 检查本地镜像

构建完成后,检查本地镜像列表:

bash
# 查看本地镜像
docker images | grep haitai

# 预期输出示例:
# 121.229.190.104:30080/haitai/his           2.0.0    <image-id>   <time>   <size>
# 121.229.190.104:30080/haitai/jf-view       3.0.0    <image-id>   <time>   <size>
# 121.229.190.104:30080/haitai/his-plumelog  3.5.3    <image-id>   <time>   <size>
# 查看本地镜像
docker images | grep haitai

# 预期输出示例:
# 121.229.190.104:30080/haitai/his           2.0.0    <image-id>   <time>   <size>
# 121.229.190.104:30080/haitai/jf-view       3.0.0    <image-id>   <time>   <size>
# 121.229.190.104:30080/haitai/his-plumelog  3.5.3    <image-id>   <time>   <size>
1
2
3
4
5
6
7

4.2 验证镜像推送

检查镜像是否成功推送到仓库:

bash
# 删除本地镜像进行测试
docker rmi 121.229.190.104:30080/haitai/his:2.0.0

# 重新拉取镜像验证
docker pull 121.229.190.104:30080/haitai/his:2.0.0
# 删除本地镜像进行测试
docker rmi 121.229.190.104:30080/haitai/his:2.0.0

# 重新拉取镜像验证
docker pull 121.229.190.104:30080/haitai/his:2.0.0
1
2
3
4
5

4.3 镜像信息检查

bash
# 检查镜像详细信息
docker inspect 121.229.190.104:30080/haitai/his:2.0.0
# 检查镜像详细信息
docker inspect 121.229.190.104:30080/haitai/his:2.0.0
1
2

5. 构建脚本示例

为了简化操作,可以创建自动化构建脚本:

bash
#!/bin/bash
# build-images.sh - 自动构建所有镜像

# 设置镜像仓库地址(请修改为实际地址)
REGISTRY="121.229.190.104:30080"
NAMESPACE="haitai"

echo "=== 开始构建HIS系统镜像 ==="

# 构建His镜像
echo "构建His镜像..."
cd /data/nfs/his
docker build -t ${REGISTRY}/${NAMESPACE}/his:2.0.0 .
if [ $? -eq 0 ]; then
    echo "His镜像构建成功"
    docker push ${REGISTRY}/${NAMESPACE}/his:2.0.0
    echo "His镜像推送成功"
else
    echo "His镜像构建失败"
    exit 1
fi

# 构建Jf-view镜像
echo "构建Jf-view镜像..."
cd /data/nfs/jf-view
docker build -t ${REGISTRY}/${NAMESPACE}/jf-view:3.0.0 .
if [ $? -eq 0 ]; then
    echo "Jf-view镜像构建成功"
    docker push ${REGISTRY}/${NAMESPACE}/jf-view:3.0.0
    echo "Jf-view镜像推送成功"
else
    echo "Jf-view镜像构建失败"
    exit 1
fi

# 构建Plumelog镜像
echo "构建Plumelog镜像..."
cd /data/nfs/plumelog
docker build -t ${REGISTRY}/${NAMESPACE}/his-plumelog:3.5.3 .
if [ $? -eq 0 ]; then
    echo "Plumelog镜像构建成功"
    docker push ${REGISTRY}/${NAMESPACE}/his-plumelog:3.5.3
    echo "Plumelog镜像推送成功"
else
    echo "Plumelog镜像构建失败"
    exit 1
fi

echo "=== 所有镜像构建完成 ==="
#!/bin/bash
# build-images.sh - 自动构建所有镜像

# 设置镜像仓库地址(请修改为实际地址)
REGISTRY="121.229.190.104:30080"
NAMESPACE="haitai"

echo "=== 开始构建HIS系统镜像 ==="

# 构建His镜像
echo "构建His镜像..."
cd /data/nfs/his
docker build -t ${REGISTRY}/${NAMESPACE}/his:2.0.0 .
if [ $? -eq 0 ]; then
    echo "His镜像构建成功"
    docker push ${REGISTRY}/${NAMESPACE}/his:2.0.0
    echo "His镜像推送成功"
else
    echo "His镜像构建失败"
    exit 1
fi

# 构建Jf-view镜像
echo "构建Jf-view镜像..."
cd /data/nfs/jf-view
docker build -t ${REGISTRY}/${NAMESPACE}/jf-view:3.0.0 .
if [ $? -eq 0 ]; then
    echo "Jf-view镜像构建成功"
    docker push ${REGISTRY}/${NAMESPACE}/jf-view:3.0.0
    echo "Jf-view镜像推送成功"
else
    echo "Jf-view镜像构建失败"
    exit 1
fi

# 构建Plumelog镜像
echo "构建Plumelog镜像..."
cd /data/nfs/plumelog
docker build -t ${REGISTRY}/${NAMESPACE}/his-plumelog:3.5.3 .
if [ $? -eq 0 ]; then
    echo "Plumelog镜像构建成功"
    docker push ${REGISTRY}/${NAMESPACE}/his-plumelog:3.5.3
    echo "Plumelog镜像推送成功"
else
    echo "Plumelog镜像构建失败"
    exit 1
fi

echo "=== 所有镜像构建完成 ==="
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

使用脚本:

bash
# 赋予执行权限
chmod +x build-images.sh

# 执行构建
./build-images.sh
# 赋予执行权限
chmod +x build-images.sh

# 执行构建
./build-images.sh
1
2
3
4
5

6. 常见问题处理

6.1 镜像构建失败

如果遇到构建失败,检查以下方面:

bash
# 检查Dockerfile语法
docker build --no-cache -t test-image .

# 检查构建上下文大小
du -sh .

# 查看详细构建日志
docker build --progress=plain -t test-image .
# 检查Dockerfile语法
docker build --no-cache -t test-image .

# 检查构建上下文大小
du -sh .

# 查看详细构建日志
docker build --progress=plain -t test-image .
1
2
3
4
5
6
7
8

6.2 推送失败

推送失败通常是网络或认证问题:

bash
# 检查Docker登录状态
docker info | grep Username

# 重新登录镜像仓库
docker login 121.229.190.104:30080

# 检查网络连接
ping 121.229.190.104
telnet 121.229.190.104 30080
# 检查Docker登录状态
docker info | grep Username

# 重新登录镜像仓库
docker login 121.229.190.104:30080

# 检查网络连接
ping 121.229.190.104
telnet 121.229.190.104 30080
1
2
3
4
5
6
7
8
9

6.3 磁盘空间不足

构建过程中可能产生大量临时文件:

bash
# 清理无用镜像
docker system prune -a

# 清理构建缓存
docker builder prune

# 检查磁盘使用情况
df -h
# 清理无用镜像
docker system prune -a

# 清理构建缓存
docker builder prune

# 检查磁盘使用情况
df -h
1
2
3
4
5
6
7
8

7. 注意事项

重要提醒

  1. 镜像仓库地址:务必将示例中的镜像仓库地址改为实际环境的地址
  2. 网络连接:确保NFS服务器能够访问镜像仓库
  3. 磁盘空间:构建过程需要足够的磁盘空间
  4. 版本标签:建议使用明确的版本标签,避免使用latest

建议

  1. 在构建前先清理旧的镜像和容器,释放磁盘空间
  2. 建议在非业务高峰期进行镜像构建和推送
  3. 保留构建日志,便于问题排查

下一步

完成镜像创建和推送后,请继续进行 HELM安装 步骤。


最后更新时间:2024年1月15日