logo
docker.io/flink:1.18.0
linux/amd64 docker.io 邢立赞 贡献

这是一个包含 Apache Flink 的 Docker 镜像,Apache Flink 是一个开源的流处理框架,用于处理实时数据流。该镜像提供了 Flink 的所有核心组件,包括:

  • Flink 运行时
  • Flink 任务管理器
  • Flink 作业管理器
  • Flink 客户端

使用此镜像,你可以轻松地在 Docker 容器中运行 Flink 作业,并利用 Docker 的优点,例如可移植性和隔离性。

18
浏览次数
794.27MB
镜像大小
国内镜像
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0
源镜像
docker.io/flink:1.18.0
镜像ID
sha256:244e9f70d0f71c8c673eafd3592f0b457fd8e463a24a452a057ed7e6677767b5
镜像 TAG
1.18.0
镜像大小
794.27MB
平台架构
linux/amd64
镜像源
docker.io
CMD
help
启动入口
/docker-entrypoint.sh
工作目录
/opt/flink
OS/平台
linux/amd64
镜像创建
2023-12-16T14:46:58.530631612Z
同步时间
2026-11-13 13:59
浏览量
18 次
贡献者
avatar 邢立赞
🔌 开放端口 2
6123/tcp 8081/tcp
⚙️ 环境变量 12
KeyValue
PATH=/opt/flink/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0
JAVA_HOME=/opt/java/openjdk 1
LANG=en_US.UTF-8 2
LANGUAGE=en_US:en 3
LC_ALL=en_US.UTF-8 4
JAVA_VERSION=jdk-11.0.21+9 5
GOSU_VERSION=1.11 6
FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz 7
FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz.asc 8
GPG_KEY=96AE0E32CBE6E0753CE6DF6CB078D1D3253A8D82 9
CHECK_GPG=true 10
FLINK_HOME=/opt/flink 11
🏷️ 镜像标签 2
KeyValue
ubuntu org.opencontainers.image.ref.name
22.04 org.opencontainers.image.version

Docker拉取命令

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0  docker.io/flink:1.18.0

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0  docker.io/flink:1.18.0

Shell快速替换命令

sed -i 's#flink:1.18.0#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0 && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0  docker.io/flink:1.18.0'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0 && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0  docker.io/flink:1.18.0'

镜像构建历史


# 2023-12-16 22:46:58  0.00B 
/bin/sh -c #(nop)  CMD ["help"]
                        
# 2023-12-16 22:46:58  0.00B 
/bin/sh -c #(nop)  EXPOSE 6123 8081
                        
# 2023-12-16 22:46:58  0.00B 
/bin/sh -c #(nop)  ENTRYPOINT ["/docker-entrypoint.sh"]
                        
# 2023-12-16 22:46:58  5.29KB 
/bin/sh -c #(nop) COPY file:ab8cf5711c2ee73018994cee7133a7f61b2e5fca388abbb79b5eac61bf7f4fa3 in / 
                        
# 2023-12-16 22:46:57  522.49MB 
/bin/sh -c set -ex;   wget -nv -O flink.tgz "$FLINK_TGZ_URL";     if [ "$CHECK_GPG" = "true" ]; then     wget -nv -O flink.tgz.asc "$FLINK_ASC_URL";     export GNUPGHOME="$(mktemp -d)";     for server in ha.pool.sks-keyservers.net $(shuf -e                             hkp://p80.pool.sks-keyservers.net:80                             keyserver.ubuntu.com                             hkp://keyserver.ubuntu.com:80                             pgp.mit.edu) ; do         gpg --batch --keyserver "$server" --recv-keys "$GPG_KEY" && break || : ;     done &&     gpg --batch --verify flink.tgz.asc flink.tgz;     gpgconf --kill all;     rm -rf "$GNUPGHOME" flink.tgz.asc;   fi;     tar -xf flink.tgz --strip-components=1;   rm flink.tgz;     chown -R flink:flink .;     sed -i 's/rest.address: localhost/rest.address: 0.0.0.0/g' $FLINK_HOME/conf/flink-conf.yaml;   sed -i 's/rest.bind-address: localhost/rest.bind-address: 0.0.0.0/g' $FLINK_HOME/conf/flink-conf.yaml;   sed -i 's/jobmanager.bind-host: localhost/jobmanager.bind-host: 0.0.0.0/g' $FLINK_HOME/conf/flink-conf.yaml;   sed -i 's/taskmanager.bind-host: localhost/taskmanager.bind-host: 0.0.0.0/g' $FLINK_HOME/conf/flink-conf.yaml;   sed -i '/taskmanager.host: localhost/d' $FLINK_HOME/conf/flink-conf.yaml;
                        
# 2023-12-16 22:46:39  0.00B 
/bin/sh -c #(nop) WORKDIR /opt/flink
                        
# 2023-12-16 22:46:38  3.24MB 
/bin/sh -c groupadd --system --gid=9999 flink &&     useradd --system --home-dir $FLINK_HOME --uid=9999 --gid=flink flink
                        
# 2023-12-16 22:46:38  0.00B 
/bin/sh -c #(nop)  ENV PATH=/opt/flink/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                        
# 2023-12-16 22:46:38  0.00B 
/bin/sh -c #(nop)  ENV FLINK_HOME=/opt/flink
                        
# 2023-12-16 22:46:38  0.00B 
/bin/sh -c #(nop)  ENV FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download&filename=flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz.asc GPG_KEY=96AE0E32CBE6E0753CE6DF6CB078D1D3253A8D82 CHECK_GPG=true
                        
# 2023-12-16 22:46:38  2.30MB 
/bin/sh -c set -ex;   wget -nv -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)";   wget -nv -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc";   export GNUPGHOME="$(mktemp -d)";   for server in ha.pool.sks-keyservers.net $(shuf -e                           hkp://p80.pool.sks-keyservers.net:80                           keyserver.ubuntu.com                           hkp://keyserver.ubuntu.com:80                           pgp.mit.edu) ; do       gpg --batch --keyserver "$server" --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && break || : ;   done &&   gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu;   gpgconf --kill all;   rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc;   chmod +x /usr/local/bin/gosu;   gosu nobody true
                        
# 2023-12-16 22:46:27  0.00B 
/bin/sh -c #(nop)  ENV GOSU_VERSION=1.11
                        
# 2023-12-16 22:46:27  11.56MB 
/bin/sh -c set -ex;   apt-get update;   apt-get -y install gpg libsnappy1v5 gettext-base libjemalloc-dev;   rm -rf /var/lib/apt/lists/*
                        
# 2023-12-16 18:17:57  0.00B 
/bin/sh -c #(nop)  ENTRYPOINT ["/__cacert_entrypoint.sh"]
                        
# 2023-12-16 18:17:57  1.18KB 
/bin/sh -c #(nop) COPY file:8b8864b3e02a33a579dc216fd51b28a6047bc8eeaa03045b258980fe0cf7fcb3 in /__cacert_entrypoint.sh 
                        
# 2023-12-16 18:17:57  0.00B 
/bin/sh -c set -eux;     echo "Verifying install ...";     echo "java --version"; java --version;     echo "Complete."
                        
# 2023-12-16 18:17:56  140.69MB 
/bin/sh -c set -eux;     ARCH="$(dpkg --print-architecture)";     case "${ARCH}" in        aarch64|arm64)          ESUM='8dc527e5c5da62f80ad3b6a2cd7b1789f745b1d90d5e83faba45f7a1d0b6cab8';          BINARY_URL='https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.21_9.tar.gz';          ;;        amd64|i386:x86-64)          ESUM='156861bb901ef18759e05f6f008595220c7d1318a46758531b957b0c950ef2c3';          BINARY_URL='https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_x64_linux_hotspot_11.0.21_9.tar.gz';          ;;        armhf|arm)          ESUM='7c12ca8f195bf719368016a1c3e7f06f8f06e4a573dc3dce0befbe30a388ffa3';          BINARY_URL='https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_arm_linux_hotspot_11.0.21_9.tar.gz';          ;;        ppc64el|powerpc:common64)          ESUM='286e37ce06316185377eea847d2aa9f1523b9f1428684e59e772f2f6055e89b9';          BINARY_URL='https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_ppc64le_linux_hotspot_11.0.21_9.tar.gz';          ;;        s390x|s390:64-bit)          ESUM='78f18503970715c03b8e6e70191d9001c883edab23d9f51ff434e4a03c6237bd';          BINARY_URL='https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.21%2B9/OpenJDK11U-jre_s390x_linux_hotspot_11.0.21_9.tar.gz';          ;;        *)          echo "Unsupported arch: ${ARCH}";          exit 1;          ;;     esac;     wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL};     echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -;     mkdir -p "$JAVA_HOME";     tar --extract         --file /tmp/openjdk.tar.gz         --directory "$JAVA_HOME"         --strip-components 1         --no-same-owner     ;     rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip;     find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf;     ldconfig;     java -Xshare:dump;
                        
# 2023-12-16 18:17:24  0.00B 
/bin/sh -c #(nop)  ENV JAVA_VERSION=jdk-11.0.21+9
                        
# 2023-12-16 18:16:29  36.13MB 
/bin/sh -c set -eux;     apt-get update;     DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends         curl         wget         fontconfig         ca-certificates p11-kit         tzdata         locales     ;     echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen;     locale-gen en_US.UTF-8;     rm -rf /var/lib/apt/lists/*
                        
# 2023-12-16 18:16:13  0.00B 
/bin/sh -c #(nop)  ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
                        
# 2023-12-16 18:16:13  0.00B 
/bin/sh -c #(nop)  ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                        
# 2023-12-16 18:16:13  0.00B 
/bin/sh -c #(nop)  ENV JAVA_HOME=/opt/java/openjdk
                        
# 2023-12-12 19:38:59  0.00B 
/bin/sh -c #(nop)  CMD ["/bin/bash"]
                        
# 2023-12-12 19:38:59  77.85MB 
/bin/sh -c #(nop) ADD file:2b3b5254f38a790d40e31cb26155609f7fc99ef7bc99eae1e0d67fa9ae605f77 in / 
                        
# 2023-12-12 19:38:57  0.00B 
/bin/sh -c #(nop)  LABEL org.opencontainers.image.version=22.04
                        
# 2023-12-12 19:38:57  0.00B 
/bin/sh -c #(nop)  LABEL org.opencontainers.image.ref.name=ubuntu
                        
# 2023-12-12 19:38:57  0.00B 
/bin/sh -c #(nop)  ARG LAUNCHPAD_BUILD_ARCH
                        
# 2023-12-12 19:38:57  0.00B 
/bin/sh -c #(nop)  ARG RELEASE
                        
                    

镜像信息

{
    "Id": "sha256:244e9f70d0f71c8c673eafd3592f0b457fd8e463a24a452a057ed7e6677767b5",
    "RepoTags": [
        "flink:1.18.0",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink:1.18.0"
    ],
    "RepoDigests": [
        "flink@sha256:a65c761f915e828acea70c4a10da32abe79278f5ef6840395712486be7b5ccb7",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/flink@sha256:e8415b61a03bb7add3573d38d6265880cbbe7abaac680c7cd081eed87b8fc9f3"
    ],
    "Parent": "",
    "Comment": "",
    "Created": "2023-12-16T14:46:58.530631612Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "20.10.23",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "6123/tcp": {},
            "8081/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/opt/flink/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "JAVA_HOME=/opt/java/openjdk",
            "LANG=en_US.UTF-8",
            "LANGUAGE=en_US:en",
            "LC_ALL=en_US.UTF-8",
            "JAVA_VERSION=jdk-11.0.21+9",
            "GOSU_VERSION=1.11",
            "FLINK_TGZ_URL=https://www.apache.org/dyn/closer.cgi?action=download\u0026filename=flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz",
            "FLINK_ASC_URL=https://www.apache.org/dist/flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz.asc",
            "GPG_KEY=96AE0E32CBE6E0753CE6DF6CB078D1D3253A8D82",
            "CHECK_GPG=true",
            "FLINK_HOME=/opt/flink"
        ],
        "Cmd": [
            "help"
        ],
        "Image": "sha256:6ce1517bb86040909c99bd1a4d6e0349a7a861dfe7d0e7ac4bbfc5c16052f541",
        "Volumes": null,
        "WorkingDir": "/opt/flink",
        "Entrypoint": [
            "/docker-entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": {
            "org.opencontainers.image.ref.name": "ubuntu",
            "org.opencontainers.image.version": "22.04"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 794269822,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/587cdaecac2fd47277a66b67e95d3e3164d9a7cc1bac6ce6172f3fef5d1d6dd1/diff:/var/lib/docker/overlay2/f10c82712ab924b09a5713a460b0d0472d5f8df41edcedbea57891834478c611/diff:/var/lib/docker/overlay2/d9d4808da9d1d2025b51f3683ff62cfd7b33a88c457bfa1a68ff9405b3a9b21c/diff:/var/lib/docker/overlay2/5ec3d98ce01e3f463d2d52cf9164a226ae3a25c411ef1c3a0d9c448a19919054/diff:/var/lib/docker/overlay2/7a34b0694581b76c7e54d7a1142b1e66b6553fa37ccce15f278ad99c2d7f2913/diff:/var/lib/docker/overlay2/54155cf36a3414f26c21094ff262c80df4a60692b3c9e23402d90802cc44c602/diff:/var/lib/docker/overlay2/93156cea57cb247714305a45bfc5ee34e3cd813683a6f4a705c042b051d11c8c/diff:/var/lib/docker/overlay2/ef8482413b01fb575e78035ad4524411eca349a3ff41ef551afbc09c434b4bba/diff:/var/lib/docker/overlay2/6d1dcd25610652293a00dbd9f0cc065d055bc72de9c26878c57799ba985f8d9b/diff:/var/lib/docker/overlay2/9b10f2ce6166cd553a492088a386b2f80202ca2fc8ab379c63acc90e54d78726/diff",
            "MergedDir": "/var/lib/docker/overlay2/8334639d34df1bcc6c7955bb97759bdf8406a2f8493c9b9c0ba4c7fc4d3ca0b6/merged",
            "UpperDir": "/var/lib/docker/overlay2/8334639d34df1bcc6c7955bb97759bdf8406a2f8493c9b9c0ba4c7fc4d3ca0b6/diff",
            "WorkDir": "/var/lib/docker/overlay2/8334639d34df1bcc6c7955bb97759bdf8406a2f8493c9b9c0ba4c7fc4d3ca0b6/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:a1360aae5271bbbf575b4057cb4158dbdfbcae76698189b55fb1039bc0207400",
            "sha256:8f51a32da2dedb6180408f11479960cbce68d78c4bb35b5fd22ebb9853d64d76",
            "sha256:7311ea293c8a10699787166dbef0356644943b62f8743b0d5b84e14d1f24d60e",
            "sha256:ccfe62e479e2cc818dee9cdd5efae1bb139c16e0b9e3aff855d458ff1917aee7",
            "sha256:d5ec16e0367718c587d1f166d108c0750565faaf9aca6cdca0b61e9824da330c",
            "sha256:bb2b5223a6f4782c40d4494c156993842c46c85b97c1be0692060c63081dc00c",
            "sha256:26f8d8bbcbb33a304883eecec75aa59f3bbaac035fc27df2306ba3f3fa61fe76",
            "sha256:9a73cbbeb4d70d68d25cbc753791ff5a385679fca6bf0a65c3409a0a62dfef37",
            "sha256:30565dedc8abe359fc6bdf1b41b549bd02eaf098ddc8315806c4f5c13fae8116",
            "sha256:99dbf2e8376d0f3dfb191baf8c29d815189f265ac857f5ef1878632013ef65f3",
            "sha256:fd532c7dc4678e8aa62401c1c810f8665862d475adb1ef2600f48d06f542716d"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-11-13T13:58:51.859587967+08:00"
    }
}

更多版本

docker.io/flink:1.10-scala_2.11

linux/amd64 docker.io602.97MB2025-06-05 14:56
508

docker.io/flink:1.14.5

linux/amd64 docker.io633.34MB2025-05-06 21:28
704

docker.io/flink:1.15.3

linux/amd64 docker.io745.22MB2024-10-30 20:00
860

docker.io/flink:1.15.3-scala_2.12-java8

linux/amd64 docker.io714.15MB2024-10-31 00:19
904

docker.io/flink:1.16.1

linux/amd64 docker.io788.53MB2025-05-06 21:05
668

docker.io/flink:1.16.1-scala_2.12-java11

linux/amd64 docker.io788.53MB2025-10-09 09:58
506

docker.io/flink:1.16.2-java11

linux/amd64 docker.io790.88MB2024-10-17 13:40
942

docker.io/flink:1.16.2-scala_2.12-java11

linux/amd64 docker.io790.88MB2024-10-16 20:01
1761

docker.io/flink:1.16.3

linux/amd64 docker.io791.79MB2025-05-06 20:16
624

docker.io/flink:1.16.3-java11

linux/amd64 docker.io791.79MB2024-11-13 16:25
678

docker.io/flink:1.17.0-scala_2.12-java11

linux/arm64 docker.io768.46MB2025-12-23 01:04
858

docker.io/flink:1.17.2

linux/arm64 docker.io754.40MB2024-10-24 17:25
986

docker.io/flink:1.17.2-java8

linux/amd64 docker.io735.80MB2025-05-21 16:54
1002

docker.io/flink:1.17.2-java8

linux/arm64 docker.io724.51MB2025-06-24 10:02
557

docker.io/flink:1.17.2-scala_2.12-java8

linux/amd64 docker.io735.80MB2025-09-01 08:58
705

docker.io/flink:1.17.2-scala_2.12-java8

linux/arm64 docker.io724.51MB2025-06-24 10:03
826

docker.io/flink:1.18.0

linux/amd64 docker.io794.27MB2026-11-13 13:59
17

docker.io/flink:1.18.1-scala_2.12-java11

linux/amd64 docker.io795.98MB2026-09-18 16:02
120

docker.io/flink:1.18.1-scala_2.12-java8

linux/amd64 docker.io763.82MB2025-09-01 08:53
731

docker.io/flink:1.19-java11

linux/amd64 docker.io795.19MB2025-06-12 09:58
708

docker.io/flink:1.19.2

linux/amd64 docker.io795.18MB2025-05-06 21:02
713

docker.io/flink:1.19.2-java8

linux/amd64 docker.io763.02MB2025-05-22 17:18
583

docker.io/flink:1.20-scala_2.12-java8

linux/amd64 docker.io765.87MB2025-01-21 15:56
1118

docker.io/flink:1.20.0-scala_2.12-java8

linux/amd64 docker.io765.87MB2025-01-21 15:29
751

docker.io/flink:1.20.1-scala_2.12-java8

linux/arm64 docker.io753.48MB2025-04-29 14:19
918

docker.io/flink:1.20.2-scala_2.12-java11

linux/amd64 docker.io798.88MB2025-09-19 11:44
651

docker.io/flink:1.20.2-scala_2.12-java11

linux/arm64 docker.io785.40MB2026-03-16 12:30
462

docker.io/flink:1.20.4-scala_2.12-java11

linux/amd64 docker.io798.45MB2026-05-13 16:44
401

docker.io/flink:2.1.0-scala_2.12-java21

linux/amd64 docker.io905.29MB2026-03-26 18:31
441

docker.io/flink:2.1.1-scala_2.12-java21

linux/amd64 docker.io907.84MB2026-03-26 19:11
509

docker.io/flink:2.2.1-scala_2.12-java21

linux/amd64 docker.io906.69MB2026-11-06 15:05
67
检测到您正在使用广告拦截插件,本站为公益站点,依赖广告维持运转 🙏 查看如何关闭 ×