JavaWeb项目部署02(Docker)
前言
前面说了用Linux操作系统在服务器上部署我们的项目,那具体怎么用命令来做呢?怎么把我的项目jar包,服务器,nginx下载到服务器上呢?其实是有具体操作的Linux,但是太麻烦,命令太多,软件安装复杂,有了Docker以后项目的部署如丝般顺滑,大大减少了运维工作量。
来看看Docker为什么快速帮我们安装和部署软件?
还是来举一个简单的例子🙌:
假如你要开一家汉堡🍔 店:
你要在全国开很多家“超级汉堡店”,每家店都要能做出一模一样的汉堡。
❌ 传统方式(不用 Docker):
你每到一个新城市开分店,就得:
找厨师(操作系统)
告诉厨师怎么做汉堡(安装软件)
买锅碗瓢盆(依赖库、环境配置)
调试火候(各种配置)
结果发现:北京的厨师用的是电磁炉,上海的用的是煤气灶,做出来的汉堡味道不一样!有的还做不熟!
✅ 用 Docker 的方式:
你提前在总部做好一个“全自动汉堡制作箱”——这就是 Docker 镜像。
这个箱子里面已经:
装好了食谱(你的代码)
配好了调料(依赖软件,比如 Python、MySQL)
带着专用炉灶(运行环境)
连厨师都预设好了(应用服务)
你只需要:
把这个“箱子”运到任何城市(服务器)
插上电,按下启动按钮(docker run)
箱子自己就开始做汉堡了!
要了解Docker,就要理解这个“全自动汉堡制作箱”——这就是 Docker 镜像。
假设我要在服务器上利用Docker来安装部署MySQL,Docker会根据命令中的镜像名称自动搜索并下载对应的镜像
这里下载的不是安装包,而是镜像。镜像中不仅包含了MySQL本身,还包含了其运行所需要的环境、配置、系统级函数库。因此它在运行时就有自己独立的环境,就可以跨系统运行,也不需要手动再次配置环境了。这套独立运行的隔离环境我们称为容器。
那镜像又在哪呢?
Docker官方提供了一个专门管理、存储镜像的网站,并对外开放了镜像上传、下载的权利。
整个工作流程可以用这张图来表示:
下面还是省略Docker的下载和安装,直接来看看相关命令
Docker常用命令
命令 | 说明 |
---|---|
docker pull | 拉取镜像 |
docker push | 推送镜像到DockerRegistry |
docker images | 查看本地镜像 |
docker rmi | 删除本地镜像 |
docker run | 创建并运行容器 |
docker stop | 停止指定容器 |
docker start | 启动指定容器 |
docker restart | 重新启动容器 |
docker rm | 删除指定容器 |
docker ps | 查看容器 |
docker logs | 查看容器日志 |
docker exec | 进入容器 |
看完常见命令,我们以安装MySQL为例,看看怎么在镜像仓库中拉取MySQL镜像:
docker run -d \--name mysql \-p 3307:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \mysql:8
💡解读:
-
docker run -d :创建并运行一个容器,-d则是让容器以后台进程运行
-
–name mysql : 给容器起个名字叫mysql,你可以叫别的
-
-p 3307:3306 : 设置端口映射。
- 容器是隔离环境,外界不可访问。但是可以将宿主机端口映射容器内到端口,当访问宿主机指定端口时,就是在访问容器内的端口了。
- 容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致。
- 格式: -p 宿主机端口:容器内端口,示例中就是将宿主机的3307映射到容器内的3306端口
-
-e MYSQL_ROOT_PASSWORD=123是设置MySQL默认密码
小白啊!!!写的不好轻喷啊🤯如果觉得写的不好,点个赞吧🤪(批评是我写作的动力)
…。。。。。。。。。。。…
…。。。。。。。。。。。…