1.vmare中centos7安装(同一路由器无线网络下)
1.1选择桥接模式
1.2修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33(这里不一定是ifcfg-ens33)
按下i键,进入编辑模式,进行如下编辑
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static #设置为静态IP,不自动分配 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=6f97fb2f-29cd-4fb9-8d8d-c5e389736a1a DEVICE=ens33 ONBOOT=yes #设为开机启动 IPADDR=192.168.0.111 #配置固定IP NETMASK=255.255.255.0 #配置子网掩码 GATEWAY=192.168.0.1 #该配置与宿主机网关一致 PREFIX0=24 #改配置需要添加 DNS1=8.8.8.8 #DNS配置,这里采用了google的
1.3设置网络管理相关:
将NetworkManager 服务设置开机不启动
chkconfig NetworkManager off
将NetwokManager服务关闭
service NetworkManager stop
重新启动一下network服务
service network restart
1.4将该固定IP设置进DNS中
vi /etc/resolv.conf
nameserver 8.8.8.8 search localdomain
sudo service network restart
测试:
ping www.baidu.com
看是否能够联通
1.5如果是win7的电脑, 需要
vmnet0,实际上就是一个虚拟的网桥 vmnet0,实际上就是一个虚拟的网桥,这个网桥有很若干个端口,一个端口用于连接你的Host,一个端口用于连接你的虚拟机,他们的位置是对等的,谁也不是谁的网关。所以在Bridged模式下,你可以让虚拟机成为一台和你的Host相同地位的机器。 vmnet1,这是一个Host-Only网络模式 vmnet1,这是一个Host-Only网络模式,这是用于建立一个与世隔绝的网络环境所用到的,其中vmnet1也是一个虚拟的交换机,交换机的一个 端口连接到你的Host上,另外一个端口连接到虚拟的DHCP服务器上(实际上是vmware的一个组件),另外剩下的端口就是连虚拟机了。虚拟网卡 “VMWare Virtual Ethernet Adapter for VMnet1”作为虚拟机的网关接口,为虚拟机提供服务。在虚拟机启动之后,如果你用ipconfig命令,你会很清楚的看到,你的默认网关就是指向 “VMWare Virtual Ethernet Adapter for VMnet1”网卡的地址的。(实际上它并不能提供路由,这是VMware设计使然,它是干了除了提供路由之外的一些事情——实际上是我也不知道它干了什 么事情),这里没有提供路由主要表现在没有提供NAT服务,使得虚拟机不可以访问Host-Only模式所指定的网段之外的地址。 vmnet8,这是一个NAT方式,最简单的组网方式了 vmnet8,这是一个NAT方式,最简单的组网方式了,从主机的“VMWare Virtual Ethernet Adapter for VMnet8”虚拟网卡出来,连接到vmnet8虚拟交换机,虚拟交换机的另外的口连接到虚拟的NAT服务器(这也是一个Vmware组件),还有一个口 连接到虚拟DHCP服务器,其他的口连虚拟机,虚拟机的网关即是“VMWare Virtual Ethernet Adapter for VMnet8”网卡所在的机器,废话,这肯定就是你的Host机器啦。同样,用ipconfig也可以看出来,你的虚拟机的默认网关也指向了你的 “VMWare Virtual Ethernet Adapter for VMnet8”虚拟网卡地址。相比之下,可以看出来,NAT组网方式和Host-Only方式,区别就在于是否多了一个NAT服务。
host-only与wmnet1虚拟网卡进行通信
NAT模式与VMnet8虚拟网卡进行通信
桥接使用的是你机器的真实网卡进行上网
2.安装docker
yum install docker
查看docker版本
docker -v
启动docker
systemctl start docker
查看docker镜像
docker images
搜索镜像
docker search mysql
下载镜像
docker pull mysql(下载最新版) docker pull mysql:5.5(下载5.5)
安装并启动mysql(mysql之正式版--设置了本地端口和docker端口的映射关系)
docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql[:版本号] --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
安装并启动mysql(mysql之非正式版)
docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql[:版本号] --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
查看运行中的docker容器
docker ps
停止某容器
docker stop mysql01(可以是container id,也可以是names)
查看所有镜像
docker ps -a
删除当前镜像(根据container id)
docker rm 228b46dcbb6a
强制删除当前镜像(根据container id)
docker rm -f 228b46dcbb6a
进入容器bash并进入mysql命令行:
docker exec -it mysql bash mysql -uroot -p 输入密码即可
systemctl stop firewalld.service systemctl disable firewalld.service systemctl mask firewalld.service yum install iptables-services -y systemctl enable iptables systemctl start iptables systemctl status iptables systemctl restart iptables.service systemctl enable iptables.service
yum provides ifconfig
yum whatprovides ifconfig
yum install bridge-utils
pkill docker iptables -t nat -F ifconfig docker0 down brctl delbr docker0 docker -d service docker restart
解决Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误(还在解决中....................)
4.demo演示
4.1pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zy</groupId> <artifactId>spring-boot-rest-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-rest-demo</name> <description>spring-boot-rest-demo</description> <!-- 继承springboot提供的父工程; --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.14.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!--指定远程docker的位置;开启远程docker的2375 --> <dockerHost>http://192.168.0.199:2375</dockerHost> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- spring-boot-starter-xxx:场景启动器 spring-boot-starter-web:使用SpringBoot的web开发场景; 导入了web开发需要的所有依赖; --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> </dependency> <!--引入swagger --> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version> </dependency> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- docker maven打包插件;可以将应用做成docker镜像 --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.12</version> <configuration> <!-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 --> <!-- 详见:https://github.com/spotify/docker-maven-plugin Invalid repository name ... only [a-z0-9-_.] are allowed--> <imageName>spring-boot-rest-demo</imageName> <baseImage>java</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> </project>
4.2启动类
package com.zy; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @EnableSwagger2 // 引入对Swagger的支持,需要在pom文件中添加其依赖,测试方式 http://localhost:8090/swagger-ui.html public class SpringBootRestDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringBootRestDemoApplication.class, args); } }
4.3application.yml
server: port: 8090 spring: datasource: url: jdbc:mysql://192.168.0.199:3306/springboot_rest?useSSL=false username: root password: 123456
4.4controller层
package com.zy.controller; import com.zy.mapper.UserMapper; import com.zy.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class UserController { @Autowired private UserMapper userMapper; @GetMapping(value = "/user/{id}") @ResponseBody public User getUser(@PathVariable("id") Integer id){ return userMapper.getUserById(id); } }
4.5mapper层
package com.zy.mapper; import com.zy.model.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @Mapper public interface UserMapper { @Select("select * from tb_user where id = #{id}") User getUserById(Integer id); }
4.6model层
package com.zy.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @Data @Builder @NoArgsConstructor @AllArgsConstructor public class User { private Integer id; private String lastName; private String email; }
4.7部署到docker前:
4.7.1pom文件中配置docker maven plugin并在properties中声明dockerHost
<dockerHost>http://192.168.0.110:2375</dockerHost>
4.7.2安装docker的Linux机器上,开启docker远程API操作端口2375:
vi /usr/lib/systemd/system/docker.service
将ExecStart这一行后面加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
4.7.3重启docker服务
systemctl restart docker
4.7.4开放2375端口,并重启iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2375 -j ACCEPT
重启服务
systemctl restart iptables.service
systemctl enable iptables.service
4.7.5即可打包应用为docker镜像发布在远程服务器
mvn clean package docker:build
4.7.5查看是否打包上去
docker images
4.7.6远程服务器可以根据镜像快速启动docker容器