美文网首页
HiC学习记录(三)——docker学习

HiC学习记录(三)——docker学习

作者: 夸克光子 | 来源:发表于2019-12-05 11:03 被阅读0次

    1、安装

    可以直接使用“sudo”命令行安装,但是安装之后运行时遇到“Got permission deniedwhiletrying to

    connect to the Docker daemon socket at unix:///var/run/docker.sock: Get

    http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial

    unix/var/run/docker.sock: connect: permission

    denied”问题,大致说是:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix

    socket属于root用户,需要root权限才能访问。

    此时可以通过以下方法解决:

    1、 使用 sudo -s 获取管理员权限,运行docker命令

    2、docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix

    socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix

    socket了,进而也就可以执行docker相关命令;

    sudo groupadd docker    #添加docker用户组

    sudo gpasswd -a$USERdocker    #将登陆用户加入到docker用户组中

    newgrp docker    #更新用户组

    docker ps    #测试docker命令是否可以使用sudo正常使用

    2、常用命令

    1、创造一个镜像:docker run -it

    ubuntu:18.04(无此镜像,docker会自动pull一个);之后进入生成的容器终端,容器内终端进行操作,如安装a:apt-get

    install update;b:apt-get install

    bowtie2;c:安装bowtie2之后会直接运行报错,需要安装pip,所以apt-get install

    python-pip;之后根据需要安装自己的软件

    2、查看所有镜像:docker images;查看正在运行容器:docker

    ps;查看所有容器:docker ps -a;删除镜像:docker rmi image_id;删除容器:docker rm

    container_id ;进入特定某一容器:docker exec -it container_id

    /bin/bash(若不行,可以先:sudo docker start container_id。进入容器运行:docker exec

    -it container_id /bin/bash);本地终端开启运行容器:sudo docker start

    container_id;本地终端关闭运行容器:sudo docker stop 23a86ebbcbc3;强制删除容器:docker rm

    -f container_id

    3、dockerfile,创建镜像(docker当前目录下进入终端):使用docker build -t image_id '.';

    4、将本地文件夹挂载到容器文件夹,可以使用 run中的 -v 选项,,运行docker run -it -v '本地文件绝对路径':/home/data '镜像名' /bin/bash,若镜像中有/home/data文件,则会挂载此目录,若无则会建立此文件夹,可以 cd /home/data 到目录使用 ls 查看文件内容。若想将文件挂载到现有容器,可以使用commit命令将现有容器生成一个新的镜像,再执行前述操作!

    本地文件复制到容器内:docker cp pathtofile containerID:containerPATH(容器长ID可通过:docker inspect '容器名'    获得)

    5、查看容器详细信息(可以看到容器的配置信息和挂载的本地目录、网络配置、状态等):docker inspect container_id;

    6、镜像和容器的导出与导入

    镜像的导出:docker save image_id > '生成的压缩包路径及名称'

    镜像的导入:docker load < 'images_id:即上步生成的压缩包ID'

    容器的导出:docker export container_id > '生成的压缩包路径及名称'

    容器的导入:docker import '生成的压缩包路径及名称';(容器导入之后会生成一个新的镜像,此时可以

    docker images查看新的镜像文件)

    REPOSITORY          TAG                IMAGE ID            CREATED            SIZE

    <none>              <none>              7a002f0eb678        10 minutes ago      435MB

    无标签,无仓库名的为新生成的镜像,运行新的镜像即可

    镜像和容器 导出和导入的区别:

    1.镜像导入 是复制的过程

    2.容器导入 是将当前容器 变成一个新的镜像

    save 和 export区别:

    1)save 保存镜像所有的信息-包含历史

    2)export 只导出当前的信息

    3、安装HiC-Pro

    1、首先将下载好的HiC-Pro文件夹,由本地复制到容器内:docker cp 本地路径 容器长ID:容器路径 。。(容器长ID可通过:docker inspect '容器名'    获得)

    2、打开容器:docker exec -it 5267e5c /bin/bash

    3、根据HiC-Pro的install文件安装其依赖环境包,因为是基础镜像,所以下载软件较多。apt-get直接安装的有bowtie2、samtools等

    4、同时还需要R,安装前先更新:apt-get update

    之后可以安装r-base:apt-get install base,不过此方式安装的R为3.4.4版本

    5、安装install文件中提到的R和python依赖包:

    进入R安装三个依赖包,

    >install.packages("ggplot2")     

    >install.packages("RcolorBrewer")    

    >install.packages("grid")

    python包可以在终端使用 pip 直接进行安装,共5个依赖包(一般自动下载的版本号符合要求)

    pip install bx-python/numpy/scipy/pysam/argparse     

    6、修改配置文件config-install.txt,将其中的bowtie2、samtools、R、python路径修改为容器内其对应路径后保存

    7、cd 到HiC-Pro文件夹下,终端执行命令:

    make CONFIG_SYS=config-install.txt install

    安装成功!之后会提示你安装位置在哪,如:HiC-Pro installed in /usr/local/bin/HiC-Pro_2.11.1

    此时你可在终端输入下方命令来检查是否安装成功!

    /usr/local/bin/HiC-Pro_2.11.1/bin/HiC-Pro -h

    相关文章

      网友评论

          本文标题:HiC学习记录(三)——docker学习

          本文链接:https://www.haomeiwen.com/subject/dqkdgctx.html