背景

由于从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精选文章

DIY自己的ubuntu镜像相关推荐

  1. docker desktop ubuntu镜像_资深专家都知道的顶级 Docker 命令!

    开发人员一直在努力提高 Docker 的使用率和性能,命令也在不停变化.Docker 命令经常被弃用,或被替换为更新且更有效的命令,本文总结了近年来资深专家最常用的命令列表并给出部分使用方法. 目前, ...

  2. docker ubuntu镜像_Docker 入门指南 | Linux 中国

    该教程包含了如何创建一个新的 Docker 容器,如何运行该容器,如何从现有的 Docker 容器中创建自己的 Docker 镜像等 Docker 的一些基础知识.操作.-- Sk 在我们的上一个教程 ...

  3. docker安装ubuntu镜像

    在docker中安装Ubuntu. 1. 查找ubuntu镜像 docker search ubuntu 2. 安装 docker pull ubuntu 3. 查看镜像 docker images ...

  4. docker desktop ubuntu镜像_原创 | Docker入门,看了不理解,假一赔命

    写在前面 这篇博客适合谁? 对于Docker并不了解,只是有一点模糊的感觉,觉得Docker可以当成虚拟机用之类的 只是下载了Docker软件,对于怎么配置,怎么玩,第一步干什么,完全一无所知 其二, ...

  5. docker ubuntu镜像_macOS 下使用 Docker 搭建 ubuntu 环境

    学习网络开发过程中不想"污染"macOS,考虑到之后部署网络应用主要是与linux打交道,所以安装了 ubuntu 虚拟机以满足短期的知识学习需求.十里安装了 ubuntu 虚拟机 ...

  6. 搭建本地ubuntu镜像服务器(arm版)

    搭建本地ubuntu镜像服务器(arm版) 最近由于项目需要,经常从ports.ubuntu.com服务器上面下载ubuntu的镜像文件,但是面对几kB的速度,项目实在是进行不下去了.考虑到后面还要经 ...

  7. UltraISO打开Ubuntu镜像ISO文件只有EFI文件夹

    问题 在安装Ubuntu时,需要先制作U盘启动盘,在用软碟通UltraISO打开Ubuntu镜像ISO文件只有EFI文件夹. 原因 UltraISO软件版本过低. 解决办法 重新安装新版本的Ultra ...

  8. docker——Ubuntu镜像操作和apache web容器操作小实训

    文章目录 Ubuntu镜像操作 apache web容器操作 Ubuntu镜像操作 (1)拉取最新的Ubuntu官方镜像. (2)查看该镜像的详细信息. (3)查看该镜像的构建历史. (4)删除该镜像 ...

  9. 使用docker安装ubuntu镜像

    使用docker安装ubuntu镜像 查找Ubuntu镜像 docker search ubuntu 安装Ubuntu镜像 docker pull ubuntu 查看docker镜像 docker i ...

最新文章

  1. C++乘法的int越界问题
  2. python创建一个简单的服务
  3. 管家婆有未记账的凭证怎么办_管家婆常见问题
  4. 波士顿大学数学与计算机科学,2021战报 | 美国波士顿大学金融数学硕士录取
  5. [linux]ps结果计算行数
  6. checkbox 选中的id拼接长字符串
  7. Python中os库的使用
  8. YOLOv3实现鱼类目标检测
  9. windows核心编程读书笔记(一)
  10. Java 注解 (Annotation)浅入深出
  11. hadoop yarn如何启动聚合日志
  12. Unity之如何使用夜神模拟器logcat
  13. 内点法(interior point method)求解二次规划,附python代码
  14. 万圣节头像挂件微信小程序前端
  15. 一个简易的FTP客户端软件
  16. yolov5 deepsort 行人车辆 双向计数 跟踪检测 | 开源项目分享
  17. 服务器邮箱验证失败是什么意思,发送邮件时,提示“邮件发送失败:SMTP验证失败”?...
  18. win10虚拟机搭建 Hadoop集群
  19. 小妲己智能机器人要连接wifi吗_小度智能机器人怎么连wifi
  20. js 获取当前时间戳

热门文章

  1. 机器学习算法——决策树算法详细介绍,并使用sklearn实现案例预测,可视化决策树
  2. 当爱情遇见钱:找有钱的男人能得到啥
  3. WCF---关于无法使用以下搜索标准找到 X.509 证书的问题
  4. 彩屏显示入门:我要五彩斑斓的黑 | 用Arduino玩转ESP32与掌控板系列
  5. 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
  6. java 文件下载示例_文件下载示例代码(JAVA)
  7. start with connect by prior的使用方法
  8. Python线图点图--matplotlib.pyplot.plot
  9. 颜值是第一生产力 - Windows Terminal
  10. centos7下搭建lnmp环境包含yum源直接安装和源码编译安装,以及php5.3和php7.6版本