Spring Cloud
2017-02-14 10:30
190 查看
快速交付和部署
构建镜像文件搭建开发环境【测试和运维】
启动速度
dockerfile【统一】
高效利用资源
迁移和扩展
镜像、容器、仓库
docker UnionFS 的层级文件系统{container+image}
一个容器放一个服务
-p[端口] -v[存放数据] -link[共享数据]
container –>docker commit–>image–>docker tag–>image–> docker push–>docker hub
查看环境
cat /proc/version:Linux version 3.10.0-327.36.3.el7.x86_64
cat /etc/redhat-release:CentOS Linux release 7.2.1511 (Core)
安装Docker: yum -y install docker
验证docker是否安装成功:docker version
启动docker服务:systemctl start docker
docker操作
实例步骤:
Dockerfile
docker build -t demo .
docker images
docker run -d –name dockertest -p 31000:31000 985145e73436
docker ps -a
容器详细信息:docker inspect containerID
查看日志:docker logs containerID
容器开关:docker stop/start/restart container_name
进入容器:docker exec -it containerID /bin/sh
实战:Spring Cloud基于docker
持久层框架:Spring Data JPA
数据库:PostgreSQL
安装软件:
JDK、busybox、PostgreSQL通过镜像安装
maven
Docker-compose
项目构建
执行mvn clean package docker:build -DskipTests
docker images
编写docker-compose.yml
执行docker-compose up
docker ps
备注
构建镜像文件搭建开发环境【测试和运维】
启动速度
dockerfile【统一】
高效利用资源
迁移和扩展
镜像、容器、仓库
docker UnionFS 的层级文件系统{container+image}
一个容器放一个服务
-p[端口] -v[存放数据] -link[共享数据]
container –>docker commit–>image–>docker tag–>image–> docker push–>docker hub
查看环境
cat /proc/version:Linux version 3.10.0-327.36.3.el7.x86_64
cat /etc/redhat-release:CentOS Linux release 7.2.1511 (Core)
安装Docker: yum -y install docker
已安装: docker.x86_64 2:1.12.5-14.el7.centos 作为依赖被安装: container-selinux.x86_64 2:1.12.5-14.el7.centos docker-client.x86_64 2:1.12.5-14.el7.centos docker-common.x86_64 2:1.12.5-14.el7.centos oci-register-machine.x86_64 1:0-1.11.gitdd0daef.el7 oci-systemd-hook.x86_64 1:0.1.4-9.git671c428.el7 skopeo-containers.x86_64 1:0.1.17-1.el7 更新完毕: systemd.x86_64 0:219-30.el7_3.6 作为依赖被升级: libgudev1.x86_64 0:219-30.el7_3.6 libselinux.x86_64 0:2.5-6.el7 libselinux-python.x86_64 0:2.5-6.el7 libselinux-utils.x86_64 0:2.5-6.el7 libsemanage.x86_64 0:2.5-5.1.el7_3 libsemanage-python.x86_64 0:2.5-5.1.el7_3 libsepol.x86_64 0:2.5-6.el7 policycoreutils.x86_64 0:2.5-11.el7_3 policycoreutils-python.x86_64 0:2.5-11.el7_3 selinux-policy.noarch 0:3.13.1-102.el7_3.13 selinux-policy-targeted.noarch 0:3.13.1-102.el7_3.13 setools-libs.x86_64 0:3.3.8-1.1.el7 systemd-libs.x86_64 0:219-30.el7_3.6 systemd-python.x86_64 0:219-30.el7_3.6 systemd-sysv.x86_64 0:219-30.el7_3.6
验证docker是否安装成功:docker version
Client: Version: 1.12.5 API version: 1.24 Package version: docker-common-1.12.5-14.el7.centos.x86_64 Go version: go1.7.4 Git commit: 047e51b/1.12.5 Built: Mon Jan 23 15:35:13 2017 OS/Arch: linux/amd64 Server: Version: 1.12.5 API version: 1.24 Package version: docker-common-1.12.5-14.el7.centos.x86_64 Go version: go1.7.4 Git commit: 047e51b/1.12.5 Built: Mon Jan 23 15:35:13 2017 OS/Arch: linux/amd64
启动docker服务:systemctl start docker
docker操作
1. 查看docker信息(version、info) # 查看docker版本 $docker version # 显示docker系统的信息 $docker info 2. 对image的操作(search、pull、images、rmi、history) # 检索image $docker search image_name # 下载image $docker pull image_name # 列出镜像列表 $docker images # 删除一个或者多个镜像 $docker rmi image_name # 显示一个镜像的历史; $docker history image_name 3.对容器的操作 # 在容器中运行"echo"命令,输出"hello word" $docker run image_name echo "hello word" # 交互式进入容器中 $docker run -i -t image_name /bin/bash # 在容器中安装新的程序 $docker run image_name apt-get install -y app_name
实例步骤:
1.创建Dockerfile文件 2.执行docker编译 docker build -t dockertest . 3.查看编译好的镜像 docker images 4.运行镜像 docker run 5.查看状态 docker ps -a
Dockerfile
FROM java:8 MAINTAINER lzy ADD demo-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 CMD ["java","-jar","/app.jar"]
docker build -t demo .
Sending build context to Docker daemon 7.68 kB Step 1 : FROM java:8 Trying to pull repository docker.io/library/java ... 8: Pulling from docker.io/library/java 75a822cd7888: Pull complete 57de64c72267: Pull complete 4306be1e8943: Pull complete 1e6944bfb718: Pull complete 3521f2f45ed2: Pull complete 9c2f0d9b5f90: Pull complete 8cedcf6d2527: Pull complete 31f99da7583d: Pull complete Digest: sha256:6bfae6cf8902a28d3f0209f5cdbb269032762a94835d331811df33498970aa7e Status: Downloaded newer image for docker.io/java:8 ---> a001fc27db5a Step 2 : MAINTAINER lzy ---> Running in c4ca691dc4ee ---> ad2d9fb9adc9 Removing intermediate container c4ca691dc4ee Step 3 : ADD demo-0.0.1-SNAPSHOT.jar app.jar ---> a4ef68eeab7f Removing intermediate container 81c9e4af8cf3 Step 4 : WORKDIR /app/ ---> Running in c5b96e7f0071 ---> 4649690c9c7b Removing intermediate container c5b96e7f0071 Step 5 : EXPOSE 31000 ---> Running in b6d9162c337c ---> 9be50b594447 Removing intermediate container b6d9162c337c Step 6 : CMD java -jar app.jarr ---> Running in 1e97a09b0caf ---> 985145e73436 Removing intermediate container 1e97a09b0caf Successfully built 985145e73436
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE demo latest 985145e73436 About a minute ago 643.2 MB docker.io/java 8 a001fc27db5a 4 weeks ago 643.2 MB docker.io/registry latest c9bd19d022f6 3 months ago 33.27 MB
docker run -d –name dockertest -p 31000:31000 985145e73436
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9871c54c260d registry "/entrypoint.sh /etc/" 11 weeks ago Exited (2) 8 weeks ago suspicious_varahamihira
容器详细信息:docker inspect containerID
查看日志:docker logs containerID
容器开关:docker stop/start/restart container_name
进入容器:docker exec -it containerID /bin/sh
实战:Spring Cloud基于docker
持久层框架:Spring Data JPA
数据库:PostgreSQL
安装软件:
JDK、busybox、PostgreSQL通过镜像安装
docker pull docker.io/java docker pull docker.io/progrium/busybox docker pull docker.io/sameersbn/postgresql
maven
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz tar vxf apache-maven-3.2.5-bin.tar.gz mv apache-maven-3.2.5 /usr/local/maven3
Docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.6.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
项目构建
<modules> <module>config</module> 配置服务器,为person、some提供配置服务 <module>discovery</module> 注册服务器 <module>ui</module> 应用网关 <module>person</module> person模块 <module>some</module> some模块 <module>monitor</module> 监控器 </modules>
执行mvn clean package docker:build -DskipTests
[INFO] Building jar: /home/lzy/ch12/config/target/config-1.0.0-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:1.2.4.RELEASE:repackage (default) @ config --- [INFO] [INFO] --- docker-maven-plugin:0.2.9:build (default-cli) @ config --- [INFO] Copying /home/lzy/ch12/config/target/config-1.0.0-SNAPSHOT.jar -> /home/lzy/ch12/config/target/docker/config-1.0.0-SNAPSHOT.jar [INFO] Copying /home/lzy/ch12/config/src/main/docker/runboot.sh -> /home/lzy/ch12/config/target/docker/runboot.sh [INFO] Copying /home/lzy/ch12/config/src/main/docker/Dockerfile -> /home/lzy/ch12/config/target/docker/Dockerfile [INFO] Building image config:1.0.0-SNAPSHOT Step 1 : FROM java:8 ---> a001fc27db5a Step 2 : VOLUME /tmp ---> Running in 0c1dfc6ca14f ---> 246a3d1a11e7 Removing intermediate container 0c1dfc6ca14f Step 3 : RUN mkdir /app ---> Running in b3d7b2a52dc8 ---> 13f7c1702e5c Removing intermediate container b3d7b2a52dc8 Step 4 : ADD config-1.0.0-SNAPSHOT.jar /app/app.jar ---> 5f6a6604be1b Removing intermediate container a3ebe00ec06c Step 5 : ADD runboot.sh /app/ ---> af433048eba4 Removing intermediate container 8eb8ebf4ed01 Step 6 : RUN bash -c 'touch /app/app.jar' ---> Running in 2c1559eb2176 ---> 8c5faf2cbe8d Removing intermediate container 2c1559eb2176 Step 7 : WORKDIR /app ---> Running in 2696b17fc82f ---> cbca7f50aa58 Removing intermediate container 2696b17fc82f Step 8 : RUN chmod a+x runboot.sh ---> Running in c2e27fdf3086 ---> 2c314a148e6a Removing intermediate container c2e27fdf3086 Step 9 : EXPOSE 8888 ---> Running in bd28dca5fdf8 ---> c51e1a868357 Removing intermediate container bd28dca5fdf8 Step 10 : CMD /app/runboot.sh ---> Running in 691b2a4f2501 ---> 4c2689ce9c54 Removing intermediate container 691b2a4f2501 Successfully built 4c2689ce9c54
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE monitor 1.0.0-SNAPSHOT bf8192fc903e 18 hours ago 701.6 MB some 1.0.0-SNAPSHOT 772711be95dd 19 hours ago 691.9 MB person 1.0.0-SNAPSHOT 9df400157224 19 hours ago 719.6 MB ui 1.0.0-SNAPSHOT eb44b851d3bc 19 hours ago 705.4 MB discovery 1.0.0-SNAPSHOT 310e98431587 19 hours ago 716.6 MB config 1.0.0-SNAPSHOT 4c2689ce9c54 19 hours ago 701.7 MB docker.io/sameersbn/postgresql latest 409a9e95e432 9 days ago 234 MB lzydome latest 2968058d1eb0 2 weeks ago 656.7 MB docker.io/mysql latest f3694c67abdb 3 weeks ago 400.1 MB docker.io/java 8 a001fc27db5a 8 weeks ago 643.2 MB docker.io/registry latest c9bd19d022f6 3 months ago 33.27 MB docker.io/progrium/busybox latest 05cb04a8038f 18 months ago 4.786 MB
编写docker-compose.yml
postgresdb: image: busybox volumes: - /var/lib/postgresql/data postgres: # name: postgres image: docker.io/sameersbn/postgresql hostname: postgres volumes_from: - postgresdb ports: - "5432:5432" environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres discovery: image: "discovery:1.0.0-SNAPSHOT" hostname: discovery # name: discovery ports: - "8761:8761" config: image: "config:1.0.0-SNAPSHOT" hostname: config # name: config links: - discovery environment: EUREKA_HOST: discovery EUREKA_PORT: 8761 # ports: # - "8888:8888" person: image: person:1.0.0-SNAPSHOT hostname: person links: - discovery - config - postgres environment: EUREKA_HOST: discovery EUREKA_PORT: 8761 SPRING_PROFILES_ACTIVE: docker # ports: # - "8082:8082" some: image: some:1.0.0-SNAPSHOT hostname: some links: - discovery - config environment: EUREKA_HOST: discovery EUREKA_PORT: 8761 SPRING_PROFILES_ACTIVE: docker # ports: # - "8083:8083" ui: image: ui:1.0.0-SNAPSHOT hostname: ui links: - discovery - config - person - some environment: EUREKA_HOST: discovery EUREKA_PORT: 8761 SPRING_PROFILES_ACTIVE: docker ports: - "80:80" monitor: image: monitor:1.0.0-SNAPSHOT hostname: monitor links: - discovery - config - person - some - ui environment: EUREKA_HOST: discovery EUREKA_PORT: 8761 SPRING_PROFILES_ACTIVE: docker # ports: # - "8989:8989"
执行docker-compose up
docker ps
19504ba16c8a monitor:1.0.0-SNAPSHOT "/bin/sh -c /app/runb" 8989/tcp ch12_monitor_1 8b01980929b6 ui:1.0.0-SNAPSHOT "/bin/sh -c /app/runb" 0.0.0.0:80->80/tcp ch12_ui_1 bc9184ff0aa0 some:1.0.0-SNAPSHOT "/bin/sh -c /app/runb" 8083/tcp ch12_some_1 0b89fc3ac9b0 person:1.0.0-SNAPSHOT "/bin/sh -c /app/runb" 8082/tcp ch12_person_1 c506e62c99ce config:1.0.0-SNAPSHOT "/bin/sh -c /app/runb" 8888/tcp ch12_config_1 bfe6647f9a50 discovery:1.0.0-SNAPSHOT "/bin/sh -c /app/runb" 0.0.0.0:8761->8761/tcp ch12_discovery_1 525ce326a93a docker.io/sameersbn/postgresql "/sbin/entrypoint.sh" 5432/tcp ch12_postgres_1
备注
启动postgres docker run --name yourappname -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -d -p 5432:5432 postgres 异常: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "snsbuy" 解决: 进入容器:docker exec -it containerID /bin/sh 进入目录:/var/lib/postgresql/9.6/main 修改pg_hba.conf MD5改成trust
相关文章推荐
- 微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务
- 基于百度云 BOS 搭建私有 Docker Registry
- springmvc实现url路由功能
- centos6.5上安装docker
- 在kubernetes上实现tomcat日志的持久化
- spring aop 无法代理父类方法 的解决方法
- Spring MVC过滤器-超类 GenericFilterBean
- docker容器的网络信息查看
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Docker Compose 介绍入门使用
- 使用MVC微信支付返回get_brand_wcpay_request:fail
- openstack kilo-with-dokcer
- DockerFile创建一个nginx容器的全过程