准备

  • Oracle VM VirtualBox
  • ubuntu-20.04.2-live-server-amd64.iso

系统安装

CPU 核心根据物理机核心数拉满,待会需要装软件能更快些

存储不用分区了,感觉虚拟机分区没啥意义,需要扩容的时候反而麻烦。

软件源换成国内比较快的源,比如阿里(http://mirrors.aliyun.com/ubuntu/ )或者清华(https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ )的。

安装的时候把 ssh 工具安装选择勾上。

安装完毕会更新一些东西,不需要就可以 reboot 了,自用虚拟机也懒得安全更新了。

reboot 正常重启的话到 VirtualBox 里重启。因为是服务器版本,有 cloud-init 云环境这东西,重启后关了,用不着。

1
2
systemctl disable cloud-init-local cloud-init cloud-config cloud-final
systemctl stop cloud-init-local cloud-init cloud-config cloud-final

设置和软件安装

网络

网络问题以前写过 VirtualBox Ubuntu20.04 网络设置,懒得搬过来了。

ssh

如何之前没选择安装 ssh 工具,手动安装

1
sudo apt-get install openssh-server

客户机上 ssh-keygen -t rsa 生成密钥

Linux 上密钥位置在当前用户目录下 .ssh 文件夹中,Windows 上密钥位置在 C:\Users\用户名\.ssh 中,公钥文件为 id_rsa.pub,私钥文件为 id_rsa

将公钥文件上传到当前用户目录下 /home/用户/.ssh/ (或者想给谁 ssh 权限放谁目录下,目录不存在先创建)

创建 authorized_keys 文件

1
touch ~/.ssh/authorized_keys

将公钥写入 authorized_keys 文件

1
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys`

注意服务器机器若也想 ssh 其他机器,.ssh 目录下要是先生成 id_rsa.pub 文件,上传的客户端公钥文件改个名,别把服务器机器自己的公钥给覆盖了。

Docker

原软件源中的 Docker 可能不是最新版本的

更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源:

1
2
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

使用下面的 curl 导入源仓库的 GPG key:

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将 Docker APT 软件源添加到你的系统:

1
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

现在,Docker 软件源被启用了,你可以安装软件源中任何可用的 Docker 版本。

安装 Docker 最新版本,运行下面的命令

1
2
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

非 root 用户执行 docker 命令权限不足,不想 sudo 就把用户加到 docker 用户组,重开终端即生效。

1
sudo usermod -aG docker {用户名}

想在 IDEA 或其他工具连接管理容器可以开启远程模式。

编辑 docker 服务,加上远程监听服务

1
2
3
4
vi /lib/systemd/system/docker.service

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

reload 下守护线程,重启 docker。

1
2
systemctl daemon-reload 
systemctl restart docker

根据你的 ip 访问 http://{ip}:2375/version,可以看到版本信息就行了。另外在 IDEA 连接 Docker 的时候需要把代理(HTTP Proxy 那地方)关了,否则连接可以会报异常java.io.IOException: unexpected end of stream

zsh

github raw 被墙,不想脚本安装就先装 zsh,再克隆git库配置一下就好了。

1
2
3
sudo apt-get install zsh
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

vi ~/.zshrc 修改主题

1
2
#ZSH_THEME="robbyrussell"
ZSH_THEME="ys"

echo $SHELL 查看默认 shell

chsh -s /bin/zsh 设置 zsh 为默认 shell

待续

...

一些常用的命令配置可以写成脚本一键执行更简单。