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

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

                            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学习)