docker基本命令

从宿主机到docker之间复制文件:

“`

docker cp ./sources.list 2f46782c6b8d:/etc/apt

“`

显示docker container的id号:

docker ps

包含已停止容器:docker ps -a

只列出容器号:docker ps -q

进入某个docker 容器:docker run -it ubuntu /bin/bash;docker exec -it 69d1 /bin/bash

普通用户身份登入docker:docker exec -it rstudio_new su - WRJ

关闭与删除:

docker stop 【容器ID】

docker rm 【容器ID】

运行docker:docker run --name singlecell_analysis --net=host -itd ubuntu

这里的--net要加上,不然可能运行失败。

rstudio-server的安装:官网提供了docker的安装镜像,直接pull就行,完整命令:

docker run --name rstudio_new -d \

  -p 8790:8787 \

  -e USER=wrj_rstudio \

  -e PASSWORD={password} \

  -e USERID=1000 \

  -e GROUPID=1000 \

  -e ADD=shiny \

  -v /data:/mnt/ \

  rocker/rstudio

这里注意最好不要把系统文件直接挂载到home目录下,容易报错

新的docker,rstudio配置

首先登入:docker exec -it rstudio_new /bin/bash

之后更新:apt-get updata

apt-get upgrade

之后安装一些系统包:

apt-get install -y vim

1. igraph:安装时没有报错,load的时候报错,libglpk.so.40: cannot open shared object file: No such file or directory

解决方法:

apt-get install -y glpk-utils libglpk-dev glpk-doc

2. sf:类似问题,报错:libudunits2.so.0: cannot open shared object file: No such file or directory

apt-get install -y libudunits2-dev

apt-get install -y libproj-dev

apt-get install -y libgdal-dev

apt-get install -y libx11-dev

apt-get install -y libmagick++-dev

其他安装包:

sudo apt-get install gcc g++ liblapack-dev libblas-dev gfortran zlib1g-dev libpng-dev libxml2-dev libgsl-dev gdal-bin libgdal-dev libcairo2-dev libbz2-dev libnode-dev cmake libudunits2-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev libharfbuzz-dev libfribidi-dev libfontconfig1-dev 

之后手动安装github上的包需要预先安装的一些R包

install.packages(c("Seurat","BiocManager","qs","assertthat", "ggrastr", "grr", "lme4", "pbmcapply", "pscl", "rsample", "RhpcBLASctl", "RcppHNSW", "spdep", "speedglm", "terra","MCMCpack", "fields", "wrMisc", "concaveman", "scatterpie", "ggcorrplot", "nnls", "RcppML", "NMF","zeallot", "imager", "raster", "magick", "shinyjs","proj4", "ash", "extrafont","ggfittext","ggpubr","intrinsicDimension", "parallelDist", "proxyC", "R.cache", "R.utils"))

BiocManager::install(c("Biobase","monocle","SingleCellExperiment","batchelor","BiocParallel","DelayedArray","DelayedMatrixStats","HDF5Array","S4Vectors","SummarizedExperiment","TOAST","ComplexHeatmap","EnhancedVolcano","AnnotationDbi","clusterProfiler"))

#NMF需要等Biobase安装后才可以安装

#Signac需要Rsamtools装完后才可以安装

安装包安装:

setwd("/mnt/R_package")

install.packages(c("monocle3-master","STUtility-master","CARD-master","ggdensity-main","ggalt-master")),type="source",repos=NULL)

install.packages(c("DoubletFinder-master","seurat-disk-master","ggunchull-main","ggdendro-main","CellChat-master","ggpointdensity-master","ggdensity-main","SCP-main","DoubletFinder-master"),type="source",repos=NULL)

docker里面新建用户

比较麻烦,需要自动操作,举例:(用户组和用户编号根据需求指定)

首先新建用户组:groupadd -g 1006 {groupname}

之后新建用户:useradd -u 1005 -g 1006 WRJ

(用useradd -m -u 1007 -g 1006 wrj_new的方法,就不存在后续的家目录以及显示问题了)

修改密码:passwd WRJ

建立主目录并增加bash权限:

mkdir /home/WRJ

chown WRJ:{groupname} /home/WRJ

usermod -s /bin/bash WRJ

结果发现新建的用户家目录里没有bashrc,无法显示文件分类颜色,直接从另外一个用户地下copy了一个过来,并更改所属用户:

chown username:groupname .bashrc

建议以后还是用adduser功能,可以自动化创建这一系列文件。

普通用户身份登录docker:docker exec -it -u user_name container_name /bin/bash

你可能感兴趣的:(docker基本命令)