首先,还是说明一下,正确的做法是使用工具直接生成你需要的镜像,尽量不要自己折腾。
但我是手工处理的,为了就是折腾。
第二部分的目标,就是在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。