下载Ubuntu基础镜像
docker pull ubuntu
默认下载的是latest版本的镜像(目前latest是20.04),如果要下载18.04或者16.04,请加上版本号信息,比如:
docker pull ubuntu:16.04
安装完镜像后我们需要创建容器并进入其中,安装必要的软件:
docker run -itd --name ubt-code-based ubuntu
docker exec -it ubt-code-based bash
安装软件前建议先执行一下apt update
。
我们这里以ubt-code-based这个容器名来进行说明。
安装zsh和oh-my-zsh
默认的ubuntu里有bash,能够满足非常基础的需求,但是如果想更高效的工作,建议使用zsh,同时安装上oh-my-zsh,能提升你的工作效率。
apt install zsh curl git
cd ~
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
安装完oh-my-zsh后,建议安装如下插件:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
如果由于网络原因访问不了这两个库,建议访问gitee的,这里也贴下命令:
git clone https://gitee.com/leel0330/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://gitee.com/leel0330/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
这里说明下这几个库的作用:
插件名 | 作用 |
---|---|
zsh-syntax-highlighting | 高亮命令,错误的、找不到的命令会用红色标记,正确的一般是绿色 |
zsh-autosuggestions | 缓存了敲过的命令,再次使用该命令时避免了重复复制,直接使用即可 |
zsh的配置文件是.zshrc。上面安装的插件需要配置下才能生效:
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
另外,我们需要追加配置以下内容:
# This speeds up pasting w/ autosuggest
# https://github.com/zsh-users/zsh-autosuggestions/issues/238
pasteinit() {
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
}
pastefinish() {
zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish
这里的配置是避免复制命令在控制台是一个个字符显示出来。
好了配置完后source .zshrc
然后我们的插件就生效了。比如效果如下:
安装Vim和插件
apt install vim
vim的插件安装推荐使用插件管理器vim-plug。具体这里不详细介绍了,想了解更多请自Google之。
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
在目录~
创建.vimrc并添加如下内容:
" Plugins will be downloaded under the specified directory.
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')
" Declare the list of plugins.
Plug 'crusoexia/vim-monokai'
" List ends here. Plugins become visible to Vim after this call.
call plug#end()
需要安装什么插件配置在两个call命令之间即可。可以看出这里我添加了一款monokai主题的插件。让我们加一些基础的配置吧:
" vim basic config
" 设置编码格式
set encoding=utf-8
" 显示行号
set number
" 关闭兼容模式
set nocompatible
" 设置右下角光标的行列信息
set ruler
" 当一行很长时取消换行
set nowrap
" 在状态栏显示输入的命令和模式
set showcmd
set showmode
" 突出显示当前行列
set cursorline
" 开启语法高亮
syntax enable
syntax on
" 设置Tab宽度
set tabstop=4
set shiftwidth=4
set softtabstop=4
" 设置输入Tab键为空格
set expandtab
" 关闭设置输入Tab键为空格
"set noexpandtab
" 显示括号匹配
set showmatch
" 显示tab键
"set list
"set listchars=tab:>-,trail:-
" 设置自动缩进
set autoindent
" 设置搜索相关配置
set hlsearch
set incsearch
set ignorecase
" 设置颜色
set t_Co=256
" 设置主题
colorscheme monokai
上面的配置同样是在.vimrc文件。完整的配置文件可以参考如下:
" Plugins will be downloaded under the specified directory.
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')
" Declare the list of plugins.
Plug 'crusoexia/vim-monokai'
" List ends here. Plugins become visible to Vim after this call.
call plug#end()
" vim basic config
set encoding=utf-8
set number
set nocompatible
set ruler
set nowrap
set showcmd
set showmode
set cursorline
syntax enable
syntax on
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
"set noexpandtab
set showmatch
"set list
"set listchars=tab:>-,trail:-
set autoindent
set hlsearch
set incsearch
set ignorecase
set t_Co=256
colorscheme monokai
好了,我们的Ubuntu镜像就制作到这了,为了方便在此镜像基础上进行扩展,可以保存到我们的远程Docker Hub上(前提是你要有一个Docker账号并且已经登录上去):
docker commit ubt-code-based ubt-code-based
docker tag ubt-code-based leel0330/ubt-code-based
docker push leel0330/ubt-code-based
至此,我们的镜像就推送到了Docker Hub上,以后想使用的话直接Pull下来即可,不需要一直从ubuntu基础镜像开始构建起了,节省了大量时间。
这篇作为打造属于自己的Docker镜像系列的起始篇,因为本人使用Go、C++和Python比较多,后面会一一介绍如何打造这三种语言开发的镜像。希望各位多多捧场~