下載一個docker conda 筐骇, 也可以從ubuntu 進行
進入鏡像
docker run -it --name "ubuntu_nong" -v /home/nbt2/docker/docker_dat:/docker_dat --privileged nong/ubuntu_conda_r /bin/bash
conda create -n lncRNA --clone /home/nong/miniconda3/envs/lncRNA/
docker 真的很棒香拉!
之前介紹過用docker安裝RNAcocktail了
docker source
參考:http://blog.csdn.net/samxx8/article/details/38946737
docker 是费什。回梧。县袱。
要安裝和配置docker前提你必須有root的權限躺孝!
安裝
#centos
sudo yum -y install docker
#ubuntu
sudo apt install docker docker.io
#測試
service docker start
docker run hello-world
鏡像源
選個國內的鏡像提升下載速度
https://www.docker-cn.com/registry-mirror
我使用的是阿里云的加速器享扔,速度超快的!
https://dev.aliyun.com/search.html
將一般用戶加入docker
docker 默認只能由root運行植袍。將一般用戶加入docker組即可
#創(chuàng)建docker組,一般自己就有
sudo groupadd docker
#將當前用戶加入docker組惧眠,或者其他用戶
sudo gpasswd -a ${USER} docker
#重新啟動docker服務(下面是CentOS7的命令)
sudo systemctl restart docker
#當前用戶退出系統(tǒng)重新登陸
#運行docker命令
docker ps
docker 使用
安裝RNAcocktail 軟件集合
docker pull marghoob/rnacocktail
運行方式有多種,這是交互模式
docker run -a stdin -a stdout -a stderr -i -t -v /public1:/public1 5aef8cc6eabd run_rnacocktail.py align -h
docker run -a stdin -a stdout -a stderr -i -t -v /data4:/data4 -v /data5:/data5 5aef8cc6eabd
51a11dbcbbc2 是容器ID
之后是你要運行的命令于个,如果不帶命令氛魁,就直接進入交互模式。
要注意的時,運行docker的時候秀存,你是進入了一個容器(container)里面捶码,就是另一個世界,完全一個新的環(huán)境或链, 而且你的當前目錄也變了宙项!
這里的-v /public1:/public1
是把現(xiàn)實世界的/public1目錄映射到容器里面生成/public1。
你運行程序的輸入輸出都要加絕對路徑株扛,或者在cd到你想運行的目錄尤筐,否者你當程序運行結束,退出容器回到原來世界(環(huán)境)的時候洞就,你找不到運行結果盆繁!
簡化命令
當然是alias
vim /etc/profile
加入下面這行
alias docker_rnacocktail="docker run -a stdin -a stdout -a stderr -i -t "
以后運行命令就是
docker_rnacocktail -v /public1:/public1 51a11dbcbbc2 run_rnacocktail.py align -h
還是有很多命令,docker必須把image ID(51a11dbcbbc2)放在參數(shù)后面旬蟋, 沒辦法油昂!
安全問題
我下載的這個RNAcockt 鏡像運行時的root,即進入這個容器時倾贰,你在那個環(huán)境里是root冕碟,這樣很危險!所以我再RNAcocktail的基礎上改裝成新的鏡像匆浙,在運行時是非root用戶安寺!
Dockerfile 生成新鏡像(images)
vim Dockerfile
FROM b29cb6c43221
MAINTAINER Nong "523135753@qq.com"
RUN useradd -m -d /home/nong -s /bin/bash -b /home/nong nong
RUN /bin/echo 'nong:123456' |chpasswd
RUN /bin/echo 'root:123456' |chpasswd
USER nong
note:新鏡像就是創(chuàng)建了一個普通用戶(RUN
),并使用普通用戶為默認用(USER
)首尼,
生成鏡像
docker build -t docker.io/marghoob/rnacocktail:mytag .
將container 的內容生成鏡像
參考這篇文章:http://blog.csdn.net/jiankunking/article/details/62056392
進入一個docker挑庶,記住進入后的docker id 961bcbc2bc85
,然后修改软能。
exit迎捺, 退出后修改命令
docker commit -m 'fix hisat2_jun2bed.py and unmask' -a 'Docker rnacocktail' 961bcbc2bc85 marghoob/rnacocktail:fixed
其中,-m 來指定提交的說明信息查排,跟我們使用的版本控制工具一樣凳枝;-a 可以指定更新的用戶信息;之后是用來創(chuàng)建鏡像的容器的 ID跋核;最后指定目標鏡像的倉庫名和 tag 信息岖瑰。創(chuàng)建成功后會返回這個鏡像的 ID 信息。
參考:
http://www.runoob.com/docker/docker-image-usage.html
http://blog.csdn.net/yygydjkthh/article/details/47694929
http://www.simapple.com/374.html
進入docker
容器(即一個應用環(huán)境):
用鏡像建立一個容器了罪,就可以得到一個應用環(huán)境工作了锭环。
創(chuàng)建運行一個容器并進入容器shell:sudo docker run -i -t <image name> /bin/bash
根據(jù)當前目錄Dockerfile文件構建容器:docker build -t <image name> . #Dockerfile 可以理解為一個容器的配置文件聪全。
查看容器列表及狀態(tài):sudo docker ps -a
查看容器id: docker ps -a -q
刪除所有未運行的容器:docker ps -a -q | xargs docker rm
刪除一個容器:sudo docker rm <container id>
刪除所有容器:docker rm $(docker ps -q -a)
啟動一個容器:sudo docker start <container id>
停止一個容器: sudo docker stop <container id>
關聯(lián)一個容器:sudo docker attach <container id> #其實我的理解就是進入這個容器的shell ,并操作它泊藕。
進入 容器還有一個方法 docker exec -ti <container id> /bin/bash
多人進入docker
https://www.cnblogs.com/xhyan/p/6593075.html
更改時區(qū)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
docker 本地導入導出
https://www.cnblogs.com/ksir16/p/6553851.html
用Docker解決坑爹的環(huán)境搭建系列——lamp(php5+mysql+apache2)
安裝conda
conda install -y python=3
conda update conda
conda clean --all --yes
conda source
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
pip install fire pysam
pip install python-intervals
conda install biopython
apt-get autoclean
apt-get -qq -y autoremove
vim ~/.Rprofile
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
生成鏡像
記住 container ID
docker commit -m 'basic R conda' -a 'Docker conda R' 3bee6f97a695 nong/ubuntu_conda_r:20190810
新建一個dockerfile 配置環(huán)境
vim Dockerfile
FROM nong/ubuntu_conda_r:20190810
MAINTAINER Nong "523135753@qq.com"
RUN umask 0000
USER nong
ENV PATH="/home/nong/miniconda3/bin:${PATH}"
USER 說明鏡像要用那個用戶,
生存docker鏡像
docker build -t nong/ubuntu_conda_r:latest .
docker save nong/ubuntu_conda_r:latest > nong.ubuntu_conda_r.latest.docker
## docker export -o .nong.ubuntu_conda_r.latest.docker containerID
轉換為singularity
mkdir -p /tmp/test
docker run -v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp/test:/output \
--privileged -t --rm \
singularityware/docker2singularity \
--name nong_ubuntu_conda_r_latest \
nong/ubuntu_conda_r:latest
mv /tmp/test/nong_ubuntu_conda_r_latest.simg .
deb http://mirrors.ustc.edu.cn/debian/ buster main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ buster-updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ buster main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ buster-updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
apt-get clean all
apt-get update