CEPH分布式存储

scadm 2021年6月26日19:57:17
评论
9355 12125字

ceph简介:

Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中,通常会采用 ceph 作为openstack 的唯一后端存储来提高数据转发效率。

ceph特点:

高性能:
a.摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架、感知等。
c.能够支持上千个存储节点的规模,支持TB到PB级的数据。

高可用性:
a.副本数可以灵活控制。(就是说让副本保存份数可以多份,在正常的生产环境是保存3副本)
b.支持故障域分隔,数据强一致性。
c.多种故障场景自动进行修复自愈。
d.没有单点故障,自动管理。(假如说我这个文件设置的是3副本,如果后端服务器坏掉,副本数不够3,它会自动补充至3副本)

高可扩展性:
a.去中心化。
b.扩展灵活。
c.随着节点增加而线性增长。

特性丰富:
a.支持三种存储接口:块存储(我得到的是硬盘)、文件存储(目录)、对象存储(有可能给你对接的是一个挂载的目录,但是后端怎么去存的,它会把数据打散,采用键值对形式存储)。
b.支持自定义接口,支持多种语言驱动。

ceph的应用场景:
Ceph可以提供对象存储、块设备存储和文件系统服务,其对象存储可以对接网盘(owncloud)应用业务等;其块设备存储可以对接(IaaS),当前主流的IaaS运平台软件,如:OpenStack、CloudStack、Zstack、Eucalyptus等以及kvm等。

Ceph是一个高性能、可扩容的分布式存储系统,它提供三大功能
对象存储(RADOSGW):提供RESTful接口,也提供多种编程语言绑定。兼容S3(是AWS里的对象存储)、Swift(是openstack里的对象存储);
块存储(RDB):由RBD提供,可以直接作为磁盘挂载,内置了容灾机制;
文件系统(CephFS):提供POSIX兼容的网络文件系统CephFS,专注于高性能、大容量存储;

什么是块存储/对象存储/文件系统存储?

展开收缩

什么是块存储/对象存储/文件系统存储?
1.对象存储:
也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL 和其他扩展,代表主要有 Swift 、S3 以及 Gluster 等;
2.块存储:
这种接口通常以 QEMU Driver 或者 Kernel Module 的方式存在,这种接口需要实现 Linux 的 Block Device 的接口或者 QEMU 提供的 Block Driver 接口,如 Sheepdog,AWS 的 EBS,青云的云硬盘和阿里云的盘古系统,还有 Ceph 的 RBD(RBD是Ceph面向块存储的接口)。在常见的存储中 DAS、SAN 提供的也是块存储;
3.文件系统存储:
通常意义是支持 POSIX 接口,它跟传统的文件系统如 Ext4 是一个类型的,但区别在于分布式存储提供了并行化的能力,如 Ceph 的 CephFS (CephFS是Ceph面向文件存储的接口),但是有时候又会把 GlusterFS ,HDFS 这种非POSIX接口的类文件存储接口归入此类。当然 NFS、NAS也是属于文件系统存储;

ceph架构

ceph架构

CEPH分布式存储

ceph组件

OSD(Object Storage Device)

Ceph OSD守护进程(Ceph OSD)的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors提供一些监控信息。当Ceph存储集群设定为有2个副本时,至少需要2个OSD守护进程,集群才能达到active+clean状态(Ceph默认有3个副本,但你可以调整副本数)。

 

MON(Monitor)

Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、OSD图、归置组(PG)图、和CRUSH图。Ceph保存着发生在Monitors 、OSD和PG上的每一次状态变更的历史信息(称为Epoch,Epoch 是一个通用的实时的图表库,用于构建漂亮、平滑和高性能的可视化图形图表。)。

 

MDS(Ceph MetaData Server)

Ceph元数据服务器(MDS)为Ceph文件系统存储元数据(也就是说,Ceph块设备和Ceph对象存储不使用MDS)。元数据服务器使得POSIX文件系统的用户们,可以在不对Ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。MDS能够控制Client和OSD的交互,还可以管理限额控制、目录和文件的创建与删除,以及访问控制权限等。

 

PG (placement group)

PG (放置组)是 OSD之上的一层逻辑,可视其为一个逻辑概念。Ceph 把对象映射到PG中。 从名字可理解PG是一个放置策略组,很多个对象一起组团,然后再存入OSD 中,用来方便定位和追踪对象。

因为一个拥有数百万对象的系统,不可能在对象这一级追踪位置。可以把 PG 看做一个对象集合,该集合里的所有对象都具有相同的放置策略:对象的副本都分布在相同的OSD列表上。

PG 减少了各对象存入对应 OSD 时的元数据数量,更多的 PG 使得均衡更好。PG有主从之分,对于多副本而言,一个PG的主从副本分布在不同的OSD上;一个对象只能属于一个PG,一个PG包含很多个对象,一个PG对应于一个OSD列表,PG的所有对象对存放在对应的OSD列表上。

 

Pool存储池

Pool 是一个抽象的存储池,它是 PG 之上的一层逻辑。所有的对象都必须存在存储池中。存储池管理着归置组数量、副本数量、和存储池规则集。要往存储池里存数据,用户必须通过认证、且权限合适,存储池可做快照。

如果把整个 Ceph 存储系统看做是一个数据库的话,那么 Pool 的角色可以看做是数据表。用户可能需要根据不同的需求把对象存储在不同的存储池中。

一个 Pool 由多个 PG 构成,一个 PG 只能属于一个 Pool。同一个 Pool 中的 PG 具有相同的类型,比如,如 Pool 为副本类型,则 Pool 中所有的 PG 都是多副本的。

 

PGP (Placement Group for Placemen)

PGP是PG的归置组,PGP 起到对 PG 进行归置的作用,PGP的取值应该与PG相同,在PG的值增大的同时,也要增大PGP的值以保持二者的值相同。

当一个 Pool 的 PG 增大后,Ceph 并不会开始进行 rebalancing,只有在 PGP 的值增大后, PG才会开始迁移至其他的OSD上,并且开始 rebalancing。

ceph准备环境

192.168.93.101 scyun-node-1    osd admin monitor
192.168.93.103 scyun-node-3    osd mds
192.168.93.104 scyun-node-4    osd mds
192.168.93.105 scyun-node-5    client

ceph集群部署

关闭iptables或者防火墙规则
monitor节点放行tcp6789端口
ceph-osd节点放行tcp端口6800:7300

CEPH分布式存储

主机名和hosts解析设置

CEPH分布式存储

ntp时间同步

yum install ntpdate -y
ntpdate  pool.ntp.org

 

设置ssh免密

[root@scyun-node-1 ~]# ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa -q
[root@scyun-node-1 ~]# for i in `seq 1 4`;do ssh-copy-id -i ~/.ssh/id_rsa.pub scyun-node-$i ;done

CEPH分布式存储

 

ceph_yum源环境

cat>/etc/yum.repos.d/ceph.repo<<EOF
> [ceph]
> name=ceph
> baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
> gpgcheck=0
> priority=1
> [ceph-noarch]
> name=cephnoarch
> baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
> gpgcheck=0
> priority=1
> [ceph-source]
> name=Ceph source packages
> baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
> gpgcheck=0
> priority=1
> EOF

 

ceph-deploy管理工具

ceph-deploy是Ceph官方提供的部署工具,基于ssh远程登录其它各个节点上执行命令完成部署过程,通常在node节点上安装此工具。

ceph-deploy工具默认使用root用户SSH到各Ceph节点执行命令。为了方便,需求提前设置免密码登陆各个节点。如果ceph-deploy以某个普通用户登陆,那么这个用户必须有无密码使用sudo的权限。

[root@scyun-node-1 yum.repos.d]# yum -y install ceph-deploy

 

创建Monitor服务

[root@scyun-node-1 yum.repos.d]# mkdir /etc/ceph
[root@scyun-node-1 yum.repos.d]# cd /etc/ceph/
[root@scyun-node-1 ceph]# ceph-deploy new scyun-node-1

执行如上指令会创建对应ceph的配置文件、日志文件和Monitor密钥文件:

CEPH分布式存储

ceph软件安装

在每个节点上安装ceph

[root@scyun-node-1 ceph]# ceph-deploy install scyun-node-1 scyun-node-3 scyun-node-4

分别在三台服务器上执行查看ceph是否安装成功

CEPH分布式存储

 

部署monitor

创建monitor监控

[root@scyun-node-1 ceph]# ceph-deploy mon create scyun-node-1

收集keyring(密钥环)信息

[root@scyun-node-1 ceph]# ceph-deploy gatherkeys scyun-node-1

查看生成的配置文件和秘钥
CEPH分布式存储

创建OSD存储节点

分别在每个节点上创建/data目录

[root@scyun-node-1 ceph]# for i in $(seq 1 4);do ssh -l root scyun-node-$i "mkdir -p /data/" ;done
[root@scyun-node-1 ceph]# for i in $(seq 1 4);do ssh -l root scyun-node-$i "chmod 777 -R /data/" ;done

创建osd节点

[root@scyun-node-1 ceph]# ceph-deploy osd prepare scyun-node-1:/data/ scyun-node-3:/data/ scyun-node-4:/data/

激活各个节点osd

[root@scyun-node-1 ceph]# ceph-deploy osd activate scyun-node-1:/data/ scyun-node-3:/data/ scyun-node-4:/data/

激活osd后使用下面命令查看osd状态

[root@scyun-node-1 ceph]# ceph-deploy osd list scyun-node-1

admin

使用如下命令将配置文件和admin密钥同步到各个节点,以便各个节点使用ceph命令时无需指定Monitor地址和ceph.client.admin.keyring密钥。注意:还需要修改各个节点ceph.client.admin.keyring密钥的权限

[root@scyun-node-1 ceph]# ceph-deploy admin scyun-node-1 scyun-node-3 scyun-node-4

    检测osd状态

[root@scyun-node-1 ceph]# ceph health 
HEALTH_OK

 

部署MDS服务(fs)

[root@scyun-node-1 ceph]# ceph-deploy mds create scyun-node-1 scyun-node-3 scyun-node-4

查看mds状态

[root@scyun-node-1 ceph]# ceph mds stat
e4:, 3 up:standby

查看集群状态

[root@scyun-node-1 ceph]# ceph -s 
    cluster d7765255-7c9d-43e5-98a5-0f3366f9b53f
     health HEALTH_OK
     monmap e1: 1 mons at {scyun-node-1=192.168.93.101:6789/0}
            election epoch 3, quorum 0 scyun-node-1
     osdmap e15: 3 osds: 3 up, 3 in
            flags sortbitwise,require_jewel_osds
      pgmap v131: 64 pgs, 1 pools, 0 bytes data, 0 objects
            23905 MB used, 28276 MB / 52182 MB avail
                  64 active+clean

 

ceph创建存储池

[root@scyun-node-1 ceph]# ceph osd pool create scyun_data 128
pool 'scyun_data' created

创建存储池元数据

[root@scyun-node-1 ceph]# ceph osd pool create scyun_metadata 128 pool 'scyun_metadata' created

创建文件系统

root@scyun-node-1 ceph]# ceph fs new 128 scyun_metadata scyun_data
new fs with metadata pool 2 and data pool 1

查看ceph文件系统

[root@scyun-node-1 ceph]# ceph fs ls
name: 128, metadata pool: scyun_metadata, data pools: [scyun_data ]

ceph应用

据如上Ceph分布式集群部署实战,Ceph集群构建完成,在企业生产环境中,客户端使用Ceph集群,主要有如下两种方法:

1)内核驱动挂载Ceph文件系统

在客户端上创建ceph文件夹

[root@scyun-node-5 ~]# mkdir -p /etc/ceph

把node1上的秘钥文件拷贝到客户端

[root@scyun-node-5 ~]# scp -r scyun-node-1:/etc/ceph/ceph.client.admin.keyring /etc/ceph
The authenticity of host 'scyun-node-1 (192.168.93.101)' can't be established.
ECDSA key fingerprint is SHA256:6npXqL78S2K2Wgh5S/AU7YgJBf4sU9RrUHZNm82ziGc.
ECDSA key fingerprint is MD5:ce:a8:b4:1b:38:cb:62:10:2c:21:e8:54:1c:70:3a:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'scyun-node-1,192.168.93.101' (ECDSA) to the list of known hosts.
root@scyun-node-1's password: 
ceph.client.admin.keyring                                                                                           100%   63

查看秘钥文件

[root@scyun-node-5 ~]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
	key = AQA8B9dgIbglDxAA4+IgoE8E0pu3WnI5enJpXQ==

安装Ceph文件系统类型支持

[root@scyun-node-5 ~]# yum install ceph-common -y

驱动挂载文件系统

挂载文件系统有两种方式

方式一:

mount -t ceph 192.168.93.101:6789:/ /data/ -o name=admin,secret=AQA8B9dgIbglDxAA4+IgoE8E0pu3WnI5enJpXQ==
[root@master2 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.9G 16G 11% /
devtmpfs 979M 0 979M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
tmpfs 199M 0 199M 0% /run/user/0
192.168.93.101:6789:/ 51G 24G 28G 46% /data

方式二:

就是将秘钥文件同时写入至/etc/ceph/admin.secret文件中

[root@scyun-node-5 ceph]# mount -t ceph 192.168.93.101:6789:/ /data/ -o name=admin,secretfile=/etc/ceph/admin.secret

用户控件挂载ceph文件系统

在客户端主机部署ceph-fuse,命令操作如下

[root@master2 ~]# yum install ceph-fuse -y
[root@master2 ~]# ceph-fuse -m 192.168.93.101:6789 /data/
2021-06-26 19:55:32.271278 7f1dddfb0f00 -1 did not load config file, using default settings.
ceph-fuse[7088]: starting ceph client
2021-06-26 19:55:32.295604 7f1dddfb0f00 -1 init, newargv = 0x55c9dce746c0 newargc=11
ceph-fuse[7088]: starting fuse
[root@master2 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.9G 16G 11% /
devtmpfs 979M 0 979M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
tmpfs 199M 0 199M 0% /run/user/0
ceph-fuse 51G 24G 28G 46% /data

卸载命令

[root@master2 ~]# fusermount -u /data

 

 

ceph RBD块存储

 

创建资源池

[root@scyun-node-1 ceph]# ceph osd pool create ceph-sc 128 128

查看资源池

[root@scyun-node-1 ceph]# ceph osd lspools
0 rbd,1 scyun_data,2 scyun_metadata,3 ceph-sc,

[root@scyun-node-1 ceph]# ceph osd pool ls 
rbd
scyun_data
scyun_metadata
ceph-sc

[root@scyun-node-1 ceph]# ceph osd pool get ceph-sc pg_num
pg_num: 128
[root@scyun-node-1 ceph]# ceph osd pool get ceph-sc pgp_num
pgp_num: 128
[root@scyun-node-1 ceph]# ceph osd pool get ceph-sc size
size: 2

创建镜像

[root@scyun-node-1 ceph]# rbd create -p ceph-sc --image rbd-demo.img --size 20G

查看镜像信息

[root@scyun-node-1 ceph]# rbd info ceph-sc/rbd-demo.img 
rbd image 'rbd-demo.img':
	size 20480 MB in 5120 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.103b6b8b4567
	format: 2
	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
	flags:
[root@scyun-node-1 ceph]# rbd feature disable  ceph-sc/rbd-demo.img  deep-flatten
[root@scyun-node-1 ceph]# rbd feature disable  ceph-sc/rbd-demo.img  fast-diff
[root@scyun-node-1 ceph]# rbd feature disable  ceph-sc/rbd-demo.img   object-map
[root@scyun-node-1 ceph]# rbd feature disable  ceph-sc/rbd-demo.img  exclusive-lock

在客户端映射镜像

[root@master2 ~]# rbd map ceph-sc/rbd-demo.img
2021-06-26 20:16:14.950644 7ff5bb722d80 -1 did not load config file, using default settings.
no monitors specified to connect to.
In some cases useful info is found in syslog - try "dmesg | tail" or so.
rbd: map failed: (2) No such file or directory

解决以上报错,把node1节点的配置信息拉到客户端

[root@master2 ~]# scp -r root@192.168.93.101:/etc/ceph/* /etc/ceph/
root@192.168.93.101's password: 
ceph.bootstrap-mds.keyring                                                                                          100%  113    36.0KB/s   00:00    
ceph.bootstrap-mgr.keyring                                                                                          100%   71    86.4KB/s   00:00    
ceph.bootstrap-osd.keyring                                                                                          100%  113   148.2KB/s   00:00    
ceph.bootstrap-rgw.keyring                                                                                          100%  113    62.0KB/s   00:00    
ceph.client.admin.keyring                                                                                           100%   63    48.7KB/s   00:00    
ceph.conf                                                                                                           100%  230   134.9KB/s   00:00    
ceph-deploy-ceph.log                                                                                                100%  242KB  13.4MB/s   00:00    
ceph.mon.keyring                                                                                                    100%   73    67.4KB/s   00:00    
rbdmap

查看磁盘

[root@master2 ~]# fdisk -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bc2e9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/rbd0:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):4194304 字节 / 4194304 字节

初始化磁盘

[root@master2 ~]# mkfs.ext4 /dev/rbd0 
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成                            
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=1024 blocks, Stripe width=1024 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

挂载磁盘使用

[root@master2 ~]# mount /dev/rbd0 /data/
[root@master2 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  1.9G   16G   11% /
devtmpfs                 979M     0  979M    0% /dev
tmpfs                    991M     0  991M    0% /dev/shm
tmpfs                    991M  9.5M  981M    1% /run
tmpfs                    991M     0  991M    0% /sys/fs/cgroup
/dev/sda1               1014M  133M  882M   14% /boot
tmpfs                    199M     0  199M    0% /run/user/0
/dev/rbd0                 20G   45M   19G    1% /data

 

RBD块存储扩容

查看要扩容的镜像

[root@scyun-node-1 ceph]# rbd -p ceph-sc ls 
rbd-demo.img

扩容

[root@scyun-node-1 ceph]# rbd resize ceph-sc/rbd-demo.img --size 30G 
Resizing image: 100% complete...done.

查看镜像容量信息

[root@scyun-node-1 ceph]# rbd info ceph-sc/rbd-demo.img 
rbd image 'rbd-demo.img':
	size 30720 MB in 7680 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.103b6b8b4567
	format: 2
	features: layering
	flags:

去客户端上看下,可以看到整体容量是增加了,但是df -h 看不到,可能要重新分区或者初始化一下磁盘

[root@master2 ~]# fdisk  -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bc2e9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/rbd0:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):4194304 字节 / 4194304 字节

 

继续阅读
运维最后更新:2021-7-5
scadm
  • 本文由 发表于 2021年6月26日19:57:17
  • 转载请务必保留本文链接:https://www.wscyun.com/1518
Hadoop 节点扩容 运维

Hadoop 节点扩容

配置好hosts解析 # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdom...
hadoop 分布式存储部署 运维

hadoop 分布式存储部署

Hadoop概念 Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost...
docker容器部署 Docker

docker容器部署

查找镜像文件 # 在Docker官方仓库中搜索Nginx镜像,Nginx镜像文件中只包含Nginx软件程序、数据文件 # docker search nginx NAME DESCRIPTION ST...