Docker简介
虚拟化技术是一种计算机资源管理技术,是将计算机的各种实体资源,如服务器,网络,内存以及存储等,予以抽象,转换后呈现出来,虚拟化技术打破的计算机实体间的,不可切割的障碍 使用户可以对原本的组态更好的方式马来应用这些资源
虚拟化技术的主要作用:
- 高性能的物理硬件7产能过剩和老的旧的硬件产能过低的重组重用 ,透明化底层物理硬件
- 软件跨环境的迁移问题(代码的水土不服)
在一台主机上那个实现多个操作系统 ,关键技术就是硬件的虚拟化
什么是Docker?
首先 我们先看几个问题
1.合作开发的时候,在本机可以跑,别人的电脑跑不起来
这里我们拿Java Web应用程序举例,我们一个Java Web应用程序涉及很多东西,比如JDK、tomcat、spring等等。当这些其中某一项版本不一致的时候,可能就会导致应用程序跑不起来这种情况。Docker则将程序直接打包成镜像,直接运行在容器中即可。
2.服务器自己的程序挂掉了,结果发现是别人的程序出了问题把内存吃完了,自己的程序因为内存不够而挂掉了
这种也是一种比较常见的情况,如果你的程序重要性不是特别高的话,公司基本上不可能让你的程序独享一台服务器的,这时候你的服务器就会跟公司其他人的程序共享一台服务器,所以不可避免地就会受到其他程序的干扰,导致自己的程序出现问题。Docker就很好解决了环境隔离的问题,别人程序不会影响到自己的程序。
3.公司要弄一个活动,可能会有大量的流量进来,公司需要部署几十台服务器
在没有Docker的情况下,要在几天内部署几十台服务器,这对运维来说是一件非常折磨人的事,而且每台服务器的环境还不一定一样,就会出现各种问题,最后部署地头皮发麻。用Docker的话,我只
需要将程序打包到镜像,你要多少台服务,我就给你跑多少容器,极大地提高了部署效率。
官网地址:https://www.Docker.com
Docker通俗的讲是服务器中的高性能虚拟机,可以将一台物理虚拟N多台虚拟机的机器,互相之间隔离,且不受影响。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后是发布到任何流行的Linux机器或Windows机器中 也可以实现虚拟化,容器完全是是使用沙箱机制,相互之间不会有任何接口。
特点:
- 标准化交付:Docker将应用打包成标准化单元,用于交付,部署;
- 轻量级:容器包含了软件运行所需要的任何环境,而且非常轻量级
- 高可靠:容器化的用用程序,可以在任何linux 环境中始终如一的进行
- 隔离型:容器化的应用程序,具备隔离性,这样多团队可以共享一个Linux系统资源。
Docker的基本概念
宿主机:安装Docker守护进程的Linux服务器,称之为宿主机;
镜像(Image):Docker 镜像,就相当于是一个 root 文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
容器(Container):镜像运行之后的实体,镜像和容器的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个镜像控制中心,用来保存镜像。
确保Linu能够连接到网络
1.调整虚拟网络编辑器
(1)桥接模式的虚拟机,就像一个在路由器"民政局"那里"上过户口"的成年人,有自己单独的居住地址,虽然和主机住在同一个大院里,但好歹是有户口的人,可以大摇大摆地直接和外面通信。
(2)NAT模式的虚拟机,纯粹就是一个没上过户口的黑户,路由器"民政局"根本不知道有这么个人,自然也不会主动和它通信。即使虚拟机偶尔要向外面发送点的信件,都得交给主机以主机的名义转发出去,主机还专门请了一位叫做NAT的老大爷来专门负责这些虚拟机的发信、收信事宜。
(3)仅主机模式的虚拟机,纯粹是一个彻彻底底的黑奴,不仅没有户口、路由器"民政局"不知道这么号人,还被主机关在小黑屋里,连信件也不准往外发。
其中这个仅主机模式能够保障我们在拔掉网线的时候继续连接我们的虚拟机,不依靠公网连接,而是仅靠物理机和虚拟机的关系连接。在断网的情况下,利用这个模式,我们可以继续连接我们的虚拟机,实现我们的操作。
2.VMware Network Adapter VMnet8 网卡设置
3.打开虚拟机文件
提供的虚拟机文件已经安装了CentOS7,并且在CentOS7上已经安装了Docker环境,IP地址:
192.168.200.128
查看电脑已经安装的Docker
yum list installed | grep docker
安装Docker
yum -y install docker
安装后查看docker版本
docker -v
Docker守护进程相关命令
systemctl start docker //启动docker
systemctl stop docker //停止docker
systemctl restart docker
systemctl status docker
systemctl enable docker //开机启动
docker info //查看docker概要信息
中国科学技术大学(ustc)是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在
用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公
共服务。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
编辑该文件
vim /etc/docker/daemon.json
在文件中输入以下内容
{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]
}
docker 常用命令:
查看镜像 docker images
搜索镜像 docker search imageName
拉取镜像 docker pull imageName:version
删除镜像 docker rmi imageId rmi–>remove Image
如果你需要从网络中查找需要的镜像,可以通过以下命令搜索;注意,必须确保当前系统能联网
docker search 镜像名称
查看正在运行的容器
docker ps
查看所有容器(查看正在运行的和已经停止运行的)
docker ps –a
docker ps -all
创建容器命令:
docker run 参数 镜像名称:镜像标签 /bin/bash
创建容器常用的参数说明:
命令参数详解
-i:表示运行容器,如果不加该参数那么只是通过镜像创建容器,而不启动。
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端(如果
只加it两个参数,创建后就会自动进去容器)。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
–name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录
或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射,例如:
可以将Docker中Tomcat容器的8080端口映射到宿主机上的某一个端口8080,那么以后访问tomcat只需
要:http://宿主机的IP:8080/
进入容器之后,初始化执行的命令:/bin/bash;可写可不写