使用软件:
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 CE
sudo 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
在宿主机上创建一个文件夹与容器内的文件夹关联就可以了,容器内的操作结果都存入数据卷文件夹中。从而在宿主机上就可以看到结果文件了。