2016-10-28 217 views
1

安装软件包以下是一些出现在我的系统中的泊坞窗形象:无法在搬运工集装箱

[email protected]:/home/labadmin# docker images 
REPOSITORY TAG  IMAGE ID   CREATED    SIZE 
ubuntu  14.04 1e0c3dd64ccd  13 days ago   187.9 MB 
ubuntu  latest 45bc58500fa3  5 weeks ago   126.9 MB 

我想在容器中安装“了smartmontools”。但它抛出一个错误“无法找到包了smartmontools”如下:

[email protected]:/home/labadmin# docker run -it 1e0c3dd64ccd 
[email protected]:/# apt-get install smartmontools 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
E: Unable to locate package smartmontools 
[email protected]:/# exit 
exit 

但是,当我做同样的在Ubuntu的机器,它正在。

[email protected]:/home/labadmin# apt-get install smartmontools 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
***smartmontools is already the newest version.*** 
0 upgraded, 0 newly installed, 0 to remove and 542 not upgraded. 
[email protected]:/home/labadmin# 

Ubuntu Containers和Ubuntu系统有什么区别?什么阻止软件包安装在容器中?

我的要求是创建一些公用事业与Ubuntu OS中的集装箱为基础的图像:

FROM ubuntu:14.04 
RUN apt-get update && apt-get install -y smartmontools 
+0

可上网容器内? – Rao

+0

是的,工作,但看起来像DNS问题。 –

+0

你的发现是什么? – Rao

回答

0

以下程序已经帮我解决这个问题:

[email protected]:/home/labadmin# docker run busybox ping -c 2 192.203.230.10 
PING 192.203.230.10 (192.203.230.10): 56 data bytes 
64 bytes from 192.203.230.10: seq=0 ttl=56 time=66.724 ms 
64 bytes from 192.203.230.10: seq=1 ttl=56 time=54.786 ms 
--- 192.203.230.10 ping statistics --- 
2 packets transmitted, 2 packets received, 0% packet loss 
round-trip min/avg/max = 45.815/56.947/66.724 ms 

当您尝试使用容器ping到google.com时,由于DNS问题而无法访问。

[email protected]:/home/labadmin# docker run busybox nslookup google.com 
Server: 8.8.8.8 
Address 1: 8.8.8.8 

nslookup: can't resolve 'google.com' 

找出在你的机器使用的DNS服务器:

[email protected]:/home/labadmin# nm-tool |grep DNS 
    DNS:    172.24.100.50 
    DNS:    10.1.100.50 

执行相同的加入DNS IP:

[email protected]:/home/labadmin# docker run --dns 172.24.100.50 busybox nslookup google.com 
Server: 172.24.100.50 
Address 1: 172.24.100.50 indc01.radisys.com 

Name:  google.com 
Address 1: 2607:f8b0:4009:80c::200e ord36s01-in-x0e.1e100.net 
Address 2: 172.217.4.110 ord36s04-in-f14.1e100.net 

要解决它永久以下内容添加到新的文件:

[email protected]:/home/labadmin# cat /etc/docker/daemon.json 
{ 
    "dns" : ["172.24.100.50", "8.8.8.8"] 
} 

上泊坞窗DNS配置的更多信息:https://docs.docker.com/engine/userguide/networking/configure-dns/

重新启动搬运工服务:

[email protected]:/home/labadmin# docker run -it e02e811dd08f 
/# ping google.com 
PING google.com (172.217.4.238): 56 data bytes 
64 bytes from 172.217.4.238: seq=0 ttl=47 time=251.506 ms 
64 bytes from 172.217.4.238: seq=1 ttl=47 time=245.621 ms 
^C 
--- google.com ping statistics --- 
2 packets transmitted, 2 packets received, 0% packet loss 
round-trip min/avg/max = 245.621/257.113/272.586 ms 
/# 

欲了解更多信息:

[email protected]:/home/labadmin# sudo service docker restart 
docker stop/waiting 
docker start/running, process 22291 

[email protected]:/home/labadmin# docker run busybox nslookup google.com 
Server: 172.24.100.50 
Address 1: 172.24.100.50 indc01.radisys.com 

Name:  google.com 
Address 1: 2607:f8b0:4009:801::200e ord30s31-in-x0e.1e100.net 
Address 2: 172.217.4.238 ord30s31-in-f14.1e100.net 

通过运行容器检查它https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/

0

当您通过手动运行容器测试你不更新缓存蒙山apt-get update因此Unable to locate package错误

但你Dockerfile例子应该工作

+0

root @ labadmin-VirtualBox:〜/ RAGHU#docker build -t mont:1.1。 发送构建上下文到Docker守护进程209.5 MB 第1步:从ubuntu:14。04 ---> 1e0c3dd64ccd 第2步:运行apt-get更新&&的apt-get安装-y了smartmontools --->在616f62c55440 更新/ InRelease 读取软件包列表... 大厦的依赖关系树正在运行... 正在读取状态信息... E:无法找到包smartmontools **命令'/ bin/sh -c apt-get update && apt-get install -y smartmontools'返回了一个非零代码:100 ** –

+0

尝试使用--no-cache和--pull来确定。这将确保图像是最新的,并会使可能包含无效数据的缓存失效 –