DICOM:docker实现DICOM服务虚拟化

释放双眼,带上耳机,听听看~!

背景:

docker,是一个开源的应用容器引擎,目前大多应用在部署和运维领域,然而由于完全使用沙箱机制,相互之间可以看做独立的主机,且自身对资源的需求也十分有限,远远低于虚拟机。甚至很多时候,可以直接把容器当做应用本身也没有任何问题。因此近期正在尝试将docker应用到传统DICOM服务领域。
本文作为该系列开篇,主要记录docker环境配置过程中遇到的奇葩问题,为后续更复杂、更全面的应用做准备。

docker中安装jdk:

1. 下载docker镜像

#由于docker官方镜像网络不稳定,此处采用时速云的centos镜像来演示 docker pull index.tenxcloud.com/tenxcloud/centos

通过docker images 查看本地下载的镜像(此处使用-a参数罗列出镜像的全部历史,后续博文会详细介绍docker镜像在本地的存储)。
DICOM:docker实现DICOM服务虚拟化

2. 安装jdk到docker中

(1)首先启动docker镜像,创建容器
#使用-v参数,创建共享目录,方便jdk包传入docker容器内部 docker run -d -v /home/dockercluster/Downloads:/home/zssure –privileged=true IMAGE_ID

注:如果需要对/home/zssure目录进行拷贝、修改等操作,需要添加–privilleged=true来开启权限
DICOM:docker实现DICOM服务虚拟化
(2)进入docker容器内部<喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;"> docker exec -ti CONTAINER_ID /bin/bash

DICOM:docker实现DICOM服务虚拟化
(3)安装jdk
进入docker内部,发现时速云的centos镜像是最精简版,缺少很多常用命令,诸如tar、vim、clear等。遇到这种问题需要使用yum install 安装
#查找命令所在的安装包 yum search COMMAND-NOT-FOUND #直接安装查找后的包 yum install search-result-package

DICOM:docker实现DICOM服务虚拟化
DICOM:docker实现DICOM服务虚拟化
DICOM:docker实现DICOM服务虚拟化

3. 提交镜像,并重启启动

重新启动刚提交的镜像,直接检测java是否安装,发现之前安装的jdk失效。
DICOM:docker实现DICOM服务虚拟化
需要使用
#刷新环境变量 source /etc/profile

才能使用jdk。

docker环境变量失效问题:

进到镜像里,查看/etc/profile,明明是有的。之前通过ssh进去也是可以启动的,这是为什么呢?

linux的启动过程里,/etc/profile是在用户登录的时候执行,在命令行run的时候可能是不会进行登录操作,所以没有相应的环境变量。但是我们启动了ssh服务,从远程是通过登录进的系统,这时候就会有环境变量了。
解决方案:
(1)使用docker run中的-e参数,直接传入环境变量
(2)使用Dockfile中的ENV绑定环境变量
FROM centos:latest ENV JAVA_HOME /usr/local/java/jdk1.8.0_65 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib ENV PATH $PATH:$JAVA_HOME/bin

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MySQL到MongoDB的数据同步方法!

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索