持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
作者平台:
-
GitHub:github.com/JiangXia-10…
-
微信公众号:1024笔记
本文一共2215字,预计阅读7分钟
前言
一个系统从开发到上线与用户见面,中间有很多的环节,一般来说开发主要做的就是负责开发产品,而产品的部署主要是由运维负责。作为开发和运维之间的协作我们需要关心很多东西,比如版本信息、兼容性、环境等等。
在Docker出现之前在服务器配置一个系统和应用的运行环境,往往需要安装各种各样的软件,比如jdk、Tomcat、MySQL等等。
这些配置和软件的安装不仅麻烦,而且还不能跨平台。如果是在 Windows服务器上安装的这些环境,那么在Linux上又得重新安装。
当然这些麻烦事的前提是docker还没有出现,那么docker有什么神奇的功能呢?Docker目前在很多公司的招聘职位的jd上都是要求技能之一,所以掌握Docker也是找到好工作的加分项,今天一起简单学习下!
Docker是什么
1、Docker是一个基于Go语言开发并且遵从Apache2.0协议的一款开源的应用容器引擎。
2、Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。类似于虚拟机技术,但不是虚拟机,它实现了虚拟机中的资源隔离,它的性能远远高于虚拟机
3、容器是完全使用沙箱机制,各个容器之间不会有任何接口,更重要的是容器性能开销极低。
Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是可以通过对应用组件的封装、分发、部署、运行等生命周期的管理, 使应用以及运行环境能够做到“一次封装,到处运行”的目的。
Docker的几个重要概念
要想弄清楚docker,必须先明白docker中的三个重要的概念:
镜像(Image):Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数,比如匿名卷、环境变量、用户等;镜像不包含任何动态数据,其内容在构建之后也不会被改变。比如mysql镜像就包含了一套完整的mysql最小系统的文件系统。
容器(Container):镜像和容器的关系,可以理解为类和对象的关系,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。Docker镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker的简单使用
更多Docker的相关知识可以移步Docker官网:www.docker.com,以及Docker文档:https://docs.docke…
本文安装的步骤是在Linux平台。
如果需要卸载旧版本可以执行下述命令:
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装docker,需要先安装docker的依赖包,然后安装docker:
sudo yum install -y yum-utils
sudo yum install docker-ce docker-ce-cli containerd.io
输入下面命令查看版本信息:
docker -v
启动docker:
sudo systemctl start docker
关闭docker:
sudo systemctl stop docker
重启docker:
sudo systemctl restart docker
设置docker随服务启动而自启动
sudo systemctl enable docker
查看docker镜像列表:
docker images
每次拉取镜像之前,可以搜索镜像:
docker search 镜像名
拉取镜像:
docker pull 镜像名
运行镜像:
docker run 镜像名
如果需要删除镜像,可以执行下述命令:
#删除一个
docker rmi -f 镜像名/镜像ID
#删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
但是前提是当前镜像没有被任何容器使用才可以删除。
查看正在运行容器列表命令:
docker ps
docker ps -a
上面命令是查看所有容器,包含正在运行和已经停止的。
如果需要进入容器内部,修改其配置文件,可以使用下述命令:
docker exec -it 容器名/容器ID /bin/bash
退出则可以使用:
exit
或者:
Ctrl + p + q
卸载docker:
systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker
Docker的优点和用途
传统的虚拟机就是一个普通文件,当我们不需要的时候就可以删掉,并且是对其他部分没有任何影响的。但是它仍然存在比如资源占用多、冗余步骤多、启动慢这类的缺点。
和传统虚拟化方式比较,docker具有更快速的应用交付和部署、更便捷的升级和扩缩容、更简单的系统运维以及更高效的计算资源利用的优点。
因为Docker 提供轻量的虚拟化,能够从Docker获得一个额外抽象层,并且在单台机器上运行多个Docker容器,每个容器里面都有一个微服务或独立的应用,比如可以将redis运行在一个Docker,而MySQL运行在另外一个Docker,两者可以运行在一个或者多个服务器上。
Docker的出现使得项目的部署和运维的工作量和效率大大提高,主要体现在以下的几个方面:
简化配置:这也是Docker初始目的,docker能将环境和配置放入代码然后部署,同样的Docker配置能够在各种环境中使用。
快速部署:Docker可以通过创建流程的容器,无须重启操作系统,能够快速启动关闭。
代码管道化管理:对代码以流式管道化进行管理,从开发者的机器到生产环境机器这个流程中都能有效管理,从而实现从开发到部署实现流畅发布。
应用隔离:将多个应用服务部署在多个Docker中能实现应用之间的解耦。
服务合并:Docker能以更加紧密资源提供更有效的服务合并,以降低开销减少资源浪费。
即可以理解为:Docker解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
总结
这篇文章主要对于docker进行简单介绍, 什么是docker,docker的用途和优点,以及如何安装docker!自己也是一个学习的过程,所以如有任何问题或者不正确的地方,欢迎指正讨论!更多关于docker学习的内容后续分享!