1.vmare中centos7安裝(同一路由器無線網絡下)html
1.1選擇橋接模式java
1.2修改配置文件mysql
vi /etc/sysconfig/network-scripts/ifcfg-ens33(這裏不必定是ifcfg-ens33)git
按下i鍵,進入編輯模式,進行以下編輯github
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設置網絡管理相關:web
將NetworkManager 服務設置開機不啓動spring
chkconfig NetworkManager off
將NetwokManager服務關閉sql
service NetworkManager stop
從新啓動一下network服務docker
service network restart
1.4將該固定IP設置進DNS中apache
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
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容器