DIY自己的ubuntu镜像

  • Post author:
  • Post category:其他


背景

由于从docker hub上pull下来的ubuntu镜像是非常干净的,干净到没有ping、ifconfig这种最基础的网络命令。为了后续使用ubuntu的docker镜像时不重复折腾这些事情。因此,今天花了一些时间创建了一个可用的镜像,在这里记录一下整个过程中遇到的一些问题,主要是为自己做一些备忘,当然,如果能帮助到其他人也是一件快乐的事情。

步骤

0. pull ubuntu基础镜像

关于如何安装docker,可以google一下,就不介绍了。

docker pull ubuntu:last  # 使用最新的ubuntu镜像
docker run --name myubuntu  -d ubuntu  # 使用pull下来的ubuntu镜像创建/启动一个名字为myubuntu的容器
docker exec -it myubuntu /bin/bash # 登陆到容器中

docker的命令可以查看文章:

资深专家都知道的Docker常用命令_云计算_赵钰莹_InfoQ精选文章

1. 安装基础的网络工具

apt update # 先更新一下源,不然安装可能会报错
apt install net-tools # 安装ifconfig工具包
apt install inetutils-ping  # 安装ping工具

2. 安装开发工具

apt install vim
apt install gcc
apt install g++
apt install gdb
apt install python3
apt install python3-pip          # 安装的是pip3
pip3 install NumPy -i https://pypi.tuna.tsinghua.edu.cn/simple   # 由于国外的源安装很慢,所以这里使用了国内的清华大学的源
pip3 install Matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple 

3.配置zsh

echo $SHELL           # 查看系统当前使用的shell
cat /etc/shells       # 查看系统自带的所有shell
apt install zsh -y    # 安装zsh
cat /etc/shells.      # 查看zsh是否安装成功
apt install curl
chsh -s /bin/zsh      # 设置zsh为默认shell
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" # 安装oh-my-zsh ,或 使用 sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
vim ~/.zshrc          # 修改主题 ZSH_THEME="agnoster", 隐藏用户名 prompt_context () {}
source ~/.zshrc

4. 问题

1. 安装oh-my-zsh时遇到connect超时或失败时,可能是qiang的原因,解决方案:



The Best IP Address, Email and Networking Tools – IPAddress.com

查询raw.githubusercontent.com的真实IP后,通过修改

hosts

解决此问题

vim /etc/hosts # 修改hosts文件,增加raw.githubusercontent.com的ip映射,例如,199.232.28.133 raw.githubusercontent.com

2. zsh (anon):12: character not in range


在 /etc/zsh/zshrc

文件底部添加以下两行:


export LC_ALL=C.UTF-8



export LANG=C.UTF-8


3. 退出docker后再登陆时,zsh配置不生效


猜测原因应该是docker的bug,解决方案:


每次登陆后需要source ~/.zshrc,或者在/etc/zsh/zshrc文件末尾,增加 source ~/.zshrc


在登陆docker时,执行 docker exec -it

my_ubuntu

/bin/zsh


参考

【1】

Ubuntu 18.04 安装配置Oh My Zsh 主题设置_dendy的博客-CSDN博客_ubuntu zsh

【2】

zsh 隐藏用户名和主机_「违规用户」的博客-CSDN博客

【3】

zsh (anon):12: character not in range – 简书

【4】

Docker解决每次进入容器命令都要重新source /etc/profile 才能生效的问题 – 简书

【5】

解决pip3 install下载很慢 – 三七鸽 – 博客园

【6】

docker上传自己的镜像 – 冬眠的山谷 – 博客园

【7】

资深专家都知道的Docker常用命令_云计算_赵钰莹_InfoQ精选文章



版权声明:本文为wjsylx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。