云原生学习(二)之容器化进阶
创建一个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

浙公网安备 33010602011771号