简单解决Docker中的镜像没有vim的问题(同时解决apt-get下载很慢的问题,原始的echo写入国内的源)

简单解决Docker中的镜像没有vim的问题(同时解决apt-get下载很慢的问题)

问题描述

当我们使用Docker的时候,我们往往会实例化镜像,形成容器。但有时,我们需要修改
比如:我们实例化了Nginx容器,想进入容器修改容器中的配置文件。

Docker提供了进入容器的方法。

# 进入docker容器
sudo docker exec -it eda2222(容器名orID) /bin/bash

但是当我们在容器中想使用vim,却会发现容器中是没有vim的。

bash: vim: command not found

原因也很简单:
Nginx镜像,是以Ubuntu/CentOS为基础镜像的,容器中的shell也由基础镜像提供。
但是这里的Ubuntu其实是精简版的,仅提供了最基础的运行环境,没有vim一类的东西。

解决办法

1.进行apt-get

我们首先想到的办法肯定是安装vim,但是会发现这两个过程需要半小时。
如果愿意等待的话,显然执行这两行代码就可以解决问题。

# 先更新我们的包管理工具
apt-get update
# 然后安装我们需要的vim
apt-get install vim

2.添加国内的源

(1)一般来说,我们只需要修改/etc/apt/sources.list,就可以添加国内的源,但是我们没有vim,还是没办法修改。
(我们可以用cat命令打印出来看一下,确实只有debian的源,怪不得速度慢)
sources.list
(2)所以,我们可以使用原始的echo命令,向文件中直接添加对应的国内源即可。粘贴下面的代码,直接执行即可。

# 向/etc/apt/sources.list添加网易的源
echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib' >> /etc/apt/sources.list

然后,我们就可以返回第一步,进行apt-get 即可。到此大功告成。

(补充)如果不知道echo的同学,可以百度一下,它是向文件中写入内容的Linux命令。我列出了常见的两种用法。

# 1,覆盖型写法 (文件里原来的内容被覆盖)
echo 'aaa' > a.txt
# 2,添加型写法 (新内容添加在原来内容的后面)
echo 'aaa' >> a.txt

这里其实还有个小坑,为什么不用阿里的源?
首先,我添加过阿里的源,但是在apt-get update的时候,阿里的源报错了。
来自Ubuntu的提示:the public key is not available
在排除权限等常见的坑以后,判断应该是Docker提供的精简Ubuntu,在阿里的源下载验证无法通过。
所以,这里推荐使用网易的源,阿里/中科大/清华的源有几率报错。

最后的话:这其实是一个非常简单的问题,但是非常常见,而且解决起来很麻烦。因此,有比较简单省心的方法(直接粘贴运行代码即可),还是分享出来。

所以就水了一篇文章了(但还是蛮实用的)。

欢迎大家一起交流~

  • 29
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Docker容器运行bash-4.2# apt-get update && apt-get install vim -y命令时出现了: apt-get: command not found的错误。这是因为Docker容器默认没有安装apt-get命令。为了解决这个问题,你可以使用以下两种方法之一: 方法一:在Dockerfile添加安装apt-get的步骤 你可以在Dockerfile文件添加以下内容来安装apt-get命令: FROM ubuntu:20.04 RUN apt-get update && apt-get install -y apt-utils RUN apt-get install -y vim 这样在构建Docker镜像时,apt-get命令将会被安装并可用。 方法二:使用apk命令代替apt-get命令 如果你使用的是Alpine Linux作为基础镜像,那么可以使用以下命令来安装vim: RUN apk update && apk add vim 这是因为Alpine Linux使用的是apk包管理器而不是apt-get。 请注意,根据你的具体情况选择适合的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker容器 bash: vi: command not found,docker apt-get 异常 Temporary failure resolving](https://download.csdn.net/download/weixin_38610070/14031838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Docker 快速入门,安装数据库 Dockerfile使用 制作ubuntu-flask镜像](https://blog.csdn.net/m0_61634551/article/details/129079615)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [-bash-4.2#:vim: command not found解决办法](https://blog.csdn.net/weixin_42057187/article/details/125087284)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值