。
或者,使用curl。示例:
consolecurl [***]
以下Docker容器通过Docker网络通信。
:thinking: 查找或创建Docker网络。执行以下任一过程。
查找Docker网络。
列出Docker网络。示例:
consolesudo docker network ls
:pencil2: 指定Docker网络。从docker network ls的NAME列中选择值。示例:
consoleexport SENZING_NETWORK=*网络名称*
创建Docker网络。
:pencil2: 指定网络名称。示例:
consoleexport SENZING_NETWORK=sz-api-network
创建Docker网络。示例:
consolesudo docker network create -d bridge ${SENZING_NETWORK}
构造docker run的参数。示例:
consoleexport SENZING_NETWORK_PARAMETER="--net ${SENZING_NETWORK}"
启动senzing-api-server。示例:
consolesudo docker run \ --interactive \ --name=senzing-api-server \ --publish 8080:8080 \ --rm \ --tty \ --volume ${SENZING_DATA_VERSION_DIR}:/opt/senzing/data \ --volume ${SENZING_ETC_DIR}:/etc/opt/senzing \ --volume ${SENZING_G2_DIR}:/opt/senzing/g2 \ --volume ${SENZING_VAR_DIR}:/var/opt/senzing \ ${SENZING_NETWORK_PARAMETER} \ senzing/senzing-api-server \ -concurrency 10 \ -httpPort 8080 \ -bindAddr all \ -iniFile /etc/opt/senzing/G2Module.ini
运行实体搜索Web应用。示例:
consolesudo docker run \ --env SENZING_API_SERVER_URL=[***] \ --env SENZING_WEB_SERVER_PORT=8081 \ --interactive \ --name=senzing-webapp \ --publish 8081:8081 \ --rm \ --tty \ ${SENZING_NETWORK_PARAMETER} \ senzing/entity-search-web-app
验证容器是否正在运行且可访问:
在Web浏览器中打开http://localhost:8081(或用主机名或IP替换localhost)。
或者,使用curl。示例:
consolecurl [***]
senzing-webapp的主要Docker镜像支持通过HTTPS运行其Web服务器。为了以安全方式部署Web应用,必须在swarm配置中使用该镜像,而不是独立服务。有关swarm以及为什么这是必需的更多信息,请参见Docker Swarm Secrets
docker version检查docker客户端运行的API版本。自签名证书足以建立安全的HTTPS连接,用于开发目的。不应在生产环境中使用,但如果只是想测试加密功能,这是一个可行的短期解决方案。需要在系统上安装OpenSSL来生成这些证书。可以进行谷歌搜索或查看这篇文章,生成server.cert和server.key文件后再回到本节。
为方便起见,我们包含了一个专门用于SSL配置的docker compose 文件。如果不熟悉stack的工作方式,建议从此示例开始(出于多种原因,stack部署需要不同的yml文件)。
打开该示例,会在文件底部看到两行:
yamlSZ_WEBAPP_SSL_CERT: file: '../CERTS/server.cert' SZ_WEBAPP_SSL_KEY: file: '../CERTS/server.key'
这些行告诉docker将两个密钥传递给docker compose文件中定义的服务。这两行应指向要使用的server.key和server.cert文件的位置。
senzing-api-server服务的配置可能与你的运行配置不同。应将已正常工作的docker-compose.yml文件中定义的配置选项复制到docker-stack.yml文件中。
senzing-webapp服务定义下的其他重要行是:
yamlsecrets: - source: SZ_WEBAPP_SSL_CERT target: server.cert uid: '1001' gid: '1001' - source: SZ_WEBAPP_SSL_KEY target: server.key uid: '1001' gid: '1001'
它们告诉webapp服务使用文件底部定义的密钥内容。这类似于传入文件,但docker密钥的工作方式比较特殊。
接下来,通过输入sudo SENZING_DATA_VERSION_DIR=${SENZING_DATA_VERSION_DIR} SENZING_ETC_DIR=${SENZING_ETC_DIR} SENZING_G2_DIR=${SENZING_G2_DIR} SENZING_VAR_DIR=${SENZING_VAR_DIR} docker stack deploy -c docker-stack.yml senzing-webapp将yml文件中定义的服务部署到swarm管理器。
通过输入docker stack ps senzing-webapp检查服务是否成功启动。结果应如下所示:
bashID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 7mxc4jru51pl senzing-webapp_senzing-api-server.1 senzing/senzing-api-server:latest americium Running Running about an hour ago rnguy9d2incb senzing-webapp_senzing-webapp.1 senzing/entity-search-web-app:ssl americium Running Running about an hour ago
然后可以使用curl -kvv https://localhost:8081向web服务器发起curl请求。输出应类似于以下内容:
bash* Rebuilt URL to: https://localhost:8081/ * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8081 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS Unknown, Certificate Status (22): * TLSv1.3 (IN), TLS handshake, Unknown (8): * TLSv1.3 (IN), TLS Unknown, Certificate Status (22): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS Unknown, Certificate Status (22): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS Unknown, Certificate Status (22): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Client hello (1): * TLSv1.3 (OUT), TLS Unknown, Certificate Status (22): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 * ALPN, server accepted to use http/1.1 * Server certificate: * subject: C=US; ST=OR; L=SenzingTown; O=Senzing; CN=localhost * start date: Nov 13 00:49:12 2019 GMT * expire date: Nov 12 00:49:12 2020 GMT * issuer: C=US; ST=OR; L=SenzingTown; O=Senzing; CN=localhost * SSL certificate verify result: self signed certificate (18), continuing anyway. * TLSv1.3 (OUT), TLS Unknown, Unknown (23): > GET / HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.58.0 > Accept: */*
在此示例中使用的是自签名证书,但重要的是看到TLSvx.x握手和*Server certificate:*响应块。此时,可以在普通浏览器(Chrome、Firefox、Edge等)中打开服务器实例,例如https://localhost:8081。地址栏中地址旁边应显示证书提供的SSL信息。如果是自签名证书,会看到警告消息,询问是否继续,这是正常的。
可以使用docker stack rm senzing-webapp关闭swarm节点。
有一个管理区域,可用于创建新数据源并将数据导入这些数据源。要访问此功能,API服务器版本必须>=1.7.11,并且必须使用-enableAdmin标志启动,设置为true。
然后可以通过在运行webapp的同一域/主机名上浏览到/admin来访问管理区域。系统会提示输入Api Token,这是用于防止未经授权操作数据的默认安全机制。令牌在服务器启动时随机生成,并输出到启动容器所用的终端的标准输出中。出现提示时,将此令牌复制并粘贴到登录框中。
支持三种安全模式:
/admin/auth/sso/status发起请求,并检查响应是否为200。如果响应不是200,则用户被重定向到SENZING_WEB_SERVER_ADMIN_AUTH_REDIRECT环境变量值定义的登录页面。SSO/代理应配置为当用户未登录时,对/admin/auth/sso/status的请求返回401/403。变量:
SENZING_WEB_SERVER_ADMIN_AUTH_MODE定义管理区域使用的安全模式。可能的值为SSO、JWT、EXTERNAL、NONE。SENZING_WEB_SERVER_ADMIN_AUTH_REDIRECT定义用户未通过身份验证时重定向的路径。在SSO来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速