美文网首页
Docker files for IMOD

Docker files for IMOD

作者: 全村滴希望 | 来源:发表于2020-03-17 18:57 被阅读0次

Docker files for IMOD

安装VNC远程服务

# 安装GNOME Desktop图形桌面服务
yum groupinstall "GNOME Desktop"

#  安装vnc
yum install tigervnc-server

# 查看系统运行模式
systemctl get-default

# 切换到桌面运行模式
systemctl set-default graphical.target

# 启动桌面模式
init 5

# 设置桌面运行模式为默认启动模式
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

# 设置vnc用systemctl来管理(第一个用户vncserver@:1.service,第二个用户vncserver@:2.service,其他以此类推)
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

# 修改vnc用户为root(其他系统用户也可以这样改)
vi /etc/systemd/system/vncserver@:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

# 刷新systemctl
systemctl daemon-reload

# 设置vnc密码(第二个用户修改密码,vncpasswd user2,其他以此类推)
vncpasswd

# 修改vnc黑名单限制,否则会出现vnc客户端连接不上的情况(/etc/sysconfig/vncservers)

1 # THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service
2 VNCSERVERS="1:root"
3 VNCSERVERARGS[1]="-geometry 1024x768 -BlacklistTimeout 0"

# 防火墙放行端口(vnc端口第一个用户5901,创建第二个用户5902,其他以此类推)
firewall-cmd --zone=public --add-port=5901/tcp --permanent

# 防火墙放行vnc服务
firewall-cmd --add-service vnc-server

# 放行好端口和服务,重启防火墙才能生效
firewall-cmd --reload

# 查看端口是否放行成功
firewall-cmd --list-port

# 启动,关闭,重启vnc
systemctl start vncserver@:1.service #启动
systemctl stop vncserver@:1.service #关闭
systemctl restart vncserver@:1.service #重启

安装X11-server

  1. 网络方式
# 查看当前宿主机的IP, e.g. 192.168.28.128
ifconfig

# 查看当前显示的环境变量值(需要显示屏,ssh终端不行), e.g. :0
echo $DISPLAY

#没有显示屏使用socket文件分析,e.g. X0 => :0
ll /tmp/.X11-unix/

# 安装X11-server
yum install -y xorg-x11-server-utils

# 许可所有用户都可访问xserver
xhost +

#在docker 容器内
export DISPLAY=192.168.28.128:0
# 注意环境变量需要每次进docker容器内设置,可以写在 /etc/bashrc 中
  1. 挂载方式
# 查看当前宿主机的IP, e.g. 192.168.28.128
ifconfig

# 查看当前显示的环境变量值(需要显示屏,ssh终端不行), e.g. :0
echo $DISPLAY

#没有显示屏使用socket文件分析,e.g. X0 => :0
ll /tmp/.X11-unix/

# 安装X11-server
yum install -y xorg-x11-server-utils

# 许可所有用户都可访问xserver
xhost +

#在docker 容器内
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e DISPLAY=$DISPLAY imod:imod_version
    

Dockerfile

###############################################################################
# CentOS 7, X11-server and IMOD-4.9.12
#
# Build with:
# sudo docker build -t imod:imod_version . \
#   --build-arg IMOD_VERSION=imod_version \
#   --build-arg CUDA_VERSION=cuda_version
#
# The build args are optional. To get the versions consistent with IMOD
# in general, use e.g. 4.9 for the main realease, and 4.9.12 for the
# twelfth patch release. 
# Make sure you have the version you need in the imod homepage.
# https://bio3d.colorado.edu/imod/download.html
#
# Depend on:
# yum install -y xorg-x11-server-utils \
# xhost +
#
# Running IMOD requires the use of a graphical interface on the host machine, 
# so the host machine needs to install x11-xserver-utils, 
# and then execute the 'xhost +' command to allow all users 
# to access the xserver. When the host needs to install x11-xserver-utils, 
# you may also need to install the vnc service.
#
# Run with:
# sudo docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix \
#   -e DISPLAY=$DISPLAY imod:imod_version
#
# Mount the xserver socket file into the docker container with the -v parameter, 
# and set the DISPLAY parameter in docker
# to be consistent with the host through the -e parameter.
###############################################################################

###############################################################################
# Build stage
###############################################################################

FROM centos:7

# sofrware version
ARG IMOD_VERSION=4.9.12
ARG CUDA_VERSION=8.0

# install required packages
RUN yum install -y java python3 file which libjpeg-turbo mesa-libGLU-devel

# install IMOD
# The self-installing package will install to a directory named IMOD under /usr/local 
# unless given an alternate location to /usr/local with the -dir option. 
RUN curl -o imod_${IMOD_VERSION}_RHEL7-64_CUDA${CUDA_VERSION}.sh \
  https://bio3d.colorado.edu/imod/AMD64-RHEL5/imod_${IMOD_VERSION}_RHEL7-64_CUDA${CUDA_VERSION}.sh \
  && rm -rf /usr/bin/python \
  && ln -s /usr/bin/python3 /usr/bin/python \
  && chmod +x imod_${IMOD_VERSION}_RHEL7-64_CUDA${CUDA_VERSION}.sh \
  && sh imod_${IMOD_VERSION}_RHEL7-64_CUDA${CUDA_VERSION}.sh -yes \
  && rm -rf /usr/bin/python \
  && ln -s /usr/bin/python2 /usr/bin/python \

相关文章

网友评论

      本文标题:Docker files for IMOD

      本文链接:https://www.haomeiwen.com/subject/ctrxyhtx.html