腾讯云服务器的远程连接方式通过secureCRT进行连接 (需要配置在腾讯云后台生成的公钥)
连接之后,在linux虚拟机上安装docker
1、检查内核版本,必须是3.10及以上
uname -r
2、安装docker
yum install docker
3、输入y确认安装
4、启动docker
[root@luyuhui java]# systemctl status docker
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6
5、开机启动docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
6、停止docker
systemctl stop docker
在安裝过程中也出现了些问题,不过网上都有解决方案
docker常用命令
镜像操作
- docker search 关键字
- docker pull 镜像名:tag tag是可选的,tag表示标签,多为软件的版本,默认是lastest
- docker images 查看所有本地镜像
- docker rmi image-id 删除指定的本地镜像
容器操作
docker run --name mytomcat -d tomcat:latest
使用docker镜像tomcat:latest以后台模式启动一个容器,并将容器命名为mytomcat。
docker ps 查看运行中的容器
docker ps -a 查看所有的容器
docker start 容器id
docker rm 容器id
创建容器时的端口映射
docker run -d -p 8080:8080 tomcat:latest
使用镜像tomcat:latest以后台模式启动一个容器,并将容器的8080端口映射到主机8080端口。
linux的防火墻操作
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
linux上的jdk安装在linux文件系统即可,容器可以正常使用。
docker安裝tomcat后,工程的部署过程
比较重要的几条命令
docker exec -it CONTAINER_ID bash
进入容器终端并且的保留为容器终端的输入形式
在sftp中用put命令上传war包到linux系统(secureCRT按alt + p进入sftp界面)这种方式的自我感觉传输速度较快,但是传输上去之后是放在当前用户的根文件夹,比如root用户登录,传输的文件放在/root文件夹,
linux下docker 拷贝linux文件系统下 文件到docker容器的命令
docker cp chang.war cfa3f9d36b1b:/usr/local/tomcat/webapps
命令中的cfa3..表示的容器id
将war包copy到wenapps下后就完成java web工程的部署
SpringBoot项目打成war包过程:
SpringBoot项目默认的是使用的内置的tomcat,所以直接打成war包还是有问题的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
作用返回scope = compile,也就是说这个项目在编译,测试,运行阶段都是需要这个artifact(模块)对应的jar包在classpath中。对于scope = provided的情况,可以以为这个模块,在要运行的容器中已经有这个模块了,只影响编译、测试
maven中三种classpath
编译,测试,运行
1.compile:默认范围,编译测试运行都有效
2.provided:在编译和测试时有效
3.runtime:在测试和运行时有效
4.test:只在测试时有效
5.system:在编译和测试时有效,与本机系统关联,可移植性差
疑问**:在引入spring-boot-starter-web后添加spring-boot-starer-tomcat会不会出现依赖冲突问题。有空利用idea分析,
在tomcat starter中有这么的描述
Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web
应该是不会冲突,打的war包也能正常启动,但是现在不知道是怎么进行处理的。
pom文件修改后,修改启动类
@SpringBootApplication
public class ResttemplatedemoApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ResttemplatedemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(ResttemplatedemoApplication.class, args);
}
}
关于为何继承SpringBootServletInitializer,这个类在spring启动过程中,启动什么作用,还需要研究研究源码。
然后maven clean package即可。
网友评论