docker-compose.yml
version: '3'
services:
# 服务的名称
web:
image: jc0803kevin/springboot-docker:1.0.0
deploy:
replicas: 1 # 指定要运行的实例数量
ports:
- "18080:18080" # 端口映射,第一个是宿主机的端口,第二个是容器的端口
启动服务
在docker-compose.yml
目录下面执行
docker-compose up -d
# -d 标识后台启动
查看日志
# web 标识对于的service名称
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker# docker-compose logs web
Attaching to docker_web_1
web_1 | 2025-03-09 11:09:11.079 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 18080 (http) with context path ''
web_1 | 2025-03-09 11:09:11.089 INFO 1 --- [ main] icu.kevin.docker.DockerApp : Started DockerApp in 1.533 seconds (JVM running for 1.853)
web_1 | 2025-03-09 11:10:42.386 INFO 1 --- [io-18080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
web_1 | 2025-03-09 11:10:42.387 INFO 1 --- [io-18080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
web_1 | 2025-03-09 11:10:42.396 INFO 1 --- [io-18080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 8 ms
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker#
查看使用的image
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker# docker-compose images
Container Repository Tag Image Id Size
------------------------------------------------------------------------------
docker_web_1 jc0803kevin/springboot-docker 1.0.0 e71678655787 121.4 MB
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker#
启动多个副本 随机端口
version: '3'
services:
# 服务的名称
web:
image: jc0803kevin/springboot-docker:1.0.0
deploy:
replicas: 3 # 启动 3 个副本
ports:
- "18080" # 只指定容器端口,宿主机端口由 Docker 自动分配
启动多个副本 固定端口
version: '3'
services:
# 服务的名称
web:
image: jc0803kevin/springboot-docker:1.0.0
ports:
- "18080-18082:18080" # 映射宿主机端口范围到容器端口
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker# docker-compose up -d
Creating network "docker_default" with the default driver
Creating docker_web_1 ... done
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker# docker-compose scale web=3
WARNING: The scale command is deprecated. Use the up command with the --scale flag instead.
WARNING: The "web" service specifies a port on the host. If multiple containers for this service are created on a single host, the port will clash.
Creating docker_web_2 ... done
Creating docker_web_3 ... done
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker#
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker# docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------
docker_web_1 java -jar app.jar Up 0.0.0.0:18080->18080/tcp,:::18080->18080/tcp
docker_web_2 java -jar app.jar Up 0.0.0.0:18082->18080/tcp,:::18082->18080/tcp
docker_web_3 java -jar app.jar Up 0.0.0.0:18081->18080/tcp,:::18081->18080/tcp
root@LAPTOP-42HSF5M2:/mnt/d/wslwork/docker#