Dockerfile构建springboot镜像

Dockerfile作用

Dockerfile 是用来构建 Docker 镜像的构建文件,是由一系列命令和参数构成的脚本。

Dockerfile基本命令

命令 说明
FROM 基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER 镜像维护者的姓名混合邮箱地址
RUN 容器构建时需要运行的命令
EXPOSE 当前容器对外保留出的端口
WORKDIR 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
ENV 用来在构建镜像过程中设置环境变量
ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY 类似ADD,拷贝文件和目录到镜像中!
VOLUME 容器数据卷,用于数据保存和持久化工作
CMD 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效!
ENTRYPOINT 指定一个容器启动时要运行的命令!和CMD一样
ONBUILD 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发

Dockerfile使用方式

  1. 编写Dockerfile文件
  2. docker build命令构建镜像
  3. docker run命令运行镜像

Dockerfile构建springboot镜像

编写镜像

FROM williamyeh/java8:latest
MAINTAINER sunpy
COPY ./auth.jar /auth-1.0.0.jar
ENTRYPOINT ["java","-jar","auth.jar"]

构建镜像

docker build -t auth-image:v1 .

编写docker-compose.yml文件,用于启动集群

version: "3"
# 虚拟网络配置,分配虚拟IP地址,当前配置使容器之间组成局域网(与driver的选择有关)
networks:
  my-net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.0.0/24
services:
  mynginx:
    image: nginx
    container_name: "mynginx"
    networks:
      my-net:
        ipv4_address: 192.168.0.80 #指定nginx容器IP地址
    ports:
      - "3500:80" #对主机80端口的访问会映射到容器的80端口
    volumes:
      - /home/nginx-conf/nginx.conf:/etc/nginx/nginx.conf
      - /home/nginx-conf/conf:/etc/nginx/conf.d
      - /home/nginx-conf/html:/usr/share/nginx/html
      - /home/nginx-conf/logs:/var/log/nginx
    #tomcat启动完成再启动nginx
    depends_on:
      - auth-1
      - auth-2
      - auth-3
  auth-1:
    image: auth-image:v1
    container_name: "auth-1"
    networks:
      my-net:
        ipv4_address: 192.168.0.81
    ports:
      - "8081:8089"
    restart: "always"
  auth-2:
    image: auth-image:v1
    container_name: "auth-2"
    networks:
      my-net:
        ipv4_address: 192.168.0.82
    ports:
      - "8082:8089"
    restart: "always"
  auth-3:
    image: auth-image:v1
    container_name: "auth-3"
    networks:
      my-net:
        ipv4_address: 192.168.0.83
    ports:
      - "8083:8089"
    restart: "always"

启动容器

docker-compose -f docker-compose.yml up -d auth-1
docker-compose -f docker-compose.yml up -d auth-2
docker-compose -f docker-compose.yml up -d auth-3
posted @ 2023-06-29 22:35  sunpeiyu  阅读(269)  评论(0编辑  收藏  举报