暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker的安装和使用入门

流浪狗的赛博酒吧 2021-11-06
835

在WIN10上安装Docker

  • 第一步:启用虚拟机平台和 Linux 子系统功能

以管理员权限启动 PowerShell,然后输入以下命令启用虚拟机平台:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

以管理员权限启动 PowerShell,然后输入以下命令启用 Linux 子系统功能:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

在以上每一步命令执行完之后,PowerShell 中可能会提示你重新启动计算机。按“Y”可以重新启动。

  • 第二步:更新到WSL2

下载 WSL2 Linux kernel update package :https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下载成功后双击安装。

然后再次使用管理员模式打开power shell,输入指令指定WSL版本为2.

wsl --set-default-version 2

  • What is WSL?
    Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。
  • 第三步:选择并安装发行版Linux(此处用Ubuntu)

在power shell输入安装命令:

wsl --install -d Ubuntu

等待即可。。。。。。。???不对啊我要装的是docker怎么装成Ubuntu了???难道是习惯了。。

  • 真正的第三步 :升级WIN10版本

好突然,只是装个软件而已竟然要升级系统。

参考官方文档https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v,启用hyper-V必须使用WIN10专业版。某宝10块钱搞个序列号,开始等升级。。。

  • 第四步:使用 PowerShell 启用 Hyper-V

power shell

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Hyper-V 让你可以在 Windows 上以虚拟机形式运行多个操作系统。

  • 第五步:下载并安装docker

https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows

自动重启一次就完成安装了

镜像和容器

检查docker安装

使用 PowerShell运行以下命令,检查 Docker 是否正常安装:

docker info

最后出现几个warning,似乎不用管

镜像 image

将 Docker image下载到桌面

地址:https://cloud.tsinghua.edu.cn/d/ad22768345664924b202/?p=%2FDocker&mode=list

并且通过在 Power shell 中输入以下命令导入将镜像导入到 Docker 中。

docker load -i C:\Users\YUJIN\Desktop\bioinfo_PartI-PartII-PartIII1-3.tar.gz

导入成功后docker程序界面显示镜像:

点击run以后,cli长这样。。应该不是这么用的,因为看起来非常难用。不显示当前路径也没有alias,甚至不能tab补全代码。。。恐怖。

容器 container

创建运行本地镜像的容器

根据教程,用以下代码可以创建名为 bioinfo_tsinghua 的容器,但是我每次运行都会出现找不到镜像的提示

docker run --name=bioinfo_tsinghua -dt -h bioinfo_docker --restart unless-stopped -v ~/Desktop/bioinfo_tsinghua_share:/home/test/share bioinfo_tsinghua

最终还是Stack Overflow救我狗命,原来是没有定义标签。先用命令

docker image list

找到所有已安装的镜像信息,可以看到名字和标签:

然后确切指定名称和tag,运行教程所述命令(其实就是在末尾加了个:2

docker run --name=bioinfo_tsinghua -dt -h bioinfo_docker --restart unless-stopped -v ~/Desktop/bioinfo_tsinghua_share:/home/test/share xfliu1995/bioinfo_tsinghua:2

没有报错。看来成功了。

  • 命令参数说明

docker run
:创建容器命令(代码如上)-d, --detach
:Run container in background and print container ID  在后台运行
-t, --tty
:Allocate a pseudo-TTY。让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-h, --hostname string
:Container host name  设置hostname
--restart string
:Restart policy to apply when a container exits (default "no") 。此处string是unless-stopped,表示除非主动退出否则一直运行。
-v, --volume list
:Bind mount a volume。意思是主机 (Windows)和docker容器(例如Linux)设置了一个文件夹同步,可以互传文件:Windows"~/Desktop/bioinfo_tsinghua_share"
== LINUX: "/home/test/share"

  • 修改权限

在 Windows 10 Pro 上,我们在 Docker 中创建的 /home/test/share 归 root 所有,所以要将其改为归 test 用户所有。

docker exec -u root bioinfo_tsinghua chown test:test /home/test/share

容器的创建、终止和再启动

  • 启动容器bash:
docker exec -it bioinfo_tsinghua bash

只用 -i
参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
-i -t
参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
如果从这个 stdin 中 exit,不会导致容器的停止。

  • 回到power shell

任务完成后,输入 exit
即可回到 Power shell

查看容器运行情况

docker ps #查看当前正在运行的容器
docker ps -a #查看所有容器
docker images #查看所有镜像

删除容器

docker rm -f bioinfo_tsinghua

当误操作导致软件无法运行时,则删除容器重新创建,这样就能重新得到一个干净的容器。

解决docker镜像下载慢的问题

设置国内镜像

按照教程pull不下来镜像,先尝试设置一下国内的docker镜像。这里使用阿里云的镜像。复制页面上的地址至下图的docker-setting-Docker Engine的文本框中文本框中

重新尝试下载

输入命令:

docker run -t -i ubuntu:18.04 /bin/bash

成功下载好神奇,竟然几十m就能运行Ubuntu了。
输入exit
退出容器

一点感想

之前听说过docker,隐约记得与conda有点相似,这次打开鲁志教授课题组的网页教材,第一章就是使用docker的教学。一开始不理解为什么一上来要教docker,毕竟我在之前的操作里从来没有用到过这个工具。

在把这部分教程学完以后,对docker有了一些浅显的理解。虽然对于配置生信工具来说,conda已经非常足够,但与conda的傻瓜式环境配置有所不同,docker的好处则是“便携”。当你把工具打包成docker镜像以后,那么在所有系统里都可以通过docker这个工具来使用,并且不需要额外的环境配置(应该是这样,我也不太确定)。并且令我惊讶的是,虽然在其他地方看到过docker对资源的使用效率极高
这样的溢美之词,但是实际看到还是感觉有点震撼的。

总之docker和conda各有千秋,在不同的情况下有各自的优势。希望以后能够好好利用这些神器,与他们和平共处(别虐我,球球了。卑微.jpg)。


参考:
鲁志课题组网页教材:https://lulab2.gitbook.io/teaching/part-i.-basic-skills/1.setup/1.1.docker#2.0.a-update-your-operating-system-to-win10-pro
网络博客:http://blog.itpub.net/26736162/viewspace-2677779/
《Docker 技术入门与实战》:https://yeasy.gitbook.io/docker_practice/introduction



文章转载自流浪狗的赛博酒吧,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论