需求
实验室的环境采用docker的管理方式进行服务器的管理,通过私有 Docker Hub保存了个人的镜像文件,需要打包一个适合自己的image镜像,方便在服务器之间快速搭建实验环境,同时优化使用体验。
image内需安装以下内容:
- zsh + oh my zsh
- tmux
- tensorflow2.x版本-gpu
设备
计算服务器:3090等型号
1.拉取合适的镜像源
本案例采用拉取合适的镜像源并在其上进行扩展补充的方式,为满足需求,前往https://hub.docker.com/r/tensorflow/tensorflow/tags网站,选择合适的镜像源,本案例使用了tf2.7.0-gpu版本。
docker pull tensorflow/tensorflow:2.7.0-gpu
使用拉取的镜像新建容器并进入容器
- 编写测试文件,并进行测试
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
print('\n')
print(tf.test.is_built_with_cuda())
2. 安装tmux
apt-get install tmux
- 常用操作
# 查看有所有tmux会话
指 令:tmux ls
快捷键:Ctrl+b s
# 新建tmux窗口
指 令:tmux new -s <session-name>
# 分离会话
指 令:tmux detach 或者使用 exit(关闭窗口)
快捷键:Ctrl+b d
# 重新连接会话
指 令:tmux attach -t <session-name> 或者使用 tmux at -t <session-name>
# 杀死会话
指 令:tmux kill-session -t <session-name>
- 允许在终端内使用鼠标滚轮
快捷键:Ctrl+b
:set -g mouse on
3.安装zsh
# 安装 zsh
apt-get install zsh
# 查看安装 zsh
which zsh
# 查看 zsh 版本
zsh --version
4.安装oh-my-zsh
- oh-my-zsh帮我们整理了一些常用的Zsh 扩展功能和主题,避免重复造轮子
# 使用国内源下载
wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
# install.sh添加权限
chmod +x install.sh
# 执行
./install.sh
5.配置zsh主题和插件
- 修改主题为
steeef
ls ~/.oh-my-zsh/themes # 查看oh-my-zsh自带的所有主题
vim ~/.zshrc
ZSH_THEME="steeef"
source ~/.zshrc # 更新配置文件
- 增加插件
ls ~/.oh-my-zsh/plugins # 查看oh-my-zsh自带的所有插件
vim ~/.zshrc
plugins=(
git
z
sudo
docker
pip
zsh-autosuggestions
zsh-syntax-highlighting
)
其中zsh-autosuggestions
和zsh-syntax-highlighting
非官方自带,需自行下载
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
各种插件的作用:
git
、pip
:自动补全sudo
当我们输入命令需要管理员身份时,不必让光标回到开始打一个sudo
,可以直接按两次ESC,就会自动帮你加上sudo
。zsh-autosuggestions
是一个命令提示插件,当你输入命令时,会自动推测你可能需要输入的命令,按下方向键右键可以快速采用建议。zsh-syntax-highlighting
是一个命令语法校验插件,在输入命令的过程中,若指令不合法,则指令显示为红色,若指令合法就会显示为绿色。z
是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率。
source ~/.zshrc # 更新配置文件
6.优化挂载(非必须)
apt update
apt install nfs-common -y
apt install nfs-kernel-server -y
apt install netbase -y
必须安装nfs
所需安装包nfs-common
和nfs-kernel-server
,有些比较纯净的容器需要另外安装netbase
才能挂载容器
7.保存镜像并上传
至此,镜像内环境配置完毕,进行保存和上传到私有 Docker Hub
docker commit xxx(容器名) xxx.xxx.xx.cn:5000/xxx(个人用户名)/tf2.7.0-gpu-zsh-new
docker push xxx.xxx.xx.cn:5000/xxx(个人用户名)/tf2.7.0-gpu-zsh-new