wsl –import Ubuntu-20.04 d:\Wsl\Ubuntu-20.04 D:\Wsl\Ubuntu-20.04.tar
wsl -l
wsl --export Ubuntu-20.04 D:\Wsl\Ubuntu-20.04.tar
wsl --unregister Ubuntu-20.04
wsl --import Ubuntu-20.04 d:\Wsl\Ubuntu-20.04 D:\Wsl\Ubuntu-20.04.tar
vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
sudo apt-get update
#################一键安装脚本#########
#安装 Docker(非大陆服务器)
wget -qO- get.docker.com | bash
docker -v #查看 docker 版本
systemctl enable docker # 设置开机自动启动
#安装 Docker-compose(非大陆服务器)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version #查看 docker-compose 版本
# install docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
if 【 ! $(getent group docker) 】;
then
sudo groupadd docker;
else
echo "docker user group already exists"
fi
sudo gpasswd -a $USER docker
sudo service docker restart
rm -rf get-docker.sh
#System has not been booted with systemd as init system (PID 1). Can't operate.
sudo service docker start
###################win10 WSL2 开启 systemclt 命令#############
如何解决System has not been booted with systemd错误?
sudo apt-get install daemonize
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME
#########################Docker 基本使用############
安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加 Docker 的官方 GPG 密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
sudo apt-get update
#sudo apt-get install docker-ce docker-ce-cli containerd.io
#选择最后版本安装
sudo apt-get install docker-ce=5:19.03.9~3-0~ubuntu-focal
# 查看docker运行信息
docker info
########################## 配置镜像源###########
mkdir -p /etc/docker
# vi /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
service docker restart
docker info
####################下载镜像########################
# 搜索镜像:镜像的名字通常由用户名/镜像名构成,无用户名的为官方认证镜像
docker search ubuntu
# 获取镜像
docker pull ubuntu # ubuntu latest 16.04
docker run --name=ubuntu -it ubuntu
docker cp sources.list ubuntu:/
docker start ubuntu
docker attach ubuntu
# 查看本机Docker中存在的镜像
docker images
# 查看镜像的历史编辑信息
docker history ubuntu
#############################运行镜像##################################
# 可以查看这个命令的参数
docker run --help
# 创建容器,命名容器名ubuntu,互动标准输入i和分配新命令行t。i: --interactive Keep STDIN open even if not attached; t: --tty Allocate a pseudo-TTY
docker run --name=ubuntu -it ubuntu
apt-get update
apt-get install less
apt-get install htop
bash --version # 4.3.48
perl -v # 5.22.1
apt-get install r-base # depended on python
R --version # 3.2.3 (2015-12-10)
python --version # 2.7.12
# 内部退出容器
exit # 或Ctrl+D
# 查看容器列表
docker ps -a|less -S # 查看所有container
# 启动退出容器(ID/Names)
docker start ubuntu
# 进入运行容器
docker attach ubuntu
exit # 退出终端和容器
# 保存容器至镜像
## a作者,m描述(am可不添),容器,镜像(用户/镜像:版本)
docker commit -a liuyongxin -m 'Add r-base' ubuntu liuyongxin/ubuntu16:0.01
docker commit -a linguopeng -m 'Add mono' ubuntu liuyongxin/ubuntu16:0.01
# 导出容器至文件
docker save ubuntu -o ubuntu.tar
#docker export ubuntu -o ubuntu.tar
# 导入容器文件为镜像
docker load ubuntu -i ubuntu.tar
docker import ubuntu.tar liuyongxin/ubuntu16:latest
# 删除退出容器及挂载目录链接
docker rm -v ubuntu
# 后台运行images
docker run --name=ubuntu -itd liuyongxin/ubuntu16 /bin/bash
# 外部退出容器
docker stop ubuntu
# 批量退出容器
docker stop $(docker ps -a -q)
# 批量删除退出的容器
docker rm -v $(docker ps -a -q -f status=exited)
# 移除镜像
docker rmi liuyongxin/ubuntu16
# 移除全部镜像
docker rmi $(docker images -q)
# 只对某目录数据处理:打开镜像并挂载目录工作,退出自动删除容器
# rm退出删除容器,v挂载yongxing至home,容器名,打开命令行
docker run --rm -v /mnt/bai/yongxin:/home --name=ubuntu -it liuyongxin/ubuntu16:0.01
##################上传镜像#################
我们需要现在Docker hub注册账号
Username:liuyongxin
Email: [email protected]
Password:xxx……
docker login # 按提示输入用户名、密码。登录成功会返回Login Succeeded
docker push liuyongxin/ubuntu16
docker rmi liuyongxin/ubuntu16 # 如果本地不再使用且想清理空间,可移除镜像
#######################使用别人配置的QIIME docker####################
# 在docker库中检索
docker search qiime
# 下载需要的docker
docker pull yoshikiv/basespace-qiime-191-dev
# 查看本地的qiime docker
docker images|grep 'qiime'
# 运行docker,加载工作目录,退出自动移除
docker run --rm -v /mnt/bai/yongxin:/home --name=qiime -it yoshikiv/basespace-qiime-191-dev
docker run --rm -v $(pwd):/home --name=picrust2 -it bc7f4f5d93a5
##############增强docker qiime的高级绘图功能,选用
# install ggplot2 ggtree for R
R
source("https://bioconductor.org/biocLite.R")
biocLite(c("ggtree","ggplot2","colorspace"))
###############实例:使用docker中的QIIME绘制alpha rarefraction曲线##########
docker run --rm -v `pwd`:/home --name=qiime yoshikiv/basespace-qiime-191-dev make_rarefaction_plots.py -i home/${result}/a_collated/ -m home/doc/design_rare.txt -o home/result
docker run --rm -v `pwd`:/home --name=picrust2.3 picrust2.3 picrust2_pipeline.py
docker run picrust2.2 /bin/sh -c "while true; do echo hello world; sleep 1; done"
######docker服务启动,重启,关闭命令
docker启动命令,docker重启命令,docker关闭命令
启动 systemctl start docker
守护进程重启 sudo systemctl daemon-reload
重启docker服务 systemctl restart docker
重启docker服务 sudo service docker restart
关闭docker service docker stop
关闭docker systemctl stop docker
docker pull hub-mirror.c.163.com/people/ruanjian:bangben
conda install --use-local
##################安装Singularity
sudo apt-get update && sudo apt-get install -y \
build-essential \
uuid-dev \
libgpgme-dev \
squashfs-tools \
libseccomp-dev \
wget \
pkg-config \
git \
cryptsetup-bin
wget https://golang.org/dl/go1.14.12.linux-amd64.tar.gz
tar -C /pub/software -xzvf go1.14.12.linux-amd64.tar.gz
rm go1.14.12.linux-amd64.tar.gz
echo 'export PATH=/pub/software/go/bin:$PATH' >> /etc/profile.d/env.sh
wget https://github.com/hpcng/singularity/releases/
download/v3.7.2/singularity-3.7.2.tar.gz
tar -xzf singularity-3.7.2.tar.gz
cd singularity
./mconfig
cd builddir
make
sudo make install
###########################本地源下载镜像
1.利用官方提供的工具docker-registry,构建私有的镜像仓库,registry也是一个镜像,先把它下载下来。
docker pull registry
2.利用registry构建私有仓库
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
3.仓库创建完之后,后续上传的镜像会被放在本地映射的目录下,如上,是映射到 /opt/data/registry 上。然后,标记你要转化的镜像再上传。
# 查看本地有哪些镜像
docker images
# 标记成带有地址(127.0.0.1:5000)的镜像
docker tag bc7f4f5d93a5 127.0.0.1:5000/linguopeng/picrust2
# 上传镜像到本地仓库
docker push 127.0.0.1:5000/linguopeng/picrust2
#上传完之后,利用curl查看仓库中的镜像
curl 127.0.0.1:5000/v2/_catalog
{"repositories":["linguopeng/picrust2"]}
singularity build --nohttps picrust2.sif docker://127.0.0.1:5000/linguopeng/picrust2
#####################singularity 运行
singularity build --sandbox picrust2 picrust2.sif
singularity shell -w picrust2
singularity build -f picrust2.2.sif picrust2
singularity exec picrust2.2.sif picrust2_pipeline.py
singularity pull docker://kastman/pgap
singularity shell picrust2.2.sif bash
########docker 里的$PATH,在singularity的environment里
echo 'export PATH=/opt/conda/envs/qiime2-2019.7/bin:$PATH' >/environment
echo 'export PATH=/opt/conda/condabin:$PATH' >>/environment
echo 'export PATH=/opt/conda/bin:$PATH' >>/environment
echo 'export PATH=/usr/local/sbin:$PATH' >>/environment
echo 'export PATH=/usr/local/bin:$PATH' >>/environment
echo 'export PATH=/usr/sbin:$PATH' >>/environment
echo 'export PATH=/usr/bin:$PATH' >>/environment
echo 'export PATH=/sbin:$PATH' >>/environment
echo 'export PATH=/bin:$PATH' >>/environment
退出时,使用 [ctrl + D],这样会结束 docker 当前线程,容器结束,可以使用 [ctrl + P][ctrl + Q] 组合键退出而不终止容器运行
docker容器内默认是root用户执行,但是挂载的文件夹,到主机中的结果为root的,主机用户没有权限解决办法:
是在容器内取修改文件的属主解决
cat metawrap_v1.dockerfile
#dockerfile内容如下
FROM raser216/metawrap:v1.0.0
RUN echo "source activate metawrap-env" >> ~/.bashrc
ENV PATH /opt/conda/envs/metawrap-env/bin:$PATH
##############
docker build -t linguopeng/meta.1.3.2 .
#########################################
安装Docker
非大陆服务器Docker安装
wget -qO- get.docker.com | bash
docker -v #查看docker版本
systemctl enable docker # 设置开机自动启动
修改 Docker 配置(可选)(来自烧饼博客)
cat > /etc/docker/daemon.json <<EOF
{
"data-root": "/256g",
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF
然后重启 Docker 服务:
systemctl restart docker
非大陆服务器 Docker-compose 安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version #查看docker-compose版本
#########################################、
安装 Nginx Proxy Manager
sudo -i
mkdir -p /root/data/docker_data/npm
cd /root/data/docker_data/npm
vim docker-compose.yml
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 冒号左边可以改成自己服务器未被占用的端口
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 冒号左边可以改成自己服务器未被占用的端口
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
###########################xui################
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
sudo docker run --name rstudio-4.1.3 \
-d --restart always \
-p 8787:8787 \
-e USER=$(whoami) \
-e PASSWORD=3 \
-e USERID=$(id -u) \
-e GROUPID=$(id -g) \
-v /home/$(whoami)/docker_rstudio_home:/home/$(whoami)/docker_rstudio_home \
linguopeng/rstudio413clusterprofilerkeep