云原生学习(二)之容器化进阶
作者:互联网
创建一个java项目
一个普通的springboot项目就行了
部署redis
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] #自定义 docker run --name redis -p 6379:6379 -v /data:/data -d redis
#redis使用自定义配置文件启动
docker run --name redis -p 6379:6379 -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis:latest redis-server /etc/redis/redis.conf
注意;将daemonize yes注释起来或者daemonize no,因为该配置和docker run中-d参数冲突会导致容器一直启动失败
#修改配置文件
vim /etc/redis/redis.conf
#查看
docker ps
#重启redis实列
docker restart
#查询当前容器:
docker container ls -all
#删除当前容器:
docker container rm mycentos
统计访问实列场景
引入pom.xml依赖
<!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
配置文件
spring.redis.host=localhost spring.redis.password=root
controller
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class CountController { @Autowired StringRedisTemplate redisTemplate; //private int i=0; @GetMapping("/hello") public String count(){ Long aLong = redisTemplate.opsForValue().increment("count-people"); return "有["+ aLong +"]人访问次页面"; // return "有["+ i++ +"]人访问次页面"; } }
将应用打包成为一个镜像
以前 java为例 SpringBoot打包为jar 把jar上传给服务 服务器运行java jar 现在 所有的机器都安装Docker、任何镜像都是镜像、所有机器都可以运行
通过Dockerfile进行打包
Dockerfile内容
FROM openjdk:8-jdk-slim
LABEL maintainer=zhangyongyuan
COPY target/*.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
把target和Dockerfile上传到服务器中
#进入目录 cd a #构建
docker build -t java-demo:v1.0 -f Dockerfile .
docker build -t java-demo:v1.0 .
#启动
docker run -d -p 8080:8080 java-demo:v1.0
#查看
docker ps
#打印日志
docker logs 容器id
应用分享和启动
#登录docker hub docker login #给旧镜像起码 docker tag java-demo:v1.0 zhangyongyuan/java-demo:v1.0 推送到docker hub docker push zhangyongyuan/java-demo:v1.0 #别的机器拉取 docker pull zhangyongyuan/java-demo:v1.0 #别的机器运行 docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
标签:原生,容器,java,进阶,demo,redis,v1.0,docker,data 来源: https://www.cnblogs.com/aimangguo/p/16412374.html