创建推送镜像
概述
本章节介绍如何将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
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. 解压文件
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
3
4
5
2.2 检查解压结果
bash
# 查看解压后的目录结构
ls -la
# 查看解压后的目录结构
ls -la
1
2
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
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
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
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
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
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
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
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
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
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
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
2
3
4
5
6
7
8
7. 注意事项
重要提醒
- 镜像仓库地址:务必将示例中的镜像仓库地址改为实际环境的地址
- 网络连接:确保NFS服务器能够访问镜像仓库
- 磁盘空间:构建过程需要足够的磁盘空间
- 版本标签:建议使用明确的版本标签,避免使用latest
建议
- 在构建前先清理旧的镜像和容器,释放磁盘空间
- 建议在非业务高峰期进行镜像构建和推送
- 保留构建日志,便于问题排查
下一步
完成镜像创建和推送后,请继续进行 HELM安装 步骤。
最后更新时间:2024年1月15日