1、首先是拉取一个镜像,并启动之。我这里使用busybox作为测试
[root@ELK-chaofeng08 ~]# docker container run --rm -it --name bbox1 busybox / # httpd -h httpd: option requires an argument -- h BusyBox v1.30.1 (2019-02-14 18:58:02 UTC) multi-call binary. Usage: httpd [-ifv[v]] [-c CONFFILE] [-p [IP:]PORT] [-u USER[:GRP]] [-r REALM] [-h HOME] or httpd -d/-e/-m STRING Listen for incoming HTTP requests -i Inetd mode -f Don't daemonize -v[v] Verbose -p [IP:]PORT Bind to IP:PORT (default *:80) -u USER[:GRP] Set uid/gid after binding to port -r REALM Authentication Realm for Basic Authentication -h HOME Home directory (default .) -c FILE Configuration file (default {/etc,HOME}/httpd.conf) -m STRING MD5 crypt STRING -e STRING HTML encode STRING -d STRING URL decode STRING / # mkdir -pv /data/httpd created directory: '/data/' created directory: '/data/httpd/' / # echo "This is the busybox" > /data/httpd/index.html
busybox镜像一启动默认是进入“sh”的shell交互终端,这是因为该busybox默认启动就是运行“sh”命令。我们想一启动这个镜像就可以运行httpd程序。
2、我们再打开一个新的终端,然后制作镜像,修改默认运行的命令
上面这个图片中的-h参数解释的不太正确,再纠正一下:
3、查看制作的镜像
3.1、如果你没有打标签,可以参考这个图片
4、我们启动一下这个新的镜像
看不到什么效果,因此我们再打开一个终端看看效果
5、查看此镜像的进程
发现我们刚刚制作的新的镜像已经启动了,并且默认运行的命令是“httpd -f -h /data/httpd”
6、我们看看这个image的ip是什么
使用这个命令查看image的详细信息
[root@ELK-chaofeng08 ~]# docker inspect db8c95fc5ba8
然后在显示的内容的最下面,我们可以看到ip
7、访问一下看看效果
很不错,制作成功了。
最后我们还可以将此新的自己制作的镜像放在dockerhub上供别人参考