springboot学习4之servlet容器,Docker安装以及操作

使用外置的servlet容器

嵌入式servlet容器:应用打成可执行的jar
优点:简单、便携;
缺点:默认不支持jsp、优化定制比较复杂(使用定制器serverProperties、自定义EmbeddedServletContainerCustomizer,自己编写嵌入式servlet容器的创建工厂EmbeddedServletContainerFactory);
外置的Servlet容器:外面安装Tomcat–应用war包的方式打包:
步骤:
1)必须创建一个war项目(创建好目录结构F:\workspace\mytest\src\main\webapp\WEB-INF\web.xml)
2)将嵌入式的tomcat指定为provided;

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>

3)必须编写一个SpringBootServletInitializer的子类,并调用configure方法

public class ServletInitializer extends SpringBootServletInitializer {
	//传入springboot应用的主程序
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(MytestApplication.class);
	}

}

4)然后启动就可以使用

启动原理

jar包:执行springboot主类的main方法,启动ioc容器,创建嵌入式的servlet容器;
war包:启动服务器,服务器启动springboot应用(SpringBootServletInitializer),启动ioc容器

Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低

核心概念

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上)
docker客户端(Client):连接docker主机进行操作
docker仓库(Registry):用来保存各种打包好的软件镜像
docker镜像(Images):软件打包好的镜像;放在docker仓库中
docker容器(container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

使用docker的步骤:

1)安装docker
2)去docker仓库找到这个软件应用的镜像
3)使用docker运行这个镜像,这个镜像就会生成一个docker容器
4)对容器的启动停止就是对软件的启动停止

安装docker

1)先安装Linux虚拟机 virturalBox(轻量级的Linux虚拟机),centos7 linux系统
使用Linux客户端连接工具:smartty
设置虚拟机网络:桥接网络–选好网卡–接入网线
设置好网络以后使用命令重启虚拟机的网络

service network restart
//查看ip命令
ip addr

找到IP,使用客户端连接即可
2)在Linux虚拟机上安装docker
步骤:

1/检查内核版本,必须3.10以上
uname -r
2/ 安装docker
yum install docker
3/输入y确认安装
4、启动docker
systemctl start docker
查看版本
docker -v
5/设置docker开机启动
systemctl enable docker
停止开机启动
systemctl stop docker

docker常用操作

https://hub.docker.com/,官方镜像

1、检索 例如:docker search mysql
docker search 关键字 
2、拉取 docker pull myslq:5.5
docker pull 镜像名:tag  tag是可选的,表示版本,默认是latest
3、列表 查看所有镜像
docker images
4、删除指定的本地镜像
docker rmi image-id

容器操作

软件镜像(如qq安装程序)–运行镜像–产生一个容器(正在运行的软件,运行的qq)
tomcat:

1、检索:
docker search tomcat
2、拉取:
docker pull tomcat
3、运行:mytomcat 是别名
docker run --name mytomcat -d tomcat:latest
4、查看运行中的容器 加上 -a查看所有容器(运行和退出)
docker ps
5、停止运行中容器 
docker stop id/别名
6、启动容器
docker start 容器id
7、删除容器
docker rm 容器id
8、端口映射 -d 后台运行 -p: 主机端口:容器中端口
docker run -d  -p 8888:8080 tomcat
查看防火墙状态
service firewalld status 
service firewalld stop 关闭防火墙
9、查看容器的日志
docker logs 别名/容器id

https://docs.docker.com/
mysql错误启动

docker run --name mysql01 -d mysql

正确的启动

//端口映射,已经root的密码,没有映射 和密码是启动不成功的
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

几个高级操作

//使用配置文件
$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
把主机的/my/custom文件夹挂载到mysqldocker容器的/etc/mysql/conf.d文件夹里面
改mysql的配置文件就只需要吧mysql配置文件放在/my/custom,比如:/my/mysql
//不适用配置文件
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
发布了31 篇原创文章 · 获赞 1 · 访问量 5679

猜你喜欢

转载自blog.csdn.net/wjs040/article/details/94552722
今日推荐