如何安装Docker并部署 Spring Boot 项目
这篇文章主要介绍"如何安装Docker并部署 Spring Boot 项目",在日常操作中,相信很多人在如何安装Docker并部署 Spring Boot 项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何安装Docker并部署 Spring Boot 项目"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
前提条件
一台CentOS7的服务器。我这里用的是阿里云的服务器,选的是CentOS7版本系统
使用xshell6类似的远程连接工具连接到服务器。参考文章:使用xshell6远程连接Linux服务器
如何需要域名访问Docker部署的项目,需要先拥有一个域名哦。我这里演示用的域名是在阿里云申请的。详见阿里云域名注册。
安装命令
建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便。
Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:
yum install docker
启动Docker服务
安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
service docker startchkconfig docker on
测试Docker安装成功
测试
docker version
输入上述命令,返回docker的版本相关信息,证明docker安装成功。
设置国内镜像
通过vim修改docker为国内镜像地址:https://registry.docker-cn.com
因为国内连接 Docker 的官方仓库很慢,因此我们在日常使用中会使用Docker 中国加速器。通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户现在将会享受到更快的下载速度和更强的稳定性,从而能够更敏捷地开发和交付 Docker 化应用。
Docker 中国官方镜像加速可通过registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。
修改系统中docker对应的配置文件即可,如下:
vi /etc/docker/daemon.json#添加后{ "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true}
演示Hello World程序
//运行下面的命令,将 image 文件从仓库抓取到本地。docker pull library/hello-world//上面代码中,docker image pull是抓取 image 文件的命令。//library/hello-world是 image 文件在仓库里面的位置,//其中library是 image 文件所在的组,hello-world是 image 文件的名字。docker images//现在,运行这个 image 文件。docker run hello-world
输出这段提示以后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。
安装Docker Compose
通过 Docker-Compose 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。
Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose .
#下载sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose#安装chmod +x /usr/local/bin/docker-compose#查看版本docker-compose version
常用命令
除过以上我们使用的Docker命令外,Docker还有一些其它常用的命令
拉取docker镜像
docker pull image_name
查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:
docker images
删除镜像
docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30
查看当前有哪些容器正在运行
docker ps
查看所有容器
docker ps -a
启动、停止、重启容器命令:
docker start container_name/container_iddocker stop container_name/container_iddocker restart container_name/container_id
后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:
docker attach container_name/container_id
删除容器的命令:
docker rm container_name/container_id
删除所有停止的容器:
docker rm $(docker ps -a -q)
查看当前系统Docker信息
docker info
从Docker hub上下载某个镜像:
docker pull centos:latestdocker pull centos:latest
查找Docker Hub上的nginx镜像
docker search nginx
执行docker pull centos会将Centos这个仓库下面的所有镜像下载到本地repository。
部署项目演示(云收藏)
部署SpringBoot项目---云收藏
地址: https://github.com/cloudfavorites/favorites-web
-bash: unzip: 未找到命令 说明未安装过, 只需执行如下命令即可. 同样适用 Unix 内核系统.
yum install -y unzip zip
下拉项目:
wget https://github.com/cloudfavorites/favorites-web/archive/favorites-1.3.0.zip
解压
unzip favorites-1.3.0.zip
进入目录
cd favorites-web-favorites-1.3.0/修改文件application-docker.properties
vi app/src/main/resources/application-docker.properties
修改内容如下
favorites.base.path=http://xx.xxx.xx.xx/ forgotpassword.url=http://xx.xxx.xx.xx/newPassword --- 地址为部署服务器的地址部署命令:```javadocker-compose up --build或者docker-compose up -d
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'forgotpassword.url' in value "${forgotpassword.url}"app_1 | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:379) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]app_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]app_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]app_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]app_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]app_1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]app_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]app_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.
修改项目配置文件:
favorites.base.path=http://公网ip/forgotpassword.url=http://公网ip/newPassword
项目启动成功:
访问ip: http://47.100.188.105/ 查看项目首页
到此,关于"如何安装Docker并部署 Spring Boot 项目"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!