Docker-Compose(安装、部署自己web)

it2026-08-13  10

一、docker-compose 安装: 官网地址:https://docs.docker.com/compose/ linux版本安装命令(登录docker中,docker-machine ssh) 1、安装命令

sudo curl -L “https://github.com/docker/compose/releases/download/1.27.4/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

2、修改权限

sudo chmod +x /usr/local/bin/docker-compose

二、docker-compose部署构建自己的web镜像步骤

1、编写自己的springboot web服务 1、Controller编写

@Autowired StringRedisTemplate redisTemplate; @GetMapping(value = "/hello/{name}") public String hello(@PathVariable(value = "name") String name){ Long views = redisTemplate.opsForValue().increment("views"); System.out.println("name = " + name + " || views = " + views); return "hi, " + name + " || views = " + views; }

2、application.yml配置 特别注意host是配置的redis,这样本地启动是启动不了的。本机验证修改成localhost

server: port: 8088 spring: redis: host: redis 本地测试验证功能OK【http://localhost:8088/hello/gao】

2、编写Dockerfile文件:

FROM java:8 COPY *.jar /app.jar CMD ["--server.port=8088"] EXPOSE 8088 ENTRYPOINT["java","-jar","/app.jar"] 将jar文件和Dockerfile文件放在docker machine中使用命令编译成功【只是测试功能,非必要步骤】 【docker build -t my-compose-web .】

3、编写docker-compose.yml文件

version: "3.3" services: qiang_web_app: build: . image: qiang_web_app depends_on: - redis ports: - "8088:8088" redis: image: library/redis:alpine ports: - "6379:6379" 8088:8088 (前面是本地访问的端口,后面8088是docker容器启动我们web暴露的端口。当我们上面的Dockerfile里面填的是8084,这里修改成8088:8084 就行,访问还是http://192.168.99.100:8088/hello/test ) 特别注意:redis如果我们没有配置端口ports,我们在外面通过客户端是连接不上redis的。配置了端口就可以正常无密码连接 备注:实际测试使用version:3.8 在docker machine中OK,直接在win10中的mingw中运行不支持,所以使用3.3

4、使用docker-compose部署项目

【docker-compose up】 【docker-compose up -d】后台启动 启动后通过【docker ps】可以正常看到启动2个服务,一个是我们的springboot, 一个是redis 【docker-compose up --build】重新编译启动

5、测试验证 部署成功后使用:http://192.168.99.100:8088/hello/test 请求正常。 修改docker-machine的端口转发,使用http://localhost:8088/hello/test也能正常访问

看到后台打印: qiang_web_app_1 | name = test || views = 1 qiang_web_app_1 | name = test || views = 2 qiang_web_app_1 | name = test || views = 3 qiang_web_app_1 | name = test || views = 4 qiang_web_app_1 | name = test || views = 5 qiang_web_app_1 | name = test || views = 6 qiang_web_app_1 | name = test || views = 7 qiang_web_app_1 | name = test || views = 8 qiang_web_app_1 | name = test || views = 9 qiang_web_app_1 | name = test || views = 10 qiang_web_app_1 | name = test || views = 11 qiang_web_app_1 | name = test || views = 12

6、停止项目 可以一个个docker stop 也可以使用【docker-compose stop】注意一定要在有docker-compose.yml这个目录运行 例如:

$ docker-compose.exe stop Stopping dockercomposetest_qiang_web_app_1 … done Stopping dockercomposetest_redis_1 … done

后面这个_1是只有一个副本,因为我们没有集群部署,所以只有一个副本

备注:我们可以把docker-compose-test-0.0.1-SNAPSHOT.jar 、 Dockerfile、docker-compose.yml文件拷贝到docker-machine中,使用docker-compose up命令部署。 也可以直接在win10本机,有这3个文件的目录运行命令部署。都行。

最新回复(0)