经过我的理解个人认为docker适用于解决环境配置的!!!,
在开发软件的时候,我们需要依赖大量的环境配置。
但是,当我们打包上线测试的时候,会发生没有环境配置导致的bug,这些会让我们很头痛。
所以,当!当!当!docker出现了,换句话来说,它相当于我们把本地的文件的依赖环境配置,全部复制了,就相当于家一样,不需要因为配置环境而头大了,但是这个时候就会有人问了,虚拟机不是也可以这样吗,docker不就没什么用了吗,不不不,本质就是不一样的。
虚拟机是模拟了一整个系统,这需要占用大量资源,本机可能大家觉得无所谓了。但是想一想,如果是云服务器呢,很烧钱,大家都要使用模拟机,怎么的模拟机想想就害怕。
而docker不一样,它相当于一个进程,是个容器,就是大船上的集装箱一样,里面只有它,和其他的集装箱互不干扰(隔离),还只占用少量的资源,在网上只要公开还可以提供他人下载。
docker打包流程: java-jar(环境) — 打包项目带上环境(镜像) — ( Docker仓库:商店)——-下载我们发布的镜像 —- 直接运行即可!
docker为什么这么火?正如我上面所说十分的轻巧!
在容器技术出来之前,我们都是使用虚拟机技术,
在window中装一个VMware,通过这个软件我们可以虚拟出来一台或者多台电脑!很繁琐不说,还很吃性能。
Docker可以干什么?
1.简单!!!
2.比起传统虚拟机更便捷
3.像集装箱一样相互隔离
4.应用快速部署
Docker的三个重要概念
1.Dockerfile
类似于实现自动化脚本,用于创建镜像等等等
2.Image / 镜像
虚拟快照,里面部署你所需的应用程序和所关联的所有库
通过镜像,我们可以创建多个不同的Container(容器),它们就是像是一台一台运行起来的虚拟器运行这你的应用程序,但是区别不同得是虚拟机需要模拟硬件和系统,但是,Docker只是一个一个进程容器且相互不干扰
3.Container / 容器
容器就是顾名思义,集装箱
Docker的安装
这里我使用的阿里云镜像安装,在云服务器上
1.
sudo apt-get update
2.
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
3.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
6.
docker --version
Docker部署应用
一些基本指令行
docker build
: 这是 Docker 命令行工具提供的一个命令,用于构建 Docker 镜像。-t my-finance
: 这是一个选项,用于给构建的镜像指定一个标签(tag)。在这里,镜像的标签被设置为my-finance
。标签通常用于标识镜像的版本或用途。.
: 这是构建上下文的路径。在这个例子中,它指的是当前目录,也就是当前位置下的所有文件和文件夹。构建过程中,Docker 会将这个路径下的所有内容发送给 Docker 引擎,用于构建镜像。
docker build -t my-finance .
docker run -p 80:5000 -d my-finance
docker:前置指令
run:运行容器
-p:它会将容器的某一个端口映射到你的本地主机上
80:5000:主机端口:容器端口
-d:让容器在后台运行