Docker 入门 | 1 容器化 vs 虚拟化,与 Docker 基本操作

容器化 vs 虚拟化

从前文虚拟化技术的架构图中,你能清晰地看出,由虚拟机管理程序创建抽象层并完成分离,使多个操作系统运行在单一的硬件平台之上。

而你安装操作系统的目的,不就是为了提供环境以使用某个特定的应用程序吗?如此看来,虚拟化技术通过一个完整的内核来为你实现隔离的代价确是很大。

容器是一个打包了代码及其全部依赖的软件标准单元,是依靠内核功能,对操作系统而非硬件的虚拟化。单词容器 container 又有集装箱之意,这样一层封装便如同集装箱一样为你带来了隔离与标准。

接下来就是如今最主流的容器化技术 Dcoker。

安装 Docker

这里使用的是 Docker Community Edition (docker-ce),官方安装指南:https://docs.docker.com/install/linux/docker-ce/centos

首先安装必要的程序包,并且设置稳定的 Docker 仓库:

yum install yum-utils device-mapper-persistent-data lvm2 -y
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

接着安装最新社区版的 Docker 引擎以及 containerd:

yum install docker-ce docker-ce-cli containerd.io

启动 Docker 并且通过运行 hello-world 镜像验证安装结果:

systemctl start docker
docker run hello-world

后文,先来对其输出来学习 Docker,
在这里插入图片描述

知识点

此 Docker 的架构图取自官网:
在这里插入图片描述
其为 C/S 架构,Docker 客户端工具与 Docker 守护进程通信,以完成镜像的构建、拉取以及容器的运行等操作。

你敲击 docker run,通过 Docker Client 向监听中的 dockerd 进程发送运行容器命令。如输出第一行所示,你本地没有名为 hello-world 且默认标签为 lateset 的镜像。随后便开始了从 registry 远程仓库的拖拽操作。

再看向第二段,该容器只完成了一件事,输出操作。随着该指令运行完成的退出,其容器也退出了,

docker container ls --all 

查询当前全部容器的状态,其中也记录它退出了的时间信息。

为 Docker 加速!编辑 /etc/docker/daemon.json 为其添加如下一行,并重新启动服务:

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

systemctl restart docker

来一个更大点的,在容器上安装 CentOS 系统;-i 指明你将要 interactive 交互式地运行 /bin/bash,并为其分配 tty 终端,

docker container run -it centos /bin/bash

以容器化的方式创建操作系统就是这么简单,而且通过 docker image ls 命令查看镜像信息,它也仅仅 237MB。

当然在 Docker 中仅仅运行一个应用程序,才是其高明之处。这里以 httpd 为例 ,先拖拽镜像,

docker pull httpd

同样拖拽的是默认 latest 标签的镜像,其中 -d 意为在后台运行容器,并将之命名为 web1,同时将容器中的 80 端口发布在主机上的 8080 端口,

docker container run --name web1 -d -p 8080:80 httpd

容器启动后,你来通过 curl 命令访问本机的 8080 端口,

curl localhost:8080

It works!
在这里插入图片描述
最后还要为你介绍查看容器信息的命令,

docker container inspect web1

在这里插入图片描述
输出结果中,不难找到容器 web1 的 ip 地址为 172.17.0.2,接着通过 curl 命令访问 web1 的 80 端口,

curl 172.17.0.2:80

同样,It works!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值