浅谈Docker 一、什么是容器 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。 对于上面的概述,我们可能对容器还是没有一个大概的了解。我们可以理解成操作系统的的进程服务可以通过容器来拉起,如果我们将一个服务封装成容器,当我们想运行服务时,将容器拉起即可。比如我们常用到的抢票系统,在我们需要抢票时需要提交给系统你的姓名,身份证号,车次等信息。将信息填写完成后开始后台执行一次次进行尝试购买车票。整个操作我们可以通过容器来实现,将上面所有的操作封装到一个容器,当我们开始抢票是可以并发运行多个容器替我们去抢票,但在系统看来,其实就是运行了多个服务进行去工作。具体抢票软件是否用到了容器技术,小编也不知道,这个举列只是来帮助大家理解。 二、为什么要用容器 开发人员在编写代码的时候会遇到各种各样的环境,很可能会导致软件冲突,导致业务存在问题。所以容器的诞生也是为了解决这类问题。容器的诞生就从传统的运输行业找到答案。传统的运输面临的问题是什么?不同的货物因属性不同可能导致损失,如:在运输的途中装卸人员将铁桶放到了水果的上面。后来就有了某公司的发明,无论是什么类型的货物打包放入某公司中,可以保证货物的隔离安全性。Docker 将某公司思想运用到软件打包上,为代码提供了一个基于容器的标准化运输系统。Docker可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。其实某公司用来封装货物,而容器是用来封装软件。 三、Docker的核心组件 Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。 Docker 客户端:最常用的 Docker 客户端是 docker 命令。通过 docker 我们可以方便地在 Host 上构建和运行容器。除了 docker 命令行工具,用户也可以通过 REST API 与服务器通信。 Docker 服务端:Docker daemon 运行在 Docker host 上,负责创建、运行、监控容器,构建、存储镜像。 Docker 镜像:可将 Docker 镜像看着只读模板,通过它可以创建 Docker 容器。 Docker 容器:Docker 容器就是Docker 镜像的运行实例。 Registry:Registry 是存放 Docker镜像的仓库,Registry 分私有和公有两种。 四、常用命令 1.安装docker (1)在安装docker时,先配置好yum源,小编比较喜欢使用某公司的yum源。访问:mirrors.aliyun.com点击对应的操作系统,会有详细的配置yum源的操作方法。 (2)配置好yum源后可以进行安装并开启服务 2.docker search 命令 当我们想在系统中运行http服务,可以安装http的服务又比较麻烦,我们可以通过docker来运行,运行前,需要通过docker search 命令来去docker hub上查到容器镜像 3.docker pull 命令 找到了心仪的镜像,我们怎么把他下载到本地呢。可以通过docker pull命令进行获取,大家下载时候会发现是一层一层的下载,后面会介绍为什么。 4.docker images && docker image ls 命令 刚刚我们已经下载了http的镜像,那么我们可以通过docker images命令查看本机上又那些镜像,docker images和docker imges ls一样。 5.docker run 命令 -d 后台运行 -p 制定端口,将容器的80端口映射到宿主机的80端口 6.docker ps 命令 通过docker ps命令可以查看当前宿主机上运行了那些容器 7.访问宿主机查看是否提供了http服务 8.当我们想对查看的网页进行修改时,可以进入容器内部进行更改,也可以通过docker cp命令 8.1进入容器内部,修改html内容 通过docker exec -it 可以进入容器内,刷新浏览器,查看网页是否做更改 8.2利用docker cp命令将html拷贝至容器中 刷新浏览器,查看效果 9.docker start/stop/restart 命令 上面也说过,容器是用来封装应用服务,服务需要停止,启动,重启,容器当然也可以实现。 10.docker rm 命令 对于停止的容器,容器属于退出状态,实际中的容器没有被删除,可以通过docker rm进行删除,可以通过docker ps -a查看所有状态的容器。 11.docker rmi 命令 对于没有用的镜像也是占用磁盘空间,可以使用docker rm将无用的镜像删除 12.docker的命令比较多,大家可以通过docker --help查看 说到这里其实也是介绍了docker的一小部分命令,后面会给大家某公司docker的分层原理,docker的网络,和docker的存储等。小编也不是很懂docker,把知道的都分享给大家,有问题可以随时交流哦~
|