Spring Cloud搭建微服务架构----Docker

前言

若是服务比较多,有效的部署多个服务实例将是一个很大的挑战,咱们使用Docker容器化咱们的服务。java

Docker安装

个人开发环境是Mac,参照官方Mac Docker安装方案nginx

安装成功以后经过Docker名称查看docker是否安装成功:git

$ docker --version
Docker version 17.03.0-ce, build 60ccb22

构建镜像测试:github

docker run -d -p 80:80 --name webserver nginx

输入:http://localhost/web

输入图片说明

至此Docker安装成功,如下命令参照:spring

  1. 查看容器的root用户密码

docker logs <容器名orID> 2>&1 | grep '^User: ' | tail -n1docker

  1. 查看容器日志

docker logs -f <容器名orID>centos

  1. 查看正在运行的容器

docker ps
docker ps -a为查看全部的容器,包括已经中止的。springboot

  1. 删除容器

删除全部容器:docker rm $(docker ps -a -q) 删除单个容器:docker rm <容器名orID>oracle

  1. 中止,启动,杀死一个容器

docker stop <容器名orID> docker start <容器名orID> docker kill <容器名orID>

  1. 查看全部镜像

docker images

  1. 删除全部镜像

docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)

  1. 运行一个容器

docker run -d -p 80:80 --name webserver nginx

  1. 拉取镜像

docker pull <镜像名:tag>

  1. 构建镜像

docker build -t <镜像名> <Dockerfile路径>

  1. 后台运行(-d),并暴漏端口(-p)

docker run -d -p 127.0.0.1:33301:22 centos6-ssh

Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD springbootdemo-1.0.0.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

在执行 mvn package docker:build 命令时遇到了一个错误,解决方案时修改了pom文件中的 docker-maven-plugin 版本为:0.4.11 成功构建。

  • 经过 docker images查看构建成功的镜像;
  • 经过 docker run -p 8088:8080 -t [镜像名称] 启动容器;
  • 经过 docker ps 查看容器运行状态;
  • 经过 docker stop [容器名称] 中止容器;
  • 经过docker rmi -f <imageid> 强制删除镜像;

Docker镜像中的服务指向的注册中心地址配置:eureka.client.serviceUrl.defaultZone=http://10.168.12.25:5000/eureka/

代码示例

https://github.com/zhangcj/easymall/tree/master/springbootdemo/springbootdemo-docker

至此,咱们能够经过Docker容器化咱们的服务代码了。