【入门级】docker基础知识学习与使用(二)
docker简介
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
我们一开始选择相对基础的docker,而不是一上来就K8S,主要是为了能够尽量学习到基础的相关知识,然后再学K8S就会比较得心应手。
Docker分成两个版本,分别是CE和EE:
Community Edition (CE) 简称社区版
Enterprise Edition (EE) 检查企业版
docker架构
docker的架构和实际使用可以参考下图:
docker的几个重要概念:
Registry
Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。Image
Docker镜像是用于创建 Docker 容器的模板。Container
容器是独立运行的一个或一组应用。Host
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。Daemon
docker的后台服务进程dockerd。Client
Docker客户端通过命令行或者其他工具使用 Docker API 与 Docker 的守护进程通信。
docker安装
# 按照官网的教程有点复杂,其实不用那么多步骤
# https://docs.docker.com/install/linux/docker-ce/ubuntu/
#
sudo apt-get update
sudo apt install docker
#安装成功后看看是否成功
docker version
docker的简单使用
我们暂时还不打算讲解如何做镜像,先以用为主,用熟了再学如何制作自己的镜像。容器的思想很简单,就是Build once,Run anywhere,从上面的架构图可以看到,最简单核心的流程就是build>pull>run,build就是制作镜像,pull就是从镜像hub获取指定镜像,最后一步就是run把镜像跑起来。
由于build制作镜像稍微有点复杂,我们就先跳过,直接从pull和run开始,直接使用https://hub.docker.com/上面别人做好的。
#运行一个经典例子,docker会从hub上面下载这个命名的镜像并创建运行
docker run hello-world
#输出一下信息
......
Hello from Docker!
This message shows that your installation appears to be working correctly.
......
......
了解run机制
从字面上讲,run只是跑起一个镜像实例,实际上内部可以分为两个步骤,第一步是把镜像装入容器并创建实例(我们可以称之为create),第二步就是把装入了镜像的容器实例跑起来(我们可以称之为start)。
我们先做一个试验,我们执行两次docker run hello-world
#执行两次
docker run hello-world
docker run hello-world
#然后我们在用ps命令看看容器实例情况
docker ps -a
CONTAINER ID IMAGE COMMAND ......
21c8fd35c1df hello-world "/hello" ......
f3007b08624c hello-world "/hello" ......
#在删除容器之前,必须把容器关了,我们关其中一个
docker stop 21c8fd35c1df
#把容器实例删除
docker rm 21c8fd35c1df
#再看看容器实例列表
docker ps -a
CONTAINER ID IMAGE COMMAND ......
f3007b08624c hello-world "/hello" ......
睿江云官网链接:https://www.eflycloud.com/home?from=RJ0032