温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

linux docker虚拟化技术怎么用

发布时间:2022-01-20 15:22:09 来源:亿速云 阅读:166 作者:iii 栏目:开发技术

这篇文章主要介绍了linux docker虚拟化技术怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux docker虚拟化技术怎么用文章都会有所收获,下面我们一起来看看吧。

1.docker虚拟化技术介绍:

Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。

主要解决的问题:不同的应用程序可能会有不同的应用环境。

2.docker与其他虚拟机技术优势

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

对比传统虚拟机总结

特性Docker传统虚拟机
启动秒级分钟级
硬盘使用一般为 MB一般为 GB
性能接近原生弱于
系统支持量单机支持上千个容器一般几十个

3. 镜像、容器和仓库

Docker 由镜像(Image)、容器(Container)、仓库(Repository) 三部分组成。

Docker 的镜像(Image)可以简单的类比为电脑装系统用的系统盘,包括操作系统,以及必要的软件。例如,一个镜像可以包含一个完整的 centos 操作系统环境,并安装了 samtools和 bwa 服务器。注意的是,镜像是只读的。这一点也很好理解,就像我们刻录的系统盘其实也是可读的。我们可以使用 docker images 来查看本地镜像列表。

Docker 的容器(Container)可以简单理解为提供了系统硬件环境,它是真正跑项目程序、消耗机器资源、提供服务的东西。例如,我们可以暂时把容器看作一个 Linux 的电脑,它可以直接运行。那么,容器是基于镜像启动的,并且每个容器都是相互隔离的。注意的是,容器在启动的时候基于镜像创建一层可写层作为最上层。我们可以使用 docker ps -a 查看本地运行过的容器。

Docker 的仓库(Repository)用于存放镜像。这一点,和 Git 非常类似。我们可以从中心仓库下载镜像,也可以从自建仓库下载。同时,我们可以把制作好的镜像 commit 到本地,然后 push 到远程仓库。仓库分为公开仓库和私有仓库,最大的公开仓库是官方仓库 Dock Hub,国内的公开仓库也有很多选择,例如阿里云等。

Docker Registry:镜像的仓库,比如官方的是Docker Hub。如果要在其它服务器上使用镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry就是这样的服务。

  • Registry:注册服务器,用于管理镜像仓库,起到的是服务器的作用。

  • Repository:镜像仓库,用于存储具体的docker镜像,起到的是仓库存储作用。


4.docker学习使用

  • Docker 官网 :https://www.docker.com/

  • docker官方镜像:https://hub.docker.com/

4.1 docker安装(Linux centos7)

安装很简单,建议使用root账号安装 :使用centos7自带的yum自动安装

yum -y install docker
systemctl start docker   #启动 docker 服务
systemctl enable docker  #设置开机启动docker服务
docker version    #显示 Docker 版本信息
docker info   #显示docker安装信息

普通用户要使用docker服务设置:设置非root账号使用docker服务

4.2 下载公共数据库docker HUb上的docker镜像

从 Docker Hub 中搜索符合条件的镜像。

docker search qiime

从公网docker hub 拉取(下载)image   pull

docker pull  docker.io/centos

可能由于网络的问题会有报错。 无法连接到dockerhub 下载镜像。 如果你的网络没有问题,你可以下载。

解决: 使用阿里云docker镜像加速,提升pull的速度:

你只需要登录容器Hub服务 https://cr.console.aliyun.com的控制台,使用你的支付宝帐号,第一次登录时,需要设置一个独立的密码,左侧的加速器帮助页面就会显示为你独立分配的加速地址。

修改配置文件: vim  /etc/docker/daemon.json     #大括号{}中添加镜像地址:

{
 "registry-mirrors":["https://koq0g34v.mirror.aliyuncs.com"]
}

然后重启docker,生效

systemctl daemon-reload 
systemctl restart docker
docker pull docker.io/centos  #再下载,就可以了。

如果上面的镜像下载还是慢的话,可以使用共有的国内地址

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

4.3 从本地加载别人分享的镜像

docker load -i /root/docker.io-centos.tar.gz

4.4 镜像查看与删除

以下为后台镜像查看

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
root/sra-toolkit    2.9.2               e8a5657b4e83        About an hour ago   615 MB
root/sra-toolkit    latest              e8a5657b4e83        About an hour ago   615 MB
docker.io/ubuntu    18.04               72300a873c2c        2 weeks ago         64.2 MB
docker.io/centos    latest              470671670cac        7 weeks ago         237 MB

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
root/sra-toolkit    2.9.2               e8a5657b4e83        About an hour ago   615 MB
root/sra-toolkit    latest              e8a5657b4e83        About an hour ago   615 MB
docker.io/ubuntu    18.04               72300a873c2c        2 weeks ago         64.2 MB
docker.io/centos    latest              470671670cac        7 weeks ago         237 MB

Untagged: root/sra-toolkit:2.9.2
Untagged: root/sra-toolkit:latest
Deleted: sha256:e8a5657b4e838d3ce6581666752a9b428f4a1da9dd76ddac7cde90c93a93956f
Deleted: sha256:97df9b1202930ab3020ee1c503db104a02b932459e32bf95a4ad0c3082d572c2
Deleted: sha256:d81f279ea371ed4a05be93b3bc71726e3a38350ecaa7e19fc23c87fd61759c02
Deleted: sha256:988d8a9b4254d04e208ec281aa36cbce1bef5c4e51eae806b659387a57136b0f
Deleted: sha256:f778d0a1217a6a761ebad2dbff6ce5f34419d668410a4b34a986c47e3ba31b3f
Deleted: sha256:6f6d62c5d1b06671066794c4640c4959b7db0773474ce92b277256759de1a14f
Deleted: sha256:844f6b3eaaf0f3de53e0e72f676c455563a92d8ecce95f5edc5b03356415c2e7
Deleted: sha256:9373d3173020d86eb103eac32db58836c73670e6a3440f0598324b52a2b3a542
Deleted: sha256:ba7d13644b61b58c0f03abfdae3d208ef2f4819516ccfef56094927772a67e38
Deleted: sha256:9a8a3c79c50a7bac2ef01a5a73e2de9a2cac2117c308ca50eac77d4b3fbd0635
Deleted: sha256:6ba2b38850a58bf10195058e1952bad44c5d7240b62430ea6c553a62177d5895
Deleted: sha256:fe39aa1e284cea7136534344a139d8a1acbd079054639192541478ee94f2f055
Deleted: sha256:7439f6e10a4be5d6982f7f370cf5560a31cfb4cc3f69e807be22da1d02286fea
Deleted: sha256:0108cbe087a1f29916bcfbefdf9fe118eef0c69ea4eea4705c89ffc4da7dd1fa

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    18.04               72300a873c2c        2 weeks ago         64.2 MB
docker.io/centos    latest              470671670cac        7 weeks ago         237 MB

5. docker平台基本使用方法

5.1 运行一个 container并加载镜像centos

运行起来这个实例后,在实例中执行 /bin/bash命令

[root@omisclass ~]# docker images    #查看镜像 等于命令 docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              470671670cac        7 weeks ago         237 MB
[root@omisclass ~]# docker run  -it docker.io/centos:latest /bin/bash     #交互式运行container
[root@f866b20aea91 /]# exit     #退出
exit
[root@omisclass ~]#

docker常用参数:

run  运行

-i   以交互模式运行容器,通常与 -t 同时使用;

-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用;

5.2 外挂数据到docker中

docker run  -v /root/mydata:/data --privileged=true --rm -it docker.io/centos:latest /bin/bash

-it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。

--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。

/bin/bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

--privileged=true避免挂载的数据目录权限问题

5.3  后台运行docker容器

如果你的命令已经写好,不需要进入docker,直接后台运行就可以:

docker run -d docker.io/centos:latest /bin/bash -c "while true;do echo hello world; sleep 1; done"

-d  后台运行容器,并返回容器ID;
-c  后面跟待完成的命令

6 docker中常用的命令总结(选修)

关于容器一些操作命令

docker ps -a  #-a 列出所有容器container(包含沉睡/退出状态的容器);
docker kill 1629581081a1  #杀死一个容器 
docker rm  e085da6919af   #删除容器
docker rm -f 1a63ddea6571  #强制删除容器
docker stop 1a63ddea6571  #关闭容器

容器导入与导出

docker export 7691a814370e |gzip > ubuntu.tar.gz   #导出容器
zcat ubuntu.tar.gz | docker import - test/ubuntu:v1.0  #导入容器为镜像

镜像保存与加载

docker save docker.io/centos | gzip > rna.tar.gz  #镜像保存
docker load -i rna.tar.gz     #镜像加载

提交自己的镜像到Docker Hub

用户也可以在登录后通过 docker push 命令来将自己的镜像推送到 Docker Hub。以下命令中的 username 请替换为你的 Docker 账号用户名。

docker tag ubuntu:18.04 username/ubuntu:18.04
docker image ls

关于“linux docker虚拟化技术怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“linux docker虚拟化技术怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI