VScode+Docker学习

参考:Analysis of single cell RNA-seq data
【高清】2020黑马程序员 Docker讲解_哔哩哔哩_bilibili
Using the RStudio image · rocker-org/rocker Wiki · GitHub
Docker 从入门到实践 (docker-practice.com)
docker命令大全
Docker 镜像、容器 常用命令,容器与宿主服务器文件复制
docker docs

docker部署rocker/rstudio

docker run --rm \
           -p 9290:8787 \
           -d \
           --name wangzh \
           -v /home/zhanglab_wangzh:/home \
           -e USER=wangzh \
           -e ROOT=TRUE \
           -e PASSWORD=123456 \
           rocker/rstudio:latest

9290是我自己的端口,8787是rocker/rstudio的端口;命名容器为wangzh;将/home/zhanglab_wangzh的内容复制到容器的/home;登录名为wangzh;
ROOT=TRUE表示从 RStudio 中启用 root,用户在未先进入容器的情况下使用 apt-get 安装二进制库。

Clean up (--rm)

By default a container’s file system persists even after the container exits. This makes debugging a lot easier (since you can inspect the final state) and you retain all your data by default. But if you are running short-term foreground processes, these container file systems can really pile up. If instead you’d like Docker to automatically clean up the container and remove the file system when the container exits, you can add the --rm flag:

--rm=false: Automatically remove the container when it exits

Note

If you set the --rm flag, Docker also removes the anonymous volumes associated with the container when the container is removed. This is similar to running docker rm -v my-container. Only volumes that are specified without a name are removed. For example, when running:

docker run --rm -v /foo -v awesome:/bar busybox top

the volume for /foo will be removed, but the volume for /bar will not. Volumes inherited via --volumes-from will be removed with the same logic: if the original volume was specified with a name it will not be removed.

进入容器

docker exec -it wangzh /bin/bash

文件传输(不推荐!!!!不到万不得已不要用啊!!!)

将之前的服务器上的数据拷贝到rocker/rstudio镜像上:

docker cp 本地文件路径 ID全称:容器路径(这东西会导致用户改变!!!简直是个大坑!!!直接将我的用户组从zhanglab_wangzh改为了dell)

docker cp /home/zhanglab_wangzh 109984638e04:/home/wangzh/

同理,如果是容器传输文件到本地的话,反过来就好了:

docker cp ID全称:容器文件路径 本地路径

安装 R 系统外部依赖
许多 R 包有外部依赖,如 GSL, GDAL, JAGS,为了安装它们,你需要进行如下的操作:
具体的参考:https://jsta.github.io/r-docker-tutorial/03-install-packages.html

docker ps # find the ID of the running container you want to add a package to
docker exec -it  bash # a docker command to start a bash shell in your container
apt-get install libgsl0-dev # install the package, in this case GSL

如果安装报错,先试试 apt-get update

Dockerfile安装R包

Update to R 4.1.0 · davetang/learning_docker@425cff3 · GitHub

到容器的指定地址:

https://www.youtube.com/watch?v=lfG8cTqRRNA
https://github.com/SymbolixAU/r_docker_hello
https://github.com/SymbolixAU/useR_docker_tutorial

你可能感兴趣的:(VScode+Docker学习)