DICOM:docker实现DICOM服务虚拟化
背景:
docker,是一个开源的应用容器引擎,眼下大多应用在部署和运维领域,然而因为全然使用沙箱机制,相互之间能够看做独立的主机,且自身对资源的需求也十分有限。远远低于虚拟机。甚至非常多时候。能够直接把容器当做应用本身也没有不论什么问题。因此最近正在尝试将docker应用到传统DICOM服务领域。
本文作为该系列开篇,主要记录docker环境配置过程中遇到的奇葩问题,为兴许更复杂、更全面的应用做准备。
docker中安装jdk:
1. 下载docker镜像
#因为docker官方镜像网络不稳定,此处採用时速云的centos镜像来演示
docker pull index.tenxcloud.com/tenxcloud/centos
通过docker images 查看本地下载的镜像(此处使用-a參数罗列出镜像的所有历史,兴许博文会具体介绍docker镜像在本地的存储)。
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来开启权限
(2)进入docker容器内部
docker exec -ti CONTAINER_ID /bin/bash
(3)安装jdk
进入docker内部。发现时速云的centos镜像是最精简版,缺少非常多经常使用命令。诸如tar、vim、clear等。遇到这样的问题须要使用yum install 安装
#查找命令所在的安装包
yum search COMMAND-NOT-FOUND
#直接安装查找后的包
yum install search-result-package
3. 提交镜像,并重新启动启动
又一次启动刚提交的镜像,直接检測java是否安装。发现之前安装的jdk失效。
须要使用
#刷新环境变量
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
方案摘自: How to source /etc/profile and save it in docker?
上述提到的两种方案。第一种非常适合眼下我们遇到的问题。通过本博文已经找到了解决安装jdk须要每次刷新环境变量的问题。兴许会进一步介绍docker的VOLUME数据卷、网络环境等细节,终于实现DICOM服务虚拟化部署。
作者:zssure@163.com
时间:2015-12-27
DICOM:docker实现DICOM服务虚拟化的更多相关文章
- 【运维技术】VM虚拟机上使用centos7安装docker启动gogs服务教程【含B站视频教程】
VM虚拟机上使用centos7安装docker启动gogs服务视频教程 BiliBili视频教程链接飞机票,点我 使用VMware Workstation安装Centos7 MinMal系统 第一步: ...
- Orthanc+OHIF DICOM Viewer最佳Dicom解析、在线浏览实践指南(解决方案)
概念 DICOM identifiers Very importantly, the DICOM standard specifies DICOM tags that allow to index e ...
- [置顶]
Docker学习总结(7)——云端基于Docker的微服务与持续交付实践
本文根据[2016 全球运维大会•深圳站]现场演讲嘉宾分享内容整理而成 讲师简介 易立 毕业于北京大学,获得学士学位和硕士学位:目前负责阿里云容器技术相关的产品的研发工作. 加入阿里之前,曾在IBM中 ...
- 【译文】用Spring Cloud和Docker搭建微服务平台
by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...
- Docker学习笔记 - Docker客户端和服务端
学习内容: Docker客户端和服务端的通讯方式:client和自定义程序 Docker客户端和服务端的连接方式:socket 演示Docker客户端和服务端之间用remote-api通讯:nc ...
- Spring Boot 和 Docker 实现微服务部署
Spring boot 开发轻巧的微服务提供了便利,Docker 的发展又极大的方便了微服务的部署.这篇文章介绍一下如果借助 maven 来快速的生成微服务的镜像以及快速启动服务. 其实将 Sprin ...
- 基于 Docker 的微服务架构实践
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
- 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南
[SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...
- Docker Swarm 创建服务
Docker Swarm 创建服务 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1.78 工作节点 ...
随机推荐
- Android Exception 8(Couldn't read row 0, col -1 from CursorWindow)
java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Curso ...
- 在进程中执行新代码 execl、execle、execlp、execv、execve和execvp函数
摘要:本文主要讲述怎样在进程中执行新代码,以及exec系列函数的基本用法. 在进程中执行新代码 用函数fork创建子进程后,假设希望在当前子进程中运行新的程序,能够调用exec函数运行还有一个程序.当 ...
- FAT AP v200R005 配置二层透明模式(web&命令行,开局)
背景: vlan123:用户业务vlan,192.168.1.0/24 Vlan2001:管理vlan,172.168.129.0/24 vlan1:默认vlan,不建议使用. 注意事项: 配置服务集 ...
- esriControlsMousePointer常量
控制鼠标指针选项. 不变 值 描述 esriPointerParentWindow -1 指针指定的父窗口或窗体. esriPointerDefault 0 默认指针,箭头一样. esriPointe ...
- 解决Jquery Ajax提交 服务器端接收中文乱码问题
看到有朋友说到用post提交方式解决,我指定了methord="post",仍然解决不了, 说一下解决办法,客户端进行编码,服务器端解码, 客户端:var where = esca ...
- centos7 安装php 多线程pthreads
第一步:yum源更新 yum update 第二步:下载php7源码 wget http://124.202.164.8/files/312100000A0BB72D/cn.php.net/distr ...
- javascript和html中unicode编码和字符转义的详解
1.html中的转义:在html中如果遇到转义字符(如“ ”),不管你的页面字符编码是utf-8亦或者是GB2312,都会直接打印成相应的字符:而当遇到(如:“\u8981”[此处的8981是16进制 ...
- 品茗论道说广播(Broadcast内部机制讲解)(下)
下面我们来看,递送广播动作中最重要的processNextBroadcast(). 3.2 最重要的processNextBroadcast() 从processNextBroadcast()的代码, ...
- MVC之旅(1)
其实很久很久之前就有接触asp.net mvc了.那些年,还是在大学校园的美好青葱时光,常常听到一些大牛开口闭口都是mvc,心痒痒的也去图书馆借了本mvc的教材,应该是mvc 2.悲催的是,我都没知道 ...
- 斑马Zebra ZPLII指令集中文说明解释
我们最常用的斑马(Zebra)条码打印机,应用ZPLII命令来控制打印,说明书中有每条指令的详细说明及相关示例,下面是各指令的中文释义: ^A 对Zebra内置点阵字体缩放 ^A(可缩放/点阵字体 ...