当前位置: 首页 > news >正文

ubuntu(18.04)中安装open babel docker镜像并在php项目中调用容器中的obabel命令解析结果使用

使用软件:

obabel镜像:informaticsmatters/obabel

docker:http:// https://www.docker.com/

安装docker

#卸载旧版本sudo apt-get remove docker docker-engine docker-ce docker.io#更新索引包sudo apt-get update#安装 apt 依赖包,用于通过HTTPS来获取仓库sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common#添加Docker官方的GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -#设置stable存储库sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"#更新一下apt包索引sudo apt-get update#安装最新版本的Docker CEsudo apt-get install -y docker-ce#验证-查看docker运行状态systemctl status docker#验证 - 查看docker版本docker -v#如果安装指定版本可使用如下命令
#列出各个可用版本
apt-cache madison docker-ce
#安装指定版本
sudo apt-get install docker-ce=<VERSION>

拉取obabel镜像

sudo docker pull informaticsmatters/obabel

运行obabel镜像启动镜像

sudo docker run -itd  --name obabelimage  informaticsmatters/obabel    /bin/bash

--name obabelimage 将启动后容器命名为obabelimage方便后续操作

复制文件到容器中

sudo docker cp XXX.sdf obabelimage:/home/obabel

从宿主机查看容器内的复制结果

sudo docker exec  obabelimage  ls  /home/obabel

构建 fastsearch.fs

sudo docker exec  obabelimage  obabel  /home/obabel/XXX.sdf -ofs -O  fastsearch.fs

宿主机运行容器内部命令操作obabel

sudo docker exec  obabelimage  obabel  后续写obabel的命令

通过分子式和相似度搜索相关的信息并直接答应结果

输入:

分子式:CC1(C(N2C(S1)

相似度:>0.6

sudo docker exec  obabelimage  obabel /home/obabel/fastsearch.fs -ofpt -s "CC1(C(N2C(S1)" -at0.6 --append VDB_ID | awk '/^>/ {for (i=1; i<=NF; i++) if ($i ~ /VDB[0-9]+/) {id = $i; break} if($0 ~ /=/) {sim = $NF} else {sim = "1"}; print id, sim}'

解决php中调用docker提示没有权限问题

将php的执行用户加入到docker的用户组中去

#创建docker用户组sudo groupadd docker#添加www-data到docker用户组中 这里web服务使用的nginx 其他的看情况sudo usermod -aG docker www-data

php中调用docker容器中的命令获得结果

$output = shell_exec("docker exec  obabelimage  ls  /home/obabel");
echo $output;

这里使用中是将结果打印在命令中方便程序调用直接读取进行后续使用,如果想方便的将结果存入文件查看,在启动容器的时候使用docker数据卷

sudo docker run -itd  --name obabelimage -v /dockerData/obabel:/home/obabel  informaticsmatters/obabel    /bin/bash

在宿主机上创建一个文件夹与容器内的文件夹关联就可以了,容器内的操作结果都存入数据卷文件夹中。从而在宿主机上就可以看到结果文件了。

相关文章:

ubuntu(18.04)中安装open babel docker镜像并在php项目中调用容器中的obabel命令解析结果使用

使用软件&#xff1a; obabel镜像&#xff1a;informaticsmatters/obabel docker&#xff1a;http:// https://www.docker.com/ 安装docker #卸载旧版本sudo apt-get remove docker docker-engine docker-ce docker.io#更新索引包sudo apt-get update#安装 apt 依赖包&…...

02-PostgreSQL的基本使用

一、数据库操作 ①: 登录到数据库 psql -U postgres -d postgres -h 127.0.0.1②:查看所有数据库 \l③: 创建数据库 # 创建一个名为 mydb 的数据库 create database mydb;④:切换数据库 # \c 数据库名 \c mydb⑤:删除数据库 # 删除前 先确保数据库没有被连接 drop databa…...

uniapp 实现路线规划

UniApp是一个跨平台的应用开发框架&#xff0c;可以帮助开发者快速地在多个平台上构建应用程序。其中&#xff0c;实现路线规划是一个常见的需求&#xff0c;特别是对于地图类应用或者出行类应用来说&#xff0c;路线规划功能是非常重要的。 首先引入QQMapWX&#xff1b; impo…...

C语言C位出道心法(五):内存管理

C语言C位出道心法(一):基础语法 C语言C位出道心法(二):结构体|结构体指针|链表 C语言C位出道心法(三):共用体|枚举 C语言C位出道心法(四):文件操作 C语言C位出道心法(五):内存管理 一:C语言内存管理认知 二:C语言中内存堆|栈认知 三:C语言中引用内存丢失认知...

Flink之SQL客户端与DDL操作

SQL客户端与DDL操作 Flink SQLSQL客户端1.启动Flink2.启动Flink的SQL客户端3.HELP命令4.验证连接5.结果显示模式6.执行配置 数据库操作1.创建数据库2.查询数据库3.修改数据库4.删除数据库 表操作1.创建表表列属性表Watermark属性列PRIMARY KEY属性列PARTITIONED BY属性列WITH选…...

记录第一次银行测试岗面试【总结几点面试不要犯得错误】

LZ在一个18线小城市做测试&#xff0c;近来想走出自己的舒适区&#xff0c;去做一点不一样的测试工作。 18线地区&#xff0c;测试工作并不多。最好的差不多就是LZ目前待着的公司了。遂决定去魔都闯荡几年&#xff0c;对一个在魔都无房无车无户口的人来讲&#xff0c;这意味着…...

一篇带你精通php

华子目录 什么是phpphp发展史平台支持和数据库支持网站静态网站和动态网站的区别静态网站动态网站的特点 关键名词解析服务器概念IP的概念域名DNS端口 web程序的访问流程静态网站访问流程动态网站访问流程 php标记脚本标记标准标记&#xff08;常用&#xff09; php注释 什么是…...

Go 语言函数

文章目录 Go 语言函数1. **函数的定义**&#xff1a;2. **参数和返回值**&#xff1a;3. **函数调用**&#xff1a;4. **多返回值**&#xff1a;5. **匿名函数**&#xff1a;6. **函数作为值**&#xff1a;7. **变参函数**&#xff1a;8. **递归函数**&#xff1a;9. **函数方法…...

前端小技巧: 拍平数组的6种常见方法

关于数组拍平 所谓数组拍平&#xff0c;就是按照顺序&#xff0c;把他们全放在一个数组中需要考虑多层级和嵌套的问题来彻底拍平数组 * 实现方案 1 &#xff09;一般思路, 先实现一级扁平化&#xff0c;然后递归&#xff0c;直到全部扁平 function flat(arr) {const res […...

c++day6

#include <iostream>using namespace std; class Animal { public:virtual void peform() 0; }; class Monekey:public Animal { public:void peform(){cout << "猴子黑桃A" << endl;} }; class Elepthant:public Animal {void peform(){cout &l…...

LeetCode(1)合并两个有序数组【数组/字符串】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 88. 合并两个有序数组 1.题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合…...

剪贴板管理软件 Paste Wizard mac中文版功能特色

Paste Wizard mac是一款剪贴板管理工具&#xff0c;它可以帮助用户更高效地管理剪贴板中的文本、图片、链接等内容。 Paste Wizard mac特色功能 提供了多种方式来保存和管理剪贴板中的内容。用户可以创建自定义的标签&#xff0c;将内容按照标签进行分类&#xff0c;方便快速查…...

【数据结构】树的基本性质(计算树的总结点数与叶结点数)

树的基本性质 ⭐️计算树的总结点与叶结点数&#x1f4ab;性质1&#x1f4ab;性质2&#x1f4ab;例题1&#x1f4ab;例题2 ⭐️计算树的总结点与叶结点数 &#x1f4ab;性质1 性质1 树中的结点数等于所有结点的度数之和加1 例如上面这棵树&#xff0c;A的孩子为B、C、D&…...

android手机平板拓展电脑屏幕

有这么两个软件 spacedesk_driver_Win_10_64_v1065_BETA.msi 安装在电脑上 spacedeskv0.91.1_chinese.apk 安装在android设备上 同一个局域网投屏就好了。 局域网无限投屏是很吃带宽的。 建议usb共享网络&#xff0c;不占用带宽、延迟低。 下载地址&#xff1a; https:/…...

接口测试的流程

接口通俗的理解就是不同部分之间的连接通道&#xff0c;可以是程序之内的&#xff0c;也可以是不同程序之间的。一般公司都会要求做接口测试&#xff0c;因为这是测试前移和测试左移的一种方式&#xff0c;会极大的解决bug的成本。 接口测试流程 接口测试的流程一般包括&…...

HMAC 详解:在 Golang 中实现消息认证码

目录 什么是 HMAC HMAC 的主要用途 HMAC 的工作原理 Golang 中的 crypto/hmac 包 如何选择合适的哈希函数和密钥长度 小结 什么是 HMAC HMAC&#xff08;Hash-based Message Authentication Code&#xff09;是一种基于 Hash 函数和密钥的消息认证码&#xff0c;由 H.Kr…...

阻塞队列和定时器的使用

阻塞队列 谈到队列,大家就能想到队列的先进先出原则,但有些特殊的队列,虽然也是先进先出的,但是带有阻塞功能,我们把这种队列叫做阻塞队列. ★如果队列为空,执行出队操作就会阻塞,阻塞到另外一个线程往队列里添加元素(队列不为空)为止. ★如果队列满了,执行入队操作时,也会阻…...

JavaScript脚本操作CSS

脚本化CSS就是使用JavaScript脚本操作CSS&#xff0c;配合HTML5、Ajax、jQuery等技术&#xff0c;可以设计出细腻、逼真的页面特效和交互行为&#xff0c;提升用户体验&#xff0c;如网页对象的显示/隐藏、定位、变形、运动等动态样式。 1、CSS脚本化基础 CSS样式有两种形式&…...

Rust4.1 Managing Growing Projects with Packages, Crates, and Modules

Rust学习笔记 Rust编程语言入门教程课程笔记 参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community) Lecture 7: Managing Growing Projects with Packages, Crates, and Modules src/main.rs // s…...

RPA在财务预测和分析中的应用

在现代企业管理中&#xff0c;财务数据分析是决策制定和战略规划的关键环节。大数据的兴起带来财务数据的复杂性和数量不断增加&#xff0c;企业为此消耗了大量人力和物力。随着当今数字化、智能化时代的到来&#xff0c;越来越多企业引进RPA技术来提高工作效率&#xff0c;实现…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...