centos搭建运行java项目环境(Docker,tomcat,jdk,nginx,redis,spring_cloud全家桶)教程
传统的linux搭建java项目,步骤比较麻烦,每款软件的安装配置等是多样化的。每款软件有各自的安装步骤,繁琐的命令,着实让人头疼。笔者从接触docker技术后,整理了该教程。让自己成长,还有和技术朋友们共同进步~~~
Docker的作用:缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作。(通俗一点说,Docker就像一个大盒子,里面可以装很多物件,如果需要这些物件的可以直接将这个大盒子拿走,而不需要从这个大盒子中一件件的取。)docker鼓励面向服务的体系结构和微服务架构。Docker推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中运行多个应用程序)
传统虚拟机于容器技术的对比:
虚拟机 | 容器 | |
---|---|---|
占用磁盘空间 | 非常大,GB级 | 小,MB甚至KB级 |
启动速度 | 慢,分钟级 | 快,秒级 |
运行形态 | 运行于Hypervisor上 | 直接运行在宿主机内核上 |
并发性 | 一台宿主机上十几个,最多几十个 | 上百个,甚至数百上千个 |
性能 | 逊于宿主机 | 接近宿主机本地进程 |
资源利用率 | 低 | 高 |
命令这种东西只有敲了才是自己的,所以docker的命令,笔者放在实际操作中去介绍以及显示,跟着流程一步一步去实现,多操作可以记住。
话不多说跟着笔者直接一步一步进行操作:
搭建环境说明:Docker要求CentOS系统的内核版本高于 3.10,必须是 64 位操作系统,centos系统下查看内核版本命令
uname -r
一般系统会帮我们安装好yum,如果没有的话,这里有教程:https://blog.51cto.com/3069201/2058781
已有yum的,更新最新版本yum:
(1)yum 包更新到最新:
sudo yum update
(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum源为阿里云(国内的话设置为国内地址比较快,原因你懂的!):
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
(1)安装docker
sudo yum install docker-ce
(2)安装后查看docker版本
docker -v
安装docker已完成~
网上许多教程说添加或者修改daemon.json文件,进行修改docker的镜像源,改为国内的镜像源,下载比较快。其实,默认拉取的最新版本docker中已经帮我们,配置了国内的镜像源。看图1,图2。
图1,ademon.json文件:
图2,打开后:
如果想改为其他的镜像源请搜索一下国内镜像源网址,编辑该文件修改:
vi /etc/docker/ademon.json
重启docker服务:
systemctl stop docker
systemctl start docker
直接重启:
systemctl restart docker
设置开机启动:
systemctl enable docker
这时候是从ustc获取镜像,而且速度很快~
需要开启docker的远程访问(在开发和学习时都能带来便利,外部网络环境尽量避免)后续有用:
修改宿主机的docker配置,让其可以远程访问:
vi /lib/systemd/system/docker.service
原来的文件:
修改后的文件:
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
运行java项目,使用docker先安装一个容器化的centos7系统,以后许多其它软件(镜像)的制作是基于这个系统做出来的
docker安装centos7
拉取centos的镜像:
docker pull centos:7
使用docker images
命令可以看到已安装完成的镜像
创建容器命令:docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主