管理Jail
列出主机上运行的jails:
列出运行的jails
jls
输出类似:
列出运行的jails输出举例
JID IP Address Hostname Path
2 10.0.0.9 bsd /usr/local/jails/containers/bsd
3 10.0.0.11 dev-1 /usr/local/jails/containers/dev-1
4 10.0.0.12 dev-2 /usr/local/jails/containers/dev-2
5 10.0.0.10 dev /usr/local/jails/containers/dev
另外, --libxo
参数可以通过 libxo
库显示其他类型格式,如 JSON
, HTML
等
显示 JSON
格式输出:
JSON
格式列出运行的jailsjls --libxo=json | jq
则输出内容为JSON格式,方便使用程序自动化处理:
JSON
格式列出运行的jails{
"__version": "2",
"jail-information": {
"jail": [
{
"jid": 2,
"ipv4": "10.0.0.9",
"hostname": "bsd",
"path": "/usr/local/jails/containers/bsd"
},
{
"jid": 3,
"ipv4": "10.0.0.11",
"hostname": "dev-1",
"path": "/usr/local/jails/containers/dev-1"
},
{
"jid": 4,
"ipv4": "10.0.0.12",
"hostname": "dev-2",
"path": "/usr/local/jails/containers/dev-2"
},
{
"jid": 5,
"ipv4": "10.0.0.10",
"hostname": "dev",
"path": "/usr/local/jails/containers/dev"
}
]
}
}
启动和停止jail- 使用
service
命令:
启动jail
# 启动名为dev的jail
service jail start dev
停止jail
# 停止名为dev的jail
service jail stop dev
访问jail:
访问
dev
jailjexec -u root dev
此时会看到进入了容器,并且可以执行基本操作:
dev
jail 内部root@dev:/ #
root@dev:/ # df -h
Filesystem Size Used Avail Capacity Mounted on
zroot/jails/containers/dev 903G 450M 903G 0% /
root@dev:/ # hostname
dev
root@dev:/ # ifconfig
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
groups: lo
wifibox0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=0
ether 58:9c:fc:10:60:55
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 3 priority 128 path cost 2000000
groups: bridge
tap0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=80000<LINKSTATE>
ether 58:9c:fc:10:ff:b4
groups: tap
media: Ethernet 1000baseT <full-duplex>
status: active
Opened by PID 375
可以在host主机上操作jail内部运行服务:
在host主机上操作jail内部服务(这里举例启动
dev
内部的sshd服务)# -l 参数用于指定jail名字,这样就可以在Host主机上操作jail中命令或服务
# 这里的 -l dev ,就是指定名为dev的jail进行操作
jexec -l dev sysrc sshd_enable="YES"
jexec -l dev service sshd start
在Host主机上使用
pkg
可以指定jail进行安装软件包,但是需要注意-j
参数指定jail名字:
在jail内部安装sudo
pkg -j dev install sudo
备注
为方便登录jail容器,执行 Jail环境初始化 构建一个ssh登录,admin用户使用的开发环境
在创建好
dev
jail 内部帐号admin
之后,就可以使用该站搞jexec
进入容器:
以
admin
访问 dev
jailsudo jexec -u admin dev