0
点赞
收藏
分享

微信扫一扫

Docker 无法执行 apt-get update 解决办法

前言

拉了一个 maven 镜像,需要修改仓库源,发现没有编译工具,无法进行编译文件,只能先安装编译工具了。


系统平台

Ubuntu 20.04.4 LTS

Docker 无法执行 apt-get update 解决办法_编译工具

Docker 版本

Docker 无法执行 apt-get update 解决办法_maven_02

本地镜像

Docker 无法执行 apt-get update 解决办法_编译工具_03


修改报错

进入容器,修改配置文件,提示 bash: vim: command not found,如下图所示的操作步骤。

Docker 无法执行 apt-get update 解决办法_maven_04

找到 maven 安装的目录,进入 conf 目录下修改配置文件。

Docker 无法执行 apt-get update 解决办法_maven_05


root@5afde2b35db3:/usr/share/maven/conf#
root@5afde2b35db3:/usr/share/maven/conf# vim settings.xml
bash: vim: command not found
root@5afde2b35db3:/usr/share/maven/conf# vi settings.xml
bash: vi: command not found
root@5afde2b35db3:/usr/share/maven/conf# gedit settings.xml
bash: gedit: command not found
root@5afde2b35db3:/usr/share/maven/conf#
root@5afde2b35db3:/usr/share/maven/conf#

更新安装

没有编译工具,先进行系统更新,然后进行安装。

Docker 无法执行 apt-get update 解决办法_编译工具_06

看到上面的操作都报错,无法系统更新,无法进行安装,这又遇到了什么稀奇古怪的问题呢?

系统源没有修改过,也没有更新过,其他的镜像都可以进行安装,应该不会是源方面的问题,那就看看网络方面的问题。

先看看网络的 DNS 的配置

root@5afde2b35db3:/etc#
root@5afde2b35db3:/etc# cat resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 192.168.109.2
search localdomain
root@5afde2b35db3:/etc#
root@5afde2b35db3:/etc#

Docker 无法执行 apt-get update 解决办法_maven_07

发现是 DNS 配置有问题,需要修改 DNS 配置。

目前无法使用编译工具进行修改,那应该怎么修改操作呢?

退出容器,通过 run 指令进行修改吧。

root@scm:/etc/docker#
root@scm:/etc/docker#
root@scm:/etc/docker#
root@scm:/etc/docker# docker run -it --rm --dns 8.8.8.8 --dns 114.114.114.114 d34fd907f4b9 /bin/bash
root@4b617c129a93:/#
root@4b617c129a93:/#
root@4b617c129a93:/# cat /etc/resolv.conf
search localdomain
nameserver 8.8.8.8
nameserver 114.114.114.114
root@4b617c129a93:/#
root@4b617c129a93:/#
root@4b617c129a93:/# apt-get update
Get:1 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB]
Get:2 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [39.4 kB]
Get:4 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [147 kB]
Get:5 http://deb.debian.org/debian bullseye/main amd64 Packages [8182 kB]
Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [2596 B]
Fetched 8532 kB in 1min 1s (141 kB/s)
Reading package lists... Done
root@4b617c129a93:/#
root@4b617c129a93:/#
root@4b617c129a93:/#

可以看到通过 run 指令修改了 DNS 的配置,进入容器查看 DNS 配置,已修改成功了,再次执行更新指令

apt-get update 已经可以执行更新了

Docker 无法执行 apt-get update 解决办法_编译工具_08

执行更新,安装 vim 编译工具。

Docker 无法执行 apt-get update 解决办法_编译工具_09

可以看到都正常的执行了更新及安装了工具。


举报

相关推荐

0 条评论