首先,还是说明一下,正确的做法是使用工具直接生成你需要的镜像,尽量不要自己折腾。
但我是手工处理的,为了就是折腾。
第二部分的目标,就是在neodeb01的基础上,实现Linux的常用网络功能。
1、新建文件夹neodeb02,把你想放到Docker中的文件放到这个目录下面,比如,我这边结构如下:
├── bin │ ├── dnsdomainname │ ├── domainname │ ├── ip │ ├── netstat │ ├── ping │ └── ping6 ├── build.sh ├── Dockerfile ├── etc │ ├── hosts │ ├── network │ │ └── interfaces │ ├── resolvconf │ │ └── update-libc.d │ │ └── avahi-daemon │ └── resolv.conf ├── lib │ ├── libip4tc.so.0 │ ├── libip4tc.so.0.1.0 │ ├── libip6tc.so.0 │ ├── libip6tc.so.0.1.0 │ ├── libxtables.so.10 │ ├── libxtables.so.10.0.0 │ └── x86_64-linux-gnu │ ├── libcom_err.so.2 │ ├── libcom_err.so.2.1 │ ├── libdns-export.so.100 │ ├── libgcc_s.so.1 │ ├── libgnutls-deb0.so.28 │ ├── libgnutls-deb0.so.28.41.0 │ ├── libirs-export.so.91 │ ├── libirs-export.so.91.0.0 │ ├── libisccfg-export.so.90 │ ├── libisccfg-export.so.90.1.0 │ ├── libisc-export.so.95 │ ├── libisc-export.so.95.5.0 │ ├── libkeyutils.so.1 │ ├── libkeyutils.so.1.5 │ ├── liblzma.so.5 │ ├── liblzma.so.5.0.0 │ ├── libnss_dns-2.19.so │ ├── libnss_dns.so.2 │ ├── libresolv-2.19.so │ └── libresolv.so.2 ├── sbin │ ├── dhclient │ ├── ifconfig │ ├── ifdown │ ├── ifup │ ├── ip │ ├── iptables │ └── route └── usr ├── bin │ ├── base64 │ ├── host │ ├── nslookup │ ├── traceroute │ ├── traceroute6 │ ├── wget │ └── whois ├── lib │ ├── libdns.so.100 │ ├── libdns.so.100.2.2 │ ├── libisccc.so.90 │ ├── libisccc.so.90.0.6 │ ├── libisccfg.so.90 │ ├── libisccfg.so.90.1.0 │ ├── libisc.so.95 │ ├── libisc.so.95.5.0 │ ├── liblwres.so.90 │ ├── liblwres.so.90.0.7 │ └── x86_64-linux-gnu │ ├── libbind9.so.90 │ ├── libbind9.so.90.0.9 │ ├── libcrypto.a │ ├── libcrypto.so │ ├── libcrypto.so.1.0.0 │ ├── libffi.so.6 │ ├── libffi.so.6.0.2 │ ├── libGeoIP.so.1 │ ├── libGeoIP.so.1.6.2 │ ├── libgnutls-openssl.so.27 │ ├── libgnutls-openssl.so.27.0.2 │ ├── libgssapi_krb5.so.2 │ ├── libgssapi_krb5.so.2.2 │ ├── libhogweed.so.2 │ ├── libhogweed.so.2.5 │ ├── libicudata.so.52 │ ├── libicudata.so.52.1 │ ├── libicuuc.so.52 │ ├── libicuuc.so.52.1 │ ├── libidn.so.11 │ ├── libidn.so.11.6.12 │ ├── libk5crypto.so.3 │ ├── libk5crypto.so.3.1 │ ├── libkrb5.so.26 │ ├── libkrb5.so.26.0.0 │ ├── libkrb5.so.3 │ ├── libkrb5.so.3.3 │ ├── libkrb5support.so.0 │ ├── libkrb5support.so.0.1 │ ├── libnettle.so.4 │ ├── libnettle.so.4.7 │ ├── libp11-kit.so.0 │ ├── libp11-kit.so.0.0.0 │ ├── libpsl.so.0 │ ├── libpsl.so.0.2.2 │ ├── libstdc++.so.6 │ ├── libstdc++.so.6.0.20 │ ├── libtasn1.so.6 │ ├── libtasn1.so.6.3.2 │ ├── libxml2.so.2 │ ├── libxml2.so.2.9.1 │ └── openssl-1.0.0 │ └── engines │ ├── lib4758cca.so │ ├── libaep.so │ ├── libatalla.so │ ├── libcapi.so │ ├── libchil.so │ ├── libcswift.so │ ├── libgmp.so │ ├── libgost.so │ ├── libnuron.so │ ├── libpadlock.so │ ├── libsureware.so │ └── libubsec.so └── sbin ├── arp └── arpd
2、Dockerfile文件
From neodeb01 ENV PATH /bin:/sbin:/usr/bin:/usr/sbin COPY . / CMD /bin/bash
3、build.sh文件
#/bin/sh sudo docker build -t neodeb02 .
4、.dockerignore文件
Dockerfile build.sh *.swp
5、新建镜像并运行
sudo docker build -t neodeb02 . sudo docker run -it neodeb02
PS:
如果你遇到了nslookup等,无法初始化安全插件的问题,一般是缺少这个文件夹:
/usr/lib/x86_64-linux-gnu/openssl-1.0.0
PS1:
如果你遇到了可以解析域名,可以ping通ip,但无法ping通域名的时候,除了修改常用的一些网络配置文件。
可以尝试增加libnss_dns。