Docker的使用
什么是Docker
**要解释清楚Docker,首先要说解释清楚容器(Container)的概念。**要解释容器的话,需要从操作系统说起。太深入的一两本书都说不清楚,直接引用维基的说法,操作系统就是管理计算机的硬件软件和资源,并且为软件运行提供通用服务的系统软件。
看这个ui图,对于我的理解是Docker是一个容器,由docker hub(国外的服务器,国内用阿里云一模一样)存放着很多镜像,每个镜像都可以理解为一个箱子,也就是一个个的实体,比如是redis,mysql等等服务,而我们也不需要在linux系统中安装各种环境,下载镜像就相当于安装好各种环境等等,感觉dokcer就像java中的maven,Gradle一样管理着服务
有什么用
高效的利用系统资源
-
由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker对系统资源的利用率更高,无论是应用执行速度,内存消耗以及文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。
运行速度快
-
传统的虚拟机技术启动应用服务往往需要数分钟,而Docker容器应用,由于直接运行与宿主内核,无序启动完整的操作系统,因此可以做到妙级,甚至毫秒级的启动时间,大大的节约了开发,测试,部署的时间。
方便部署
-
环境搭建方便,针对不同机器环境搭建,docker可能只需要几下子,而传统环境中需要打包成虚拟机镜像等等麻烦死了。
统一管理
-
管理服务方便,比如针对mysql不同版本,我们只需要下载相应的镜像运行就好了,想要关闭时候进入docker查看当前运行的服务关闭即可。
资源占用小
-
相同类型服务公用一些东西,具体我也是看了一张系统架构图。比如安装nginx镜像,它会把这个服务拆分成好几个模块下载,可能容量高达170M。但是第二次你下载其他服务的时候,可能其中有几个拆分模块不需要下载了,因为之前存在了。
Docker使用
Centos中下载Docker
百度一大堆太简单了
Docker安装nginx
1. 查询镜像
docker search nginx 查询nginx镜像
2. 拉取查看镜像
docker pull nginx:latest 有很多镜像,拉去最新镜像 = docker pull nginx
docker images 查看自己镜像仓库
repository 名字
TAG 版本
image id 镜像的唯一id
created 拉取时间
size 大小
3. 运行镜像查看镜像状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KieK79uM-1592926341634)(C:\Users\Shine'lon\Desktop\学习日志\新建文件夹\image-20200623160314795.png)]docker run -d -p 80:80 --name nginxLast nginx
通过docker run [name]方式运行
-d 方式表示以后台方式进行运行,不占用窗口
-p 第一个80表示虚拟机的端口,第二个端口表示镜像运行容器的端口(正常来说是访问不到的)
然后通过虚拟机80端口映射到容器的80端口,反正我是这样理解的,和nginx的发现代理一 样
--name 表示 容器运行后取得名字
nginx 表示要运行的容器的名字 或者 id
docker ps 查看当前运行的镜像(参数不介绍了 差不多)
4. 检测运行是否成功
然后在电脑上访问虚拟机ip:80
5. 进入容器终端(相当于以个小型虚拟机)
docker exec -i -t 949 /bin/bash
-i 即使没有附加也保持STDIN 打开
-t 分配一个伪终端
可以使用 -it = -t -i
949 代表容器的id 可以取前面几位唯一的
/bin/bash 以这种终端模式打开
6. 修改nginx配置文件
下载一下vim插件辅助用
apt-get update 更新apt-get指令
apt-get install vim 下载vim
找到nginx的配置文件目录(根据官方文档就知道在哪里)
找到/usr/share/nginx底下的index.html页面
通过vim修改后index.html文件后图片如下
7. 指定相应的配置文件(静态资源映射例子)
通过vim的操作编写nginx配置文件
注意:我这里指定虚拟机/usr/local/image为静态资源映射
docker run -p 80:80 -d --name nginxLatest
-v /etc/nginx/nginx1.conf:/etc/nginx/nginx.conf
-v /usr/local/image:/usr/local/image
nginx
解释一下
-v 命令表示指定虚拟机的配置文件代替镜像容器中的配置文件
第一个-v表示用指定虚拟机中nginx1.conf代替容器中的nginx.conf文件
然后因为在容器中配置的/usr/local/image是容器中的
我们访问不到
所以通过第二个-v来映射地址
8. 结果查看