轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
filebot

kingmorris/filebot

kingmorris

下载次数: 0状态:社区镜像维护者:kingmorris仓库类型:镜像最近更新:5 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

镜像简介
下载命令
镜像标签列表与下载命令
轩辕镜像,快一点,稳很多。
点击查看

Docker container for FileBot

https://img.shields.io/microbadger/image-size/jlesage/filebot](http://microbadger.com/#/images/jlesage/filebot) ![Build Status]([] https://img.shields.io/github/release/jlesage/docker-filebot.svg](https://github.com/jlesage/docker-filebot/releases/latest) https://img.shields.io/badge/Donate-***-green.svg]([]

This is a Docker container for FileBot with version 4.7.9 (latest free version).

The GUI of the application is accessed through a modern web browser (no installation or configuration needed on the client side) or via any VNC client.


![FileBot logo]([][FileBot]([]

FileBot is the ultimate tool for organizing and renaming your movies, tv shows or anime, and music well as downloading subtitles and artwork. It's smart and just works.


Table of Content

  • Docker container for FileBot
    • Table of Content
    • Quick Start
    • Usage
      • Environment Variables
      • Data Volumes
      • Ports
      • Changing Parameters of a Running Container
    • Docker Compose File
    • Docker Image Update
      • Synology
      • unRAID
    • User/Group IDs
    • Accessing the GUI
    • Security
      • SSVNC
      • Certificates
      • VNC Password
    • Reverse Proxy
      • Routing Based on Hostname
      • Routing Based on URL Path
    • Shell Access
    • Automated Media Center (AMC)
    • Support or Contact

Quick Start

NOTE: The Docker command provided in this quick start is given as an example and parameters should be adjusted to your need.

Launch the FileBot docker container with the following command:

docker run -d \
    --name=filebot \
    -p 5800:5800 \
    -v /docker/appdata/filebot:/config:rw \
    -v $HOME:/storage:rw \
    NeverminedDE/filebot

Where:

  • /docker/appdata/filebot: This is where the application stores its configuration, log and any files needing persistency.
  • $HOME: This location contains files from your host that need to be accessible by the application.

Browse to http://your-host-ip:5800 to access the FileBot GUI. Files from the host appear under the /storage folder in the container.

Usage

docker run [-d] \
    --name=filebot \
    [-e <VARIABLE_NAME>=<VALUE>]... \
    [-v <HOST_DIR>:<CONTAINER_DIR>[:PERMISSIONS]]... \
    [-p <HOST_PORT>:<CONTAINER_PORT>]... \
    NeverminedDE/filebot
ParameterDescription
-dRun the container in the background. If not set, the container runs in the foreground.
-ePass an environment variable to the container. See the Environment Variables section for more details.
-vSet a volume mapping (allows to share a folder/file between the host and the container). See the Data Volumes section for more details.
-pSet a network port mapping (exposes an internal container port to the host). See the Ports section for more details.

Environment Variables

To customize some properties of the container, the following environment variables can be passed via the -e parameter (one for each variable). Value of this parameter has the format <VARIABLE_NAME>=<VALUE>.

VariableDescriptionDefault
USER_IDID of the user the application runs as. See User/Group IDs to better understand when this should be set.1000
GROUP_IDID of the group the application runs as. See User/Group IDs to better understand when this should be set.1000
SUP_GROUP_IDSComma-separated list of supplementary group IDs of the application.(unset)
UMASKMask that controls how file permissions are set for newly created files. The value of the mask is in octal notation. By default, this variable is not set and the default umask of 022 is used, meaning that newly created files are readable by everyone, but only writable by the owner. See the following online umask calculator: [***](unset)
TZTimeZone of the container. Timezone can also be set by mapping /etc/localtime between the host and the container.Etc/UTC
KEEP_APP_RUNNINGWhen set to 1, the application will be automatically restarted if it crashes or if a user quits it.0
APP_NICENESSPriority at which the application should run. A niceness value of -20 is the highest priority and 19 is the lowest priority. By default, niceness is not set, meaning that the default niceness of 0 is used. NOTE: A negative niceness (priority increase) requires additional permissions. In this case, the container should be run with the docker option --cap-add=SYS_NICE.(unset)
CLEAN_TMP_DIRWhen set to 1, all files in the /tmp directory are deleted during the container startup.1
DISPLAY_WIDTHWidth (in pixels) of the application's window.1280
DISPLAY_HEIGHTHeight (in pixels) of the application's window.768
SECURE_CONNECTIONWhen set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details.0
VNC_PASSWORDPassword needed to connect to the application's GUI. See the VNC Password section for more details.(unset)
X11VNC_EXTRA_OPTSExtra options to pass to the x11vnc server running in the Docker container. WARNING: For advanced users. Do not use unless you know what you are doing.(unset)
ENABLE_CJK_FONTWhen set to 1, open-source computer font WenQuanYi Zen Hei is installed. This font contains a large range of Chinese/Japanese/Korean characters.0
OPENSUBTITLES_USERNAMEUsername of your OpenSubtitles account. Required to download subtitles.(unset)
OPENSUBTITLES_PASSWORDPassword of your OpenSubtitles account. Required to download subtitles.(unset)
FILEBOT_CUSTOM_OPTIONSCustom arguments to pass to FileBot. This apply to the UI only.(unset)
AMC_INTERVALTime (in seconds) between each invocation of the Automated Media Center (AMC) script.1800
AMC_INPUT_STABLE_TIMETime (in seconds) during which properties (e.g. size, time, etc) of files in the watch folder need to remain the same before invoking the Automated Media Center (AMC) script. This is to avoid processing the watch folder while files are being copied.10
AMC_ACTIONAction performed by the Automated Media Center (AMC) script on files. Valid values are test, copy, move, symlink, hardlink, keeplink, duplicate or clone. Use the test operation to perform a dry-run and verify that everything gets matched up correctly.test
AMC_CONFLICTConflict resolution strategy used by the Automated Media Center (AMC) script: skip never overrides existing files, while auto overrides existing file only if new media is better.auto
AMC_MATCH_MODEMatch mode used by the Automated Media Center (AMC) script: opportunistic mode works for all files regardless how badly they are named, while strict mode works for reasonably well-named files and ignore files that cannot be matched accurately. See Match Mode for complete documentation.opportunistic
AMC_ARTWORKWhen set to y, artwork is fetched and NFO file is generated by the Automated Media Center (AMC) script.n
AMC_MUSIC_FORMATDefine how music files are renamed by the Automated Media Center (AMC) script. Filebot supports a very powerful naming scheme. See Format Expressions for complete documentation.{plex}
AMC_MOVIE_FORMATDefine how movie files are renamed by the Automated Media Center (AMC) script. Filebot supports a very powerful naming scheme. See Format Expressions for complete documentation.{plex}
AMC_SERIES_FORMATDefine how TV series files are renamed by the Automated Media Center (AMC) script. Filebot supports a very powerful naming scheme. See Format Expressions for complete documentation.{plex}
AMC_ANIME_FORMATDefine how anime files are renamed by the Automated Media Center (AMC) script. Filebot supports a very powerful naming scheme. See Format Expressions for complete documentation.{plex}
AMC_PROCESS_MUSICWhen set to y, music files are processed by the Automated Media Center (AMC) script. A value of n does not process them.y
AMC_SUBTITLE_LANGComma-separated list of subtitle languages to download. Example: en,de,fr.(unset)
AMC_CUSTOM_OPTIONSCustom arguments to pass to the Automated Media Center (AMC) script.(unset)
AMC_INPUT_DIRDirectory inside the container used as the input folder of the Automated Media Center (AMC) script./watch
AMC_OUTPUT_DIRDirectory inside the container used as the output folder of the Automated Media Center (AMC) script./output
AMC_INSTALL_PKGSSpace-separated list of Alpine Linux packages to install. This is useful when the Automated Media Center (AMC) script is configured to invoke a user-defined script that requires tools not available in the container image. See https://pkgs.alpinelinux.org/packages?name=&branch=v3.9&arch=x86_64 for the list of available Alpine Linux packages.(unset)

Data Volumes

The following table describes data volumes used by the container. The mappings are set via the -v parameter. Each mapping is specified with the following format: <HOST_DIR>:<CONTAINER_DIR>[:PERMISSIONS].

Container pathPermissionsDescription
/configrwThis is where the application stores its configuration, log and any files needing persistency.
/storagerwThis location contains files from your host that need to be accessible by the application.
/watchrwThis is the input folder of the Automated Media Center (AMC) script. Any media copied to this folder will be processed by the script. Note that there is no need to map this folder if the script is not used.
/outputrwThis is the output folder of the Automated Media Center (AMC) script. This is where medias are located once they are renamed and organized. Note that there is no need to map this folder if the script is not used.

Ports

Here is the list of ports used by the container. They can be mapped to the host via the -p parameter (one per port mapping). Each mapping is defined in the following format: <HOST_PORT>:<CONTAINER_PORT>. The port number inside the container cannot be changed, but you are free to use any port on the host side.

PortMapping to hostDescription
5800MandatoryPort used to access the application's GUI via the web interface.
5900OptionalPort used to access the application's GUI via the VNC protocol. Optional if no VNC client is used.

Changing Parameters of a Running Container

As seen, environment variables, volume mappings and port mappings are specified while creating the container.

The following steps describe the method used to add, remove or update parameter(s) of an existing container. The generic idea is to destroy and re-create the container:

  1. Stop the container (if it is running):
docker stop filebot
  1. Remove the container:
docker rm filebot
  1. Create/start the container using the docker run command, by adjusting parameters as needed.

NOTE: Since all application's data is saved under the /config container folder, destroying and re-creating a container is not a problem: nothing is lost and the application comes back with the same state (as long as the mapping of the /config folder remains the same).

Docker Compose File

Here is an example of a docker-compose.yml file that can be used with https://docs.docker.com/compose/overview/.

Make sure to adjust according to your needs. Note that only mandatory network ports are part of the example.

yaml
version: '3'
services:
  filebot:
    image: NeverminedDE/filebot
    build: .
    ports:
      - "5800:5800"
    volumes:
      - "/docker/appdata/filebot:/config:rw"
      - "$HOME:/storage:rw"

Docker Image Update

If the system on which the container runs doesn't provide a way to easily update the Docker image, the following steps can be followed:

  1. Fetch the latest image:
docker pull NeverminedDE/filebot
  1. Stop the container:
docker stop filebot
  1. Remove the container:
docker rm filebot
  1. Start the container using the docker run command.

Synology

For owners of a Synology NAS, the following steps can be used to update a container image.

  1. Open the Docker application.
  2. Click on Registry in the left pane.
  3. In the search bar, type the name of the container (NeverminedDE/filebot).
  4. Select the image, click Download and then choose the latest tag.
  5. Wait for the download to complete. A notification will appear once done.
  6. Click on Container in the left pane.
  7. Select your FileBot container.
  8. Stop it by clicking Action->Stop.
  9. Clear the container by clicking Action->Clear. This removes the container while keeping its configuration.
  10. Start the container again by clicking Action->Start. NOTE: The container may temporarily disappear from the list while it is re-created.

unRAID

For unRAID, a container image can be updated by following these steps:

  1. Select the Docker tab.
  2. Click the Check for Updates button at the bottom of the page.
  3. Click the update ready link of the container to be updated.

User/Group IDs

When using data volumes (-v flags), permissions issues can occur between the host and the container. For example, the user within the container may not exists on the host. This could prevent the host from properly accessing files and folders on the shared volume.

To avoid any problem, you can specify the user the application should run as.

This is done by passing the user ID and group ID to the container via the USER_ID and GROUP_ID environment variables.

To find the right IDs to use, issue the following command on the host, with the user owning the data volume on the host:

id <username>

Which gives an output like this one:

uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),46(plugdev),113(lpadmin)

The value of uid (user ID) and gid (group ID) are the ones that you should be given the container.

Accessing the GUI

Assuming that container's ports are mapped to the same host's ports, the graphical interface of the application can be accessed via:

  • A web browser:
http://<HOST IP ADDR>:5800
  • Any VNC client:
<HOST IP ADDR>:5900

Security

By default, access to the application's GUI is done over an unencrypted connection (HTTP or VNC).

Secure connection can be enabled via the SECURE_CONNECTION environment variable. See the Environment Variables section for more details on how to set an environment variable.

When enabled, application's GUI is performed over an HTTPs connection when accessed with a browser. All HTTP accesses are automatically redirected to HTTPs.

When using a VNC client, the VNC connection is performed over SSL. Note that few VNC clients support this method. SSVNC is one of them.

SSVNC

SSVNC is a VNC viewer that adds encryption security to VNC connections.

While the Linux version of SSVNC works well, the Windows version has some issues. At the time of writing, the latest version 1.0.30 is not functional, as a connection fails with the following error:

ReadExact: Socket error while reading

However, for your convenience, an unofficial and working version is provided here:

https://github.com/jlesage/docker-baseimage-gui/raw/master/tools/ssvnc_windows_only-1.0.30-r1.zip

The only difference with the official package is that the bundled version of stunnel has been upgraded to version 5.49, which fixes the connection problems.

Certificates

Here are the certificate files needed by the container. By default, when they are missing, self-signed certificates are generated and used. All files have PEM encoded, x509 certificates.

Container PathPurposeContent
/config/certs/vnc-server.pemVNC connection encryption.VNC server's private key and certificate, bundled with any root and intermediate certificates.
/config/certs/web-privkey.pemHTTPs connection encryption.Web server's private key.
/config/certs/web-fullchain.pemHTTPs connection encryption.Web server's certificate, bundled with any root and intermediate certificates.

NOTE: To prevent any certificate validity warnings/errors from the browser or VNC client, make sure to supply your own valid certificates.

NOTE: Certificate files are monitored and relevant daemons are automatically restarted when changes are detected.

VNC Password

To restrict access to your application, a password can be specified. This can be done via two methods:

  • By using the VNC_PASSWORD environment variable.
  • By creating a .vncpass_clear file at the root of the /config volume. This file should contain the password in clear-text. During the container startup, content of the file is obfuscated and moved to .vncpass.

The level of security provided by the VNC password depends on two things:

  • The type of communication channel (encrypted/unencrypted).
  • How secure the access to the host is.

When using a VNC password, it is highly desirable to enable the secure connection to prevent sending the password in clear over an unencrypted channel.

ATTENTION: Password is limited to 8 characters. This limitation comes from the Remote Framebuffer Protocol https://tools.ietf.org/html/rfc6143 (see section https://tools.ietf.org/html/rfc6143#section-7.2.2). Any characters beyond the limit are ignored.

Reverse Proxy

The following sections contain NGINX configurations that need to be added in order to reverse proxy to this container.

A reverse proxy server can route HTTP requests based on the hostname or the URL path.

Routing Based on Hostname

In this scenario, each hostname is routed to a different application/container.

For example, let's say the reverse proxy server is running on the same machine as this container. The server would proxy all HTTP requests sent to filebot.domain.tld to the container at 127.0.0.1:5800.

Here are the relevant configuration elements that would be added to the NGINX configuration:

map $http_upgrade $connection_upgrade {
	default upgrade;
	''      close;
}

upstream docker-filebot {
	# If the reverse proxy server is not running on the same machine as the
	# Docker container, use the IP of the Docker host here.
	# Make sure to adjust the port according to how port 5800 of the
	# container has been mapped on the host.
	server 127.0.0.1:5800;
}

server {
	[...]

	server_name filebot.domain.tld;

	location / {
	        proxy_pass http://docker-filebot;
	}

	location /websockify {
		proxy_pass http://docker-filebot;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection $connection_upgrade;
		proxy_read_timeout 86400;
	}
}

Routing Based on URL Path

In this scenario, the hostname is the same, but different URL paths are used to route to different applications/containers.

For example, let's say the reverse proxy server is running on the same machine as this container. The server would proxy all HTTP requests for server.domain.tld/filebot to the container at 127.0.0.1:5800.

Here are the relevant configuration elements that would be added to the NGINX configuration:

map $http_upgrade $connection_upgrade {
	default upgrade;
	''      close;
}

upstream docker-filebot {
	# If the reverse proxy server is not running on the same machine as the
	# Docker container, use the IP of the Docker host here.
	# Make sure to adjust the port according to how port 5800 of the
	# container has been mapped on the host.
	server 127.0.0.1:5800;
}

server {
	[...]

	location = /filebot {return 301 $scheme://$http_host/filebot/;}
	location /filebot/ {
		proxy_pass http://docker-filebot/;
		location /filebot/websockify {
			proxy_pass http://docker-filebot/websockify/;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection $connection_upgrade;
			proxy_read_timeout 86400;
		}
	}
}

Shell Access

To get shell access to a the running container, execute the following command:

docker exec -ti CONTAINER sh

Where CONTAINER is the ID or the name of the container used during its creation (e.g. crashplan-pro).

Automated Media Center (AMC)

This container supports the FileBot's Automated Media Center (AMC) script. This script automatically and smartly organizes movies, TV shows, anime and music.

Basically, files copied to the /watch container folder are automatically renamed and organized to the /output container folder.

Configuration of the AMC script is done via AMC_* environment variables. See the Environment Variables section for the list and descriptions of environment variables that can be set.

To see what the AMC script is doing, look at the container's log.

NOTE: By default, the script runs in dry mode, meaning that no change is performed. This allows you to verify that results produced by the script are correct. Then, the AMC_ACTION environment variable can be updated to perform changes to the file system.

NOTE: For the script to properly function, container folders /watch and /output must be properly mapped to the host. See the Data Volumes section.

Support or Contact

Having troubles with the container or have questions? Please https://github.com/NeverminedDE/docker-filebot/issues.

For other great Dockerized applications, see https://jlesage.github.io/docker-apps.

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 filebot 镜像标签

docker pull docker.xuanyuan.run/kingmorris/filebot:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull kingmorris/filebot:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
kingmorris/filebot
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱

更多 filebot 镜像推荐

jlesage/filebot logo

jlesage/filebot

jlesage
FileBot的Docker容器,提供通过现代浏览器访问的图形界面,用于组织和重命名电影、电视剧、动漫及音乐,下载字幕和媒体资源,无需客户端安装配置。
63 次收藏1000万+ 次下载
3 个月前更新
rednoah/filebot logo

rednoah/filebot

rednoah
FileBot docker images for filebot and filebot-node.
80 次收藏500万+ 次下载
27 天前更新
coppit/filebot logo

coppit/filebot

coppit
这是一个运行FileBot媒体文件整理工具的Docker容器,支持UI交互(RDP/网页)和自动监控文件夹模式,可帮助用户重命名、分类媒体文件,提升管理效率。
29 次收藏500万+ 次下载
8 年前更新
ghostserverd/filebot logo

ghostserverd/filebot

ghostserverd
filebot with web interface for docker communication
100万+ 次下载
19 天前更新
arranhs/filebot logo

arranhs/filebot

arranhs
这是基于Guacamole的FileBot Docker容器,支持浏览器/VNC访问GUI,核心功能为整理重命名影视音乐文件、下载字幕,使用最后一个免费版本4.7.9,性能更优且无需客户端配置。
3 次收藏50万+ 次下载
6 年前更新
bytesized/filebot logo

bytesized/filebot

bytesized
这是Bytesized Connect的Filebot镜像,用于媒体文件的批量重命名、元数据匹配与规范化整理,帮助用户高效管理影视资源,适配主流媒体服务器需求。
1 次收藏5万+ 次下载
9 年前更新

查看更多 filebot 相关镜像