docker微服務部署之:4、安裝docker、docker中安裝mysql和jdk1.八、手動構建鏡像、部署項目html
在上一篇文章中,咱們是手動構建鏡像,即:java
其實以上步驟,都是很繁瑣的操做。可利用DockerMaven插件自動構建鏡像。mysql
至於要部署微服務項目,除了上述提到的手動構建步驟略過以外,其餘步驟,都仍是須要執行的。git
在Delegate=yes下面增長以下兩行代碼:github
#將ExecStart的配置值清空
ExecStart=
#配置ExecStart的值 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重啓dockersql
$ sudo systemctl daemon-reload $ sudo systemctl restart docker
2、防火牆開啓2375端口docker
須要開啓2375端口,否則idea會連不上docker容器centos
#添加指定須要開放的端口 $ sudo firewall-cmd --add-port=2375/tcp --permanent success #從新載入添加/移除的端口 $ sudo firewall-cmd --reload #也可再查下是否開啓指定端口 $ sudo firewall-cmd --query-port=2375/tcp yes
在plugs標籤下增長以下內容(注意修改<imageName>標籤中的內容,分別爲去掉demo_的名稱):bash
<!-- docker 的 maven 插件,官網:https://github.com/spotify/docker-maven-plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.1.1</version> <configuration> <!-- 注意 imageName 必定要是符合正則[a-z0-9-_.]的,不然構建不會成功 --> <!-- 詳見:https://github.com/spotify/docker-maven-plugin Invalid repository name ... only [a-z0-9-_.] are allowed--> <!-- 鏡像名稱,至關於執行docker build -t命令後面跟的鏡像名稱 --> <imageName>eureka</imageName> <!-- 基礎鏡像名稱,至關於Dockerfile中的FROM jdk1.8--> <baseImage>jdk1.8</baseImage> <!-- 執行的命令,至關於Dockerfile中的ENTRYPOINT--> <entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint> <resources> <!-- 至關於ADD app.jar / --> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> <!-- 須要構建鏡像的docker主機ip地址,端口爲2375--> <dockerHost>http://192.168.31.181:2375</dockerHost> </configuration> </plugin>
# 先中止運行中的容器 $ sudo docker stop eureka zuul article eureka zuul article # 而後刪除容器 $ sudo docker rm eureka zuul article eureka zuul article # 再刪除鏡像 $ sudo docker rmi eureka zuul article Untagged: eureka:latest Deleted: sha256:15c87bf6f8e579d2bee66865f63a532c95c7516757277f1fa78d099830bd322c Deleted: sha256:14d818fa91b0f3736cdbb6f0f89f137702be31c29019d6ff5175dd399faf3543 Deleted: sha256:9181d039053d8a3db8f2feb8962d5ce40ff7624bed10a91e8ce03d0f70c284b1 Untagged: zuul:latest Deleted: sha256:62c091b00c8f5577f89e88e9f2c91ad9375bdae2bc98b3c5e0a6d25554e30c06 Deleted: sha256:9496a939de7ff2c4b3386a84e29452a9b017d58ec97c95ce5e3c977b3f110fbe Deleted: sha256:c733bafbfada2538a77c1cce8af4a7553e5b673ee1b6d9e5ffa634c110361522 Untagged: article:latest Deleted: sha256:7f5954f085f6dbfce11f030114e0fcfaf8b63e47ec7bf89169b9018dfb68ebaa Deleted: sha256:9633e0cb462bec49717bed27b97bef3461ef19f379d9caf9dd14e3779f8cb9a5 Deleted: sha256:ea4c46c473a56daf57b2b0cbe03abb92fa43e967e78fd90c5cc31b817e745875 #查看全部容器,發現只剩下jdk1.8和mysql,而eureka、zuul和article容器已經被刪除了。 $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7ea54b828f3b jdk1.8 "/bin/bash" 14 hours ago Up 9 hours jdk1.8 652a36962b86 centos/mysql-57-centos7 "container-entrypoin…" 45 hours ago Up 10 hours 0.0.0.0:3306->3306/tcp mysql #查看本地鏡像,發現只剩下jdk1.8、centos和mysql,而eureka、zuul和article鏡像已經被刪除了 $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE jdk1.8 latest 1f2578d93bd0 14 hours ago 598MB centos centos7 9f38484d220f 5 days ago 202MB centos/mysql-57-centos7 latest ee80146ff512 4 weeks ago 453MB
除了上述提到的利用自動化部署可略過的步驟以外,其餘步驟不變。而後在打包項目的時候,使用以下命令:app
在打包的過程當中,能夠看到,除了完成了把項目打成app.jar以外,還執行了構建鏡像操做
在192.168.31.181本地鏡像中,查看是否有eureka鏡像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
eureka latest 9b410097b49e 1 second ago 645MB
demo_article和demo_zuul的打包方式是類似的。
因爲修改/lib/systemd/system/docker.service文件以後,執行了systemctl restart docker重啓了docker,因此docker中的mysql容器,暫時是沒有啓動的,須要手動啓動。
查看docker中全部容器的狀態:
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7ea54b828f3b jdk1.8 "/bin/bash" 14 hours ago Exited (137) 28 minutes ago jdk1.8
652a36962b86 centos/mysql-57-centos7 "container-entrypoin…" 45 hours ago Exited (0) 28 minutes ago mysql
能夠看到,mysql的status爲Exited 表示爲非啓動狀態
# 啓動mysql容器 $ sudo docker start mysql mysql # 查看運行中的容器,UP表示運行中 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 652a36962b86 centos/mysql-57-centos7 "container-entrypoin…" 45 hours ago Up About a minute 0.0.0.0:3306->3306/tcp mysql