目录
1、docker概述
1、什么是docker
2、什么是沙盒
3、docker容器和虚拟机的区别
4、Docker架构
1、docker分三大部分
1、docker客户端
2、docker主机
3、远程仓库
2、两个关键词
1、镜像
2、容器
5、核心概念
6、docker的特性及优点
2、部署docker环境
1、查看一下Linux内核版本
2、卸载老版本docker,避免产生影响
3、升级 yum 和 配置源
4、在虚拟机中安装docker(不操作)
5、查看历史版本的docker
6、安装指定版本的docker
7、安装成功
8、如果安装失败
9、启动服务验证一下
【出错:执行后,显示超时连接】
【解决】
3、docker的常用操作
1、查看本地镜像
2、查找指定镜像【不操作】
1、到官网去查
2、用命令查
3、拉取镜像
4、查看容器
5、移除容器
6、创建 容器
7、启动Tomcat容器
8、进入容器内
9、Tomcat启动后404问题(无)
10、退出容器+查看容器日志
11、MySQL数据库安装和配置
1、拉取MySQL镜像
2、启动MySQL(不执行)
3、目录映射(执行)
12、创建docker镜像
1、准备内容:
编辑
2、执行命令
4、启动
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows(对于windows不是太友好)操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
沙盒机制,又称为沙箱(sandbox),是一种计算机安全领域中的技术,用于为运行中的程序提供隔离的环境。这种机制主要通过以下方式来实现:
进程隔离。通过创建独立的进程来运行应用程序,每个进程拥有自己独立的内存空间和资源,从而确保应用程序的异常不会影响其他进程和系统的稳定性。
权限控制。通过权限控制来限制应用程序对系统资源的访问,例如通过访问控制列表(ACL)或用户权限来限制应用程序对文件系统的访问,以防止数据泄漏或破坏。
资源隔离。对应用程序的资源使用进行限制,如CPU利用率和内存使用量,以防止某个应用程序占用过多的系统资源,导致其他应用程序运行缓慢。
数据隔离。将应用程序的数据存储在独立的文件系统中,与其他应用程序的数据隔离开来,防止敏感数据被其他应用程序访问和修改。
沙盒机制广泛应用于操作系统、浏览器、移动应用等场景,旨在提高安全性和稳定性。例如,在移动设备中,每个应用程序都有自己的沙盒,只能访问自己的存储空间,这有助于保护应用程序免受其他应用程序的干扰。在计算机安全中,沙盒常用于测试可能带有恶意代码的程序,因为在沙盒环境中,即使程序包含恶意行为,也不会对系统造成实际损害。
相同点:docker容器和虚拟机都采用了虚拟的技术。
不同点:docker相当于虚拟机而言,少了虚拟机操作系统层,少了一层就少了很多的资源浪费,所以docker的效率更高。
用户执行命令,客户端接收到命令会将命令发给docker主机,由主机去执行,同时会将docker的一些信息展示给用户。
执行docker命令的,接收到docker客户端的命令,执行这个命令,这个过程是隐藏的,不会暴露给用户。
提供了丰富的镜像,有丰富的资源供开发者下载。
远程仓库中提供的都是镜像,镜像是启动容器必须的。【刚从远程仓库下载完,类似于 安装文件】。
docker中真正运行的软件被称为容器,【安装后的软件,正在运行的软件,没有运行的软件都是容器】。
特点:
隔离,文件隔离、系统隔离、资源隔离、网络隔离、日志隔离等。每个容器都完全独立运行在一个沙盒中,所有数据、资源都是隔离的,比如,CPU、内存等等,网络上会为每个容器虚拟一个ip地址,docker为每个容器都提供自己的日志,互不影响。
优点:
它的虚拟化做的比虚拟机要好,更节省资源。可以跨平台,不需要担心操作系统的影响,另外docker的应用也很广泛,各大公司都有应用。
缺点:
docker对程序是友好的,但是不善于处理文件和数据,一般情况会将文件或数据以路径映射的方式挂载到容器外。
目录
1、docker概述
1、什么是docker
2、什么是沙盒
3、docker容器和虚拟机的区别
4、Docker架构
1、docker分三大部分
1、docker客户端
2、docker主机
3、远程仓库
2、两个关键词
1、镜像
2、容器
5、核心概念
6、docker的特性及优点
7.Docker如何进行文件数据存储
2、部署docker环境
1、查看一下Linux内核版本
2、卸载老版本docker,避免产生影响
3、升级 yum 和 配置源
4、在虚拟机中安装docker(不操作)
5、查看历史版本的docker
6、安装指定版本的docker
7、安装成功
8、如果安装失败
9、启动服务验证一下
【出错:执行后,显示超时连接】
【解决】
3、docker的常用操作
1、查看本地镜像
2、查找指定镜像【不操作】
1、到官网去查
2、用命令查
3、拉取镜像
4、查看容器
5、移除容器
6、创建 容器
7、启动Tomcat容器
8、进入容器内
9、Tomcat启动后404问题(无)
10、退出容器+查看容器日志
11、MySQL数据库安装和配置
1、拉取MySQL镜像
2、启动MySQL(不执行)
3、目录映射(执行)
12、创建docker镜像
1、准备内容:
编辑
2、执行命令
4、启动
docker run -d -v /path/on/host:/path/in/container my_image
docker volume create my_volume
docker run -d --tmpfs /path/in/container my_image
官网手册:CentOS | Docker Docs
要求3.10版本及以上。
如果服务器安装过docker,没有卸载再次安装会导致安装失败,首先要卸载老版本(咱们没安装过docker,可以不需要这个操作,不过可以试一下。)
yum工具可以安装软件,安装docker时需要更多工具,操作系统自带不够,所以要升级。
源是 安装软件时找的软件安装包,需要将docker的源(安装包)添加到yum中。
此步骤是官方提供的安装最新版本的docker 不执行 下方安装指定版本
我们统一安装:20.10.8版本
【安装过程中,两次都输入 y 】
解决网址如下: Docker运行hello-world镜像失败或超时_unable to find image 'hello-world:latest' locally -CSDN博客
操作步骤1:
操作步骤2:
操作步骤3:
到此就已经部署好了docker
REPOSITORY:镜像的名字
TAG:镜像标签,可以通过标签指定版本号
IMAGE_ID:镜像的唯一标识
CREATED:创建镜像的时间
SIZE:镜像大小
网站: https://hub.docker.com/
CONTAINER_ID:容器的唯一标识
IMAGE:容器对应的镜像
COMMAND:容器启动执行的命令
CREATED:创建容器的时间
STATUS:容器的当前状态
PORT:容器的端口号
NAMES:容器的名字,自定义。名字不允许重复,无论容器的状态是运行还是停止。名字也是唯一的,操作容器时可以用container_id也可以用名字。
【先多启动几次tomcat或者helle-world镜像:】
按照id移除时可以不把id写全,docker会根据输入模糊匹配,如果只匹配到一个,那么移除,匹配多个不做任何操作。【例如如下】
移除镜像时,id的规则也符合容器操作的规则,模糊匹配。
如果镜像对应的容器存在(正在运行),不能移除镜像,需要先把所有容器都移除才能移除镜像
run:第一次启动容器是要用run命令
-p:端口映射,将虚拟机的端口号映射到容器上(虚拟机端口号:容器端口号)
-d:后台运行
--name:给容器取个名字
start和run的区别
run是在第一次启动时执行,准确来说是创建一个容器
start是启动已经存在的容器
start不需要想run一样写多个参数及配置,会自动按照run时的配置和命令启动
【启动tomcat容器成功后,可以通过宿主机 进行访问!】
exec:进入容器的命令
-it:是由-i和-t组成的,-i是交互方式,-t是提供一个终端
/bin/bash:指定命令的路径和方式(就是该路径下有linux命令的可识别文件。)
创建的Tomcat容器的webapps目录下可能没有ROOT工程,这样会导致访问时出现404问题,可以进入容器后,从webapps.dist目录下的ROOT工程复制到webapps中。(目前版本已经不存在404问题了)
退出容器可以用ctrl+d,也可以执行exit命令
docker日志查看
-f:日志持续输出,会时时输出产生的日志
-n:输出倒数X条日志
-e:执行的指令,MYSQL_ROOT_PASSWORD是给root用户设置了一个密码
主要测试一下数据库能否连接成功
按照结构在虚拟机中创建好对应的目录:
/usr/local/docker/mysql/logs
/usr/local/docker/mysql/conf
/usr/local/docker/mysql/conf/conf.d (目录)
/usr/local/docker/mysql/data
-v:目录挂载(映射),虚拟机:容器内。
【1、准备项目】
把项目导出jar包
【2、创建Dockerfile文件】
创建Dockerfile文件: 文件里不能有中文字符,空格等。
【3、准备创建目录】
创建/usr/local/docker/jar/demo
将项目jar包和Dockerfile文件拉取进来
打包一个名为demo的镜像到本地镜像仓库中
-t:添加一个标签,如果什么都不写就是lasted标签
demo:自定义一个镜像名字,注意允许有大写字母
.:代表当前目录,会把当前目录的文件打包镜像
【如果报错】
【解决方案】
注意这里要看自己项目的端口号
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.ksxb.net/tnews/4639.html