从vmware到docker

您所在的位置:网站首页 vm去虚拟化镜像 从vmware到docker

从vmware到docker

2023-03-25 20:52| 来源: 网络整理| 查看: 265

docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

docker与vmware区别

1.VMware是属于完全虚拟机化,而docker则是轻量级虚拟化(只虚拟出来容器所需要的资源)

2.传统的虚拟机是虚拟一整套硬件后,在其运行一个完整的操作系统,而容器内的应用进程直接运行于宿主的内核,容器没有自己的内核并且也没有进行硬件虚拟。

3.VMware对硬件的利用率在30%左右,而docker对硬件的利用率在60%-80%左右。

4.但是docker相当对于虚拟机来说安全性没有那么高

可以这么理解docker本身他不是容器,他只是负责管理容器

dockers基础知识

镜像(images):静态文件, 默认拉取镜像是采用的是http/https(加了一层安全协议)协议。可类比为vmware的iso镜像

容器(container):动态,有生命周期(启动就有没启动就没有,up)容器与容器之间是相互隔离的(共享资源)。可类比为vmware中创建的虚拟机,ova这些的。

仓库(registry):有几十万个镜像(公共仓库,都是大家推上去的镜像然后共享)dockerhub从这里拉取镜像会非常慢(因为是国外的网站) 阿里云注册(建议可以注册一个方便学习使用)获得阿里云加速器(daemon.json)。可类比为镜像的github。

docker安装Linux docker 安装

使用官方安装脚本自动安装 安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或者使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

手动安装(略,菜鸟教程上有,感觉比较麻烦)

windows docker 安装

windows docker 安装

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。

Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。

因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。

在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。

docker镜像加速docker国内加速器

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

科大镜像:https://docker.mirrors.ustc.edu.cn/网易:https://hub-mirror.c.163.com/阿里云:https://.mirror.aliyuncs.com七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:

Ubuntu16.04+、Debian8+、CentOS7

对于使用systemd的系统,请在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件):

{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}

之后重新启动服务:

$ sudo systemctl daemon-reload$ sudo systemctl restart docker检查加速器是否生效

检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

$ docker infoRegistry Mirrors:https://reg-mirror.qiniu.comdocker使用代理拉取镜像

1、创建配置目录

sudo mkdir -p /etc/systemd/system/docker.service.d

2、添加环境变量

sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf

在配置文件中添加以下内容(其中,proxy-addr为虚拟机ip地址,port为端口号(Clash是7890):

[Service]Environment="HTTP_PROXY=http://proxy-addr:port/" # 代理服务器地址Environment="HTTPS_PROXY=http://proxy-addr:port/" # httpsEnvironment="NO_PROXY=localhost,127.0.0.1" # 哪些地址不需要走代理

3、更新配置并重启服务

sudo systemctl daemon-reloadsudo systemctl restart docker`

4、验证

docker search centos

不报错即docker代理设置成功。

docker使用

使用流程:拉取镜像--使用容器

Docker镜像使用查找镜像

我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。

runoob@runoob:~$ docker search httpd

NAME: 镜像仓库源的名称

DESCRIPTION: 镜像的描述

OFFICIAL: 是否 docker 官方发布

stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

AUTOMATED: 自动构建

拖取镜像

我们决定使用上图中的 httpd 官方版本的镜像,使用命令 docker pull 来下载镜像

删除镜像

镜像删除使用 docker rmi 命令,比如我们删除 httpd 镜像:

$ docker rmi httpd(镜像名或镜像id)列出镜像docker image ls -adocker imagesREPOSITORY:镜像所在的仓库名称TAG:镜像标签IMAGEID:镜像IDCREATED:镜像的创建日期(不是获取该镜像的日期)SIZE:镜像大小Docker容器使用获取镜像

如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:

$ docker pull ubuntu启动容器

以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:

$ docker run -it ubuntu /bin/bash

参数说明:

-i: 交互式操作。

-t: 终端。

ubuntu: ubuntu 镜像。

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

要退出终端,直接输入 exit:

root@ed09e4490c57:/# exit停止一个容器

停止容器的命令如下:

$ docker stop

docker restart 重启:

$ docker restart 启动已停止运行的容器

查看所有的容器命令如下:

$ docker ps -a

使用 docker start 启动一个已停止的容器:

$ docker start b750bbbcfd88 后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d指定容器的运行模式。

$ docker run -itd --name ubuntu-test ubuntu /bin/bash

注:加了 -d参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)

进入容器

在使用 -d参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach:如果从这个容器退出,会导致容器的停止。

docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。

attach 命令

$ docker attach

注意:如果从这个容器退出,会导致容器的停止。

exec 命令

下面演示了使用 docker exec 命令。

docker exec -it /bin/bash导出和导入容器

可以理解成vmware虚拟机文件打包成的压缩包

导出容器

如果要导出本地某个容器,可以使用 docker export命令。

$ docker export 1e560fca3906 > ubuntu.tar

这样将导出容器快照到本地文件。

导入容器快照

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1删除容器

下面的命令可以清理掉所有处于终止状态的容器。

$ docker container prune

类似与删除vmware中的虚拟机



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3