wsl与docker

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
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇