dockerfile---apt-get install vim 时 Unable to locate package vim
在学习 dockerfile 的时候,发现编写的 Dockerfile 中的 apt-get install 命令无法找到要安装的包,所以记录一下这次发生的错误。
环境:宿主机:windows 10 上安装 VMware 虚拟化软件
VMware workstation 15 pro
客户机:Ubuntu 18.04 STL
Dockerfile 内容:
FROM ubuntu:18.04 # 从 dockerhub 直接拉下来的官方镜像
MAINTAINER zhangpeng<ssezhangpeng@gmail> ENV MYPATH /usr/local
WORKDIR $MYPATH RUN apt-get -y install vim
RUN apt-get -y install net-tools EXPOSE CMD echo $MYPATH
CMD echo "success---------------ok"
CMD /bin/bash
Dockerfile
出错情景:

出错原因:
在 Ubuntu 中,刚下载下来的 ubuntu 是没有任何包索引的,所以由于该镜像中的仓库没有添加任何包索引,导致找不到要安装的包,在正常情况下,刚安装完成 Ubuntu 后,都需要执行一下:apt-get update 命令来更新一下包索引,而其它系统则不需要,比如 centos 好像就不需要,会事先自动给你添加包索引。
解决办法:
在 Dockerfile 中添加更新包索引的命令,重新构建镜像即可。
更新后的 Dockerfile 文件:
FROM ubuntu:18.04
MAINTAINER zhangpeng<ssezhangpeng@gmail> ENV MYPATH /usr/local
WORKDIR $MYPATH RUN apt-get update
RUN apt-get -y install vim
RUN apt-get -y install net-tools EXPOSE CMD echo $MYPATH
CMD echo "success---------------ok"
CMD /bin/bash
Dockerfile
注:如果出现下述的情况:
出错情景:

出错原因:
这种错误是因为无法解决 ‘archive.ubuntu.com’ 网址,及无法解析上述网址,所以我们可以想到是 DNS 的问题,如果你的宿主机的网络设置是自己手工配置的,可能你的 DNS 服务器被手工设置为了:8.8.8.8 和 8.8.4.4 ,如下图所示。但是在某些情况下,比如某些学校、企业内部封锁了当前网络对 8.8.8.8 DNS 服务器的访问,这时,我们就不能正确解析上述出现错误的网址了。
注:下图为 window 下的 ipv4 的属性配置,如果你的宿主机是 Linux 系列,则可自行搜索找到自己的 DNS 配置

解决方法:
我们可以设置成别的可以访问的 DNS 服务器地址,比如百度的 DNS 服务器(180.76.76.76);或者设置成上图中的自动获取 DNS 服务器地址即可。所以如果出现了下述情况,我们可以在自己的宿主机上 ping 8.8.8.8 ,看是否能访问该 DNS服务器。
注:公共的 DNS 服务器地址列表可通过附录链接进行查看
附录链接:
https://blog.csdn.net/lennSUIkA/article/details/80157427
dockerfile---apt-get install vim 时 Unable to locate package vim的更多相关文章
- Ubuntu install 错误 E:Unable to locate package
今天在 Ubuntu 上执行 sudo apt install sl 命令,结果报错:E:Unable to locate package sl 上网查询了一下,先更新一下 apt-get,执行:su ...
- Ubuntu Server安装telnet服务时"Unable to locate package telnetd"解决方法
装好Ubuntu Server 12.04后,用apt-get安装telnetd报"E: Unable to locate package telnetd",解决方法如下: 虚拟机 ...
- sudo apt-get install ubuntu-desktop, Error: unable to locate package
http://askubuntu.com/questions/130532/sudo-apt-get-install-ubuntu-desktop-error-unable-to-locate-pac ...
- Linux - 解决使用 apt-get 安装 yum 的时耗报 E: Unable to locate package yum 的错误
问题背景 在 Linux 系统下使用 apt-get 命令安装 yum 库报错 apt-get install yum E: Unable to locate package yum 问题解决 一行命 ...
- Ubuntu中用sudo apt-get install makeinfo时,出错:Unable to locate package
背景: 在准备ARM交叉编译环境时,执行命令: DISTRO=fsl-imx-x11 MACHINE=imx6qsabresd source fsl-setup-release.sh -b build ...
- 【转】ubuntu 11.04使用apt-get安装软件时一直提示E:unable to locate package
问题: VMware虚拟机安装了ubuntu 11.04,在使用apt-get安装软件时一直提示E:Unable to locate package. 百度了原因,说是要更新源,使用命令:sudo a ...
- Ubuntu : 解决更新时出现 Unable to locate package update
当用apt-get更新软件包时常出现错误提示Unable to locate package update, 尤其是在ubuntu server上,解决方法是: 先更新apt-get ...
- Ubuntu11.10 E: Unable to locate package ubuntu-restricted-extras
最近在ubuntu11.10下安装支持多媒体播放的插件时遇到一些问题,在此小记一下. 首先是ubuntu11.10的安装,基本上是一键安装,在此不细说. 1.此版本和以前使用的ubuntu版本风格不太 ...
- ubuntu 安装nginx, 出现 Unable to locate package
今天在初始化一台新的ubuntu 服务器时,敲上了 sudo apt-get install nginx 来安装nginx, 却发现提示: Reading package lists... Done ...
随机推荐
- validate表单验证-单独验证
今天编写一个表单验证程序,我来说一下今天遇到的坑:程序不是通过submit按钮提交验证的,是在自己写的一个方法中提交的,出现了表单无法验证的情况.然后我就了解了一下jquery validate的验证 ...
- UVA - 12174 Shuffle (预处理+滑动窗口)
题意:已知歌单中的歌曲数目s,和部分的播放历史,问下一首可能播放的歌曲种数. 分析: 1.按照歌单数目s,将播放历史划分为几部分. 2.将播放历史的n首歌曲之前加上s首歌曲,之后加上s首歌曲,为防止标 ...
- Nachos-Lab1-完善线程机制
Nachos是什么 Nachos (Not Another Completely Heuristic Operating System),是一个教学用操作系统,提供了操作系统框架: 线程 中断 虚拟内 ...
- 一百一十一、SAP的OO-ALV之五,显示ALV表格
一.在屏幕里面有2部分,(PROCESS BEFORE OUTPUT 用于显示, PROCESS AFTER INPUT用于数据处理).我们创建的display_alv函数, 二.display_al ...
- 017-PHP数组形式读取TXT记事本内容
<?php // 打开文件同时,输出每一行 $myFile = file("data.txt"); for ($index = 0; $index < count($m ...
- ubuntu18.04 基于Hadoop3.1.2集群的Hbase2.0.6集群搭建
前置条件: 之前已经搭好了带有HDFS, MapReduce,Yarn 的 Hadoop 集群 链接: ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式 ...
- Node.js 发送Email
章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...
- junit基础学习之-测试service层(3)
测试步骤: 在之前的文章中已经加了junit的环境,这就不需要了. 1.加载junit类,spring配置文件,指明junit测试器,@Runwith 2.定义变量,service,不可以使用spri ...
- Git的http与ssh配置
http 进入git bash 直接clone所需项目 通过http方式 eg:git clone http://xxxxxxxxxx/bk_linux_inspect-master.git 会弹出提 ...
- 解决Tomcat在idea控制台乱码问题
解决Tomcat乱码问题 打开Tomcat安装目录:apache-tomcat-9.0.14-windows-x64/conf/logging.properties 大概在50多行注释这一句#java ...