## 基础镜像构建

```bash
# 更新
$ apt update
$ apt install sudo
$ apt install vim
$ apt install curl
$ apt install wget
$ apt install build-essential
# 安装 jupyter所需要的基础软件
$ apt install ca-certificates

# 创建一个rocker用户和他的home
$ useradd -m -s /bin/bash rocker -u 7788
# 创建密码 quant_u2Oh0Go9J76aQb3h7Ybg2apw@yanguangshaonian
$ passwd rocker

# 创建一个rocker的用户组并把上面的用户添加到组中
$ usermod -g 7788 -aG rocker rocker

# 删除ubuntu用户和他的组
$ userdel -r ubuntu && groupdel ubuntu

# 允许sodo权限 /etc/sudoers 添加 %rocker   ALL=(ALL:ALL) ALL
$ echo "%rocker   ALL=(ALL:ALL) ALL" >> /etc/sudoers

# vi编辑 /etc/group 最后修改或者添加 rocker:x:7788:rocker
$ vi /etc/group

# vi 编辑 /etc/passwd 最后修改或者添加 rocker:x:7788:7788:rocker:/home/rocker:/bin/bash
$ vi /etc/passwd

# 创建 /log/logs 文件
$ mkdir /logs && touch /logs/log && chmod 777 /logs && chmod 777 /logs/log

# 切换用户
$ su rocker && cd ~

# rocker用户 安装rust
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# rocker用户 安装pypy
# 官网下载上传二进制文件就行了

# rocker用户 安装go
# 官网下载上传二进制文件就行了

# rocker用户 安装g++
# build-essential带的有

# 安装node
$ mkdir node && cd node
$ wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz
$ tar xvf node-v14.17.0-linux-x64.tar.xz && rm -rf node-v14.17.0-linux-x64.tar.xz
$ cp -rf node-v14.17.0-linux-x64/* ./ && rm -rf node-v14.17.0-linux-x64



# 清空root和rocker用户的 .viminfo
# 清空root和rocker用户的 history历史命令
$ echo > ~/.viminfo && history -c && echo > ~/.bash_history


# docker 导出
$ docker export CONTAINER > base_ubuntu_image.tar

# 解压后的操作, 解压后检查
$ tar -xvf base_ubuntu_image.tar && rm -rf base_ubuntu_image.tar

# vi 编辑 etc/resolv.conf, 添加 nameserver 8.8.8.8
$ echo "nameserver 8.8.8.8" > etc/resolv.conf

# vi 编辑 etc/hosts 添加 127.0.0.1 rocker
$ echo "127.0.0.1 rocker" > etc/hosts

# 删除多余文件
$ rm -rf .dockerenv

# 删除需要编译的语言 测试用生成的可执行程序(比如 rust/go/cpp)
$ rm -rf rust_project/target/rust_project
$ rm -rf cpp_project/main
$ rm -rf go_project/go_project


# 在入镜像的主目录压缩, 再次压缩 即可使用
tar -czf ../base_ubuntu_image.tar.gz .

# copy到images
$ cp base_ubuntu_image.tar.gz /home/rocker/images/base_ubuntu_image
$ rm -rf /home/rocker/volumes/base_ubuntu_image









```