busybox httpd搭建简单web服务器

Busybox提供linux常用的命令
例如ping、cat、wget、telnet、nc、nslookup、traceroute等,可以满足日常工作几乎所有测试需求。

常用操作

# 拉取docker镜像
docker pull busybox

# 运行busybox
docker run  -it --name mybusybox busybox:latest sh

# 启动busybox
docker start mybusybox

# 进入容器内部
docker exec -it mybusybox sh

# 删除容器
docker rm mybusybox

busybox httpd -p 8080 -h /www/

创建www文件夹,并在www文件夹中创建index.html随便编辑一些内容如

<p>Hello World!</p>

在浏览器中输入地址:http://127.0.0.1:8080 就能看到效果了。

PS:如何关闭这个httpd服务器?

在终端中执行ps命令查看httpd的pid

busybox ps | grep httpd

6573 httpd

使用kill命令杀死httpd的进程即可

kill 6573

如何通过一条命令创建http服务器?

docker run  -it -p 8888:8888 -v /usr/www:/www --name mybusybox -d busybox:latest httpd -p 8888 -h /www/

于是疑惑产生了, -d 是保证容器在后台运行,为什么我的容器停止运行了呢?

前面提到过, docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 中有一个 COMMAND 参数,容器启动后会执行 COMMAND命令,它的默认值为 /bin/bash。也就是说容器在后台启动成功后,执行了 COMMAND 命令后直接关闭了。

了解到该原理后,我们可以通过在 docker run -d 后增加一个驻留在进程中长期运行的命令就可以保证容器不关闭了。

方案一

docker run -d <image_name> tail -f /dev/null

比如:

docker run  -it -p 8888:8888 -v /usr/www:/www --name mybusybox busybox:latest sh -c "httpd -p 8888 -h /www/ && tail -f /dev/null"

这里的 mybusybox 是后台服务程序 不能阻塞docker的退出,所以加入 tail -f /dev/null 让容器mybusybox不退出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值