Show pagesourceOld revisionsBacklinksBack to top × Table of Contents Docker OpenWrt镜像 待办列表 链接 Example Dockerfile Docker OpenWrt镜像 本文档的目标是让OpenWrt镜像在Docker————这一基于LXC的容器系统中运行。 您可以使用以下命令导入基础镜像: $ docker import http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-rootfs.tar.gz openwrt-x86-generic-rootfs $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE openwrt-x86-generic-rootfs latest 2cebd16f086c 6 minutes ago 5.283 MB 您可以使用以下命令在docker镜像中运行一个简单的cat: root@turmes /home/zoobab/docker [14]# docker run -i openwrt-x86-generic-rootfs cat /etc/banner _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- ATTITUDE ADJUSTMENT (12.09, r36088) ----------------------------------------------------- * 1/4 oz Vodka Pour all ingredients into mixing * 1/4 oz Gin tin with ice, strain into glass. * 1/4 oz Amaretto * 1/4 oz Triple sec * 1/4 oz Peach schnapps * 1/4 oz Sour mix * 1 splash Cranberry juice ----------------------------------------------------- root@turmes /home/zoobab/docker [15]# Let's run a basic command: root@turmes /home/zoobab [17]# docker run -i openwrt-x86-generic-rootfs ifconfig eth0 Link encap:Ethernet HWaddr F2:06:70:1D:D0:65 inet addr:172.17.0.30 Bcast:172.17.255.255 Mask:255.255.0.0 inet6 addr: fe80::f006:70ff:fe1d:d065/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) root@turmes /home/zoobab [18]# docker run -i openwrt-x86-generic-rootfs /sbin/init init started: BusyBox v1.19.4 (2013-03-06 20:07:44 UTC) sysinit: date: can't set kernel time zone: Operation not permitted sysinit: Loading defaults sysinit: Loading synflood protection sysinit: Adding custom chains sysinit: Loading zones sysinit: Loading forwardings sysinit: Loading rules sysinit: Loading redirects sysinit: Loading includes sysinit: Optimizing conntrack sysinit: Loading interfaces 您可以使用以下命令运行一个交互式命令行工具: root@turmes /home/zoobab [20]# docker run -i -t openwrt-x86-generic-rootfs /bin/ash BusyBox v1.19.4 (2013-03-06 20:07:44 UTC) built-in shell (ash) Enter 'help' for a list of built-in commands. / # ps PID USER VSZ STAT COMMAND 1 root 1248 S /bin/ash 6 root 1248 R ps / # There seems to be an issue with /var subdirs not created: / # ifconfig eth0 Link encap:Ethernet HWaddr 02:51:6F:E7:12:0A inet addr:172.17.0.44 Bcast:172.17.255.255 Mask:255.255.0.0 inet6 addr: fe80::51:6fff:fee7:120a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:25 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:15551 (15.1 KiB) TX bytes:648 (648.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) / # opkg update Collected errors: * opkg_conf_load: Could not create lock file /var/lock/opkg.lock: No such file or directory. / # mkdir -p /var/lock / # ls bin dev etc lib mnt overlay proc rom root sbin sys tmp usr var www / # opkg update Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/Packages.gz. Updated list of available packages in /var/opkg-lists/attitude_adjustment. / # 让我们修改root的密码然后使用dropbear通过ssh建立连接: / # passwd Changing password for root New password: Bad password: too weak Retype password: Password for root changed by root / # ps PID USER VSZ STAT COMMAND 1 root 1252 S /bin/ash 21 root 1248 R ps / # /etc/init.d/dropbear restart / # ps PID USER VSZ STAT COMMAND 1 root 1260 S /bin/ash 44 root 960 S /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22 45 root 1248 R ps / # 在打开控制台的同时,在另一个终端中尝试使用ssh方式连接到IP地址: zoobab@turmes /home/zoobab [2]$ ssh root@172.17.0.45 root@172.17.0.45's password: BusyBox v1.19.4 (2013-03-06 20:07:44 UTC) built-in shell (ash) Enter 'help' for a list of built-in commands. _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- ATTITUDE ADJUSTMENT (12.09, r36088) ----------------------------------------------------- * 1/4 oz Vodka Pour all ingredients into mixing * 1/4 oz Gin tin with ice, strain into glass. * 1/4 oz Amaretto * 1/4 oz Triple sec * 1/4 oz Peach schnapps * 1/4 oz Sour mix * 1 splash Cranberry juice ----------------------------------------------------- root@17691dbb9d9a:~# </code< 接下来,让我们安装一个软件包: <code> root@17691dbb9d9a:~# opkg update Collected errors: * opkg_conf_load: Could not create lock file /var/lock/opkg.lock: No such file or directory. root@17691dbb9d9a:~# mkdir /var/lock root@17691dbb9d9a:~# opkg update Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/Packages.gz. Updated list of available packages in /var/opkg-lists/attitude_adjustment. root@17691dbb9d9a:~# opkg install root@17691dbb9d9a:~# ps PID USER VSZ STAT COMMAND 1 root 1260 S /bin/ash 30 root 960 S /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22 38 root 1032 S /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22 39 root 1256 S -ash 48 root 1248 R ps root@17691dbb9d9a:~# opkg install lighttpd Installing lighttpd (1.4.30-2) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/lighttpd_1.4.30-2_x86.ipk. Installing libopenssl (1.0.1e-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/libopenssl_1.0.1e-1_x86.ipk. Installing zlib (1.2.7-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/zlib_1.2.7-1_x86.ipk. Installing libpcre (8.11-2) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/libpcre_8.11-2_x86.ipk. Installing libpthread (0.9.33.2-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/libpthread_0.9.33.2-1_x86.ipk. Configuring libpthread. Configuring libpcre. Configuring zlib. Configuring libopenssl. Configuring lighttpd. root@17691dbb9d9a:~# 您可以使用以下命令,发布docker镜像: docker pull zoobab/openwrt-x86-attitude Example to get a shell: root@turmes /home/zoobab [4]# docker run -i -t zoobab/openwrt-x86-attitude /bin/ash BusyBox v1.19.4 (2013-03-06 20:07:44 UTC) built-in shell (ash) Enter 'help' for a list of built-in commands. / # ls bin dev etc lib mnt overlay proc rom root sbin sys tmp usr var www / # ifconfig eth0 Link encap:Ethernet HWaddr E6:7A:80:85:59:68 inet addr:172.17.0.46 Bcast:172.17.255.255 Mask:255.255.0.0 inet6 addr: fe80::e47a:80ff:fe85:5968/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7069 (6.9 KiB) TX bytes:328 (328.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) / # 待办列表 Fix /sbin/init to get the openwrt banner and shell at the end? Fix the /var entries: mkdir /var/run && mkdir /var/lock Change the build to generate some images with dev entries Get the LUCI web interface to work publish more images with x64 and/or x32 arch publish images with a different arch via qemu (http://dktrkranz.wordpress.com/2013/11/19/cross-architecture-linux-containers-in-debian/) publish images with interesting profiles (lighttpd dirlist server, ftpd server, ircd server, tor server, etc...) 链接 https://hub.docker.com/r/zoobab/openwrt-15.05.1-x86-64-rootfs/ Example Dockerfile Note the use of “exec format” for the CMD which properly makes /sbin/init proc 1 and boots all services (fixing many issues). FROM scratch ADD https://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/openwrt-15.05-x86-generic-Generic-rootfs.tar.gz / EXPOSE 80 RUN mkdir /var/lock && \ opkg update && \ opkg install uhttpd-mod-lua && \ uci set uhttpd.main.interpreter='.lua=/usr/bin/lua' && \ uci commit uhttpd USER root # using exec format so that /sbin/init is proc 1 (see procd docs) CMD ["/sbin/init"] This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.OKMore information about cookies Last modified: 2018/05/21 10:25by lujimmy